PageSourceSearch

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

html activestate.com collected 2026-10-01 08:30:37 UTC 254,522 bytes, 3,196 lines download raw bytes

1<!DOCTYPE html><!-- Last Published: Thu Sep 24 2026 20:47:06 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>
172
173<style>
174/* Target Firefox only to fix the Mona Sans underline bug */
175@-moz-document url-prefix() {
176  .your-underlined-class {
177    text-decoration: none !important;
178    border-bottom: 1.5px solid currentColor; /* Simulates a smooth underline */
179    padding-bottom: 2px; /* Adjust this to change spacing between text and underline */
180    display: inline;
181  }
182}
183</style></head><body><div class="page-wrapper"><div data-wf--global-styles--variant="none"><div class="global-styles w-embed"><style>
184i, em {
185  color: inherit !important;
186}
187  p strong,
188p b {
189  color: inherit !important;
190}
191/* Make text look crisper and more legible in all browsers */
192body {
193  -webkit-font-smoothing: antialiased;
194  -moz-osx-font-smoothing: grayscale;
195  font-smoothing: antialiased;
196  text-rendering: optimizeLegibility;
197}
198
199/* Focus state style for keyboard navigation for the focusable elements */
200*[tabindex]:focus-visible,
201  input[type="file"]:focus-visible {
202   outline: 0.125rem solid #4d65ff;
203   outline-offset: 0.125rem;
204}
205
206/* Set color style to inherit */
207.inherit-color * {
208    color: inherit;
209}
210
211/* Get rid of top margin on first element in any rich text element */
212.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
213  margin-top: 0 !important;
214}
215
216/* Get rid of bottom margin on last element in any rich text element */
217.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
218	margin-bottom: 0 !important;
219}
220
221
222/* Make sure containers never lose their center alignment */
223.container-medium,.container-small, .container-large {
224	margin-right: auto !important;
225  margin-left: auto !important;
226}
227
228/* 
229Make the following elements inherit typography styles from the parent and not have hardcoded values. 
230Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
231Uncomment this CSS to use it in the project. Leave this message for future hand-off.
232*/
233/*
234a,
235.w-input,
236.w-select,
237.w-tab-link,
238.w-nav-link,
239.w-dropdown-btn,
240.w-dropdown-toggle,
241.w-dropdown-link {
242  color: inherit;
243  text-decoration: inherit;
244  font-size: inherit;
245}
246*/
247
248/* Apply "..." after 3 lines of text */
249.text-style-3lines {
250	display: -webkit-box;
251	overflow: hidden;
252	-webkit-line-clamp: 3;
253	-webkit-box-orient: vertical;
254}
255
256  
257/* Apply "..." after 5 lines of text */
258.text-style-5lines {
259	display: -webkit-box;
260	overflow: hidden;
261	-webkit-line-clamp: 5;
262	-webkit-box-orient: vertical;
263}
264
265/* Apply "..." after 2 lines of text */
266.text-style-2lines {
267	display: -webkit-box;
268	overflow: hidden;
269	-webkit-line-clamp: 2;
270	-webkit-box-orient: vertical;
271}
272
273/* These classes are never overwritten */
274.hide {
275  display: none !important;
276}
277
278@media screen and (max-width: 991px) {
279    .hide, .hide-tablet {
280        display: none !important;
281    }
282}
283  @media screen and (max-width: 767px) {
284    .hide-mobile-landscape{
285      display: none !important;
286    }
287}
288  @media screen and (max-width: 479px) {
289    .hide-mobile{
290      display: none !important;
291    }
292}
293 
294.margin-0 {
295  margin: 0rem !important;
296}
297  
298.padding-0 {
299  padding: 0rem !important;
300}
301
302.spacing-clean {
303padding: 0rem !important;
304margin: 0rem !important;
305}
306
307.margin-top {
308  margin-right: 0rem !important;
309  margin-bottom: 0rem !important;
310  margin-left: 0rem !important;
311}
312
313.padding-top {
314  padding-right: 0rem !important;
315  padding-bottom: 0rem !important;
316  padding-left: 0rem !important;
317}
318  
319.margin-right {
320  margin-top: 0rem !important;
321  margin-bottom: 0rem !important;
322  margin-left: 0rem !important;
323}
324
325.padding-right {
326  padding-top: 0rem !important;
327  padding-bottom: 0rem !important;
328  padding-left: 0rem !important;
329}
330
331.margin-bottom {
332  margin-top: 0rem !important;
333  margin-right: 0rem !important;
334  margin-left: 0rem !important;
335}
336
337.padding-bottom {
338  padding-top: 0rem !important;
339  padding-right: 0rem !important;
340  padding-left: 0rem !important;
341}
342
343.margin-left {
344  margin-top: 0rem !important;
345  margin-right: 0rem !important;
346  margin-bottom: 0rem !important;
347}
348  
349.padding-left {
350  padding-top: 0rem !important;
351  padding-right: 0rem !important;
352  padding-bottom: 0rem !important;
353}
354  
355.margin-horizontal {
356  margin-top: 0rem !important;
357  margin-bottom: 0rem !important;
358}
359
360.padding-horizontal {
361  padding-top: 0rem !important;
362  padding-bottom: 0rem !important;
363}
364
365.margin-vertical {
366  margin-right: 0rem !important;
367  margin-left: 0rem !important;
368}
369  
370.padding-vertical {
371  padding-right: 0rem !important;
372  padding-left: 0rem !important;
373}
374
375h1, h2, h3 {
376	text-wrap: balance;
377}
378
379  @media (max-width: 767px) {
380  .img_wrapper,
381  .image-container {
382    order: 999;
383  }
384}
385
386  @media only screen and (max-width: 1120px) and (min-width: 992px)  {
387    .navbar_menu.is-page-height-tablet {
388      padding-left: .5rem;
389    }
390    .navbar .padding-global {
391      padding-left: 1rem;
392      padding-right: 1rem;
393    }
394    .navbar_links {
395      grid-column-gap: .35rem;
396    }
397  }
398
399
400</style></div><div class="hide w-embed"><style>
401/* ================================================
402   SECTION & COMPONENT COLOR SCHEMES
403   (Sets variables only - no auto text colors)
404   ================================================ */
405
406/* Reset scheme variables on component_wrapper to break inheritance from section */
407.component_wrapper:not([data-wf--0---component--variant="transparent"]) {
408  --scheme-heading: initial;
409  --scheme-paragraph: initial;
410  --scheme-link: initial;
411  --scheme-link-hover: initial;
412}
413
414/* --- Neutral Schemes --- */
415.section_wrapper[data-wf--0---section--variant="light"],
416.component_wrapper[data-wf--0---component--variant="light"] {
417  background-color: var(--_color-schemes---light--background);
418  --scheme-heading: var(--_color-schemes---light--heading);
419  --scheme-paragraph: var(--_color-schemes---light--paragraph);
420  --scheme-link: var(--_color-schemes---light--link);
421  --scheme-link-hover: var(--_color-schemes---light--link-hover);
422}
423
424.section_wrapper[data-wf--0---section--variant="subtle"],
425.component_wrapper[data-wf--0---component--variant="subtle"] {
426  background-color: var(--_color-schemes---subtle--background);
427  --scheme-heading: var(--_color-schemes---subtle--heading);
428  --scheme-paragraph: var(--_color-schemes---subtle--paragraph);
429  --scheme-link: var(--_color-schemes---subtle--link);
430  --scheme-link-hover: var(--_color-schemes---subtle--link-hover);
431}
432
433.section_wrapper[data-wf--0---section--variant="dark"],
434.component_wrapper[data-wf--0---component--variant="dark"] {
435  background-color: var(--_color-schemes---dark--background);
436  --scheme-heading: var(--_color-schemes---dark--heading);
437  --scheme-paragraph: var(--_color-schemes---dark--paragraph);
438  --scheme-link: var(--_color-schemes---dark--link);
439  --scheme-link-hover: var(--_color-schemes---dark--link-hover);
440}
441
442/* --- Brand Schemes --- */
443.section_wrapper[data-wf--0---section--variant="brand-light"],
444.component_wrapper[data-wf--0---component--variant="brand-light"] {
445  background-color: var(--_color-schemes---brand-light--background);
446  --scheme-heading: var(--_color-schemes---brand-light--heading);
447  --scheme-paragraph: var(--_color-schemes---brand-light--paragraph);
448  --scheme-link: var(--_color-schemes---brand-light--link);
449  --scheme-link-hover: var(--_color-schemes---brand-light--link-hover);
450}
451
452.section_wrapper[data-wf--0---section--variant="brand"],
453.component_wrapper[data-wf--0---component--variant="brand"] {
454  background-color: var(--_color-schemes---brand--background);
455  --scheme-heading: var(--_color-schemes---brand--heading);
456  --scheme-paragraph: var(--_color-schemes---brand--paragraph);
457  --scheme-link: var(--_color-schemes---brand--link);
458  --scheme-link-hover: var(--_color-schemes---brand--link-hover);
459}
460
461.section_wrapper[data-wf--0---section--variant="brand-dark"],
462.component_wrapper[data-wf--0---component--variant="brand-dark"] {
463  background-color: var(--_color-schemes---brand-dark--background);
464  --scheme-heading: var(--_color-schemes---brand-dark--heading);
465  --scheme-paragraph: var(--_color-schemes---brand-dark--paragraph);
466  --scheme-link: var(--_color-schemes---brand-dark--link);
467  --scheme-link-hover: var(--_color-schemes---brand-dark--link-hover);
468}
469
470/* --- Secondary Schemes --- */
471.section_wrapper[data-wf--0---section--variant="secondary-light"],
472.component_wrapper[data-wf--0---component--variant="secondary-light"] {
473  background-color: var(--_color-schemes---secondary-light--background);
474  --scheme-heading: var(--_color-schemes---secondary-light--heading);
475  --scheme-paragraph: var(--_color-schemes---secondary-light--paragraph);
476  --scheme-link: var(--_color-schemes---secondary-light--link);
477  --scheme-link-hover: var(--_color-schemes---secondary-light--link-hover);
478}
479
480.section_wrapper[data-wf--0---section--variant="secondary"],
481.component_wrapper[data-wf--0---component--variant="secondary"] {
482  background-color: var(--_color-schemes---secondary--background);
483  --scheme-heading: var(--_color-schemes---secondary--heading);
484  --scheme-paragraph: var(--_color-schemes---secondary--paragraph);
485  --scheme-link: var(--_color-schemes---secondary--link);
486  --scheme-link-hover: var(--_color-schemes---secondary--link-hover);
487}
488
489.section_wrapper[data-wf--0---section--variant="secondary-dark"],
490.component_wrapper[data-wf--0---component--variant="secondary-dark"] {
491  background-color: var(--_color-schemes---secondary-dark--background);
492  --scheme-heading: var(--_color-schemes---secondary-dark--heading);
493  --scheme-paragraph: var(--_color-schemes---secondary-dark--paragraph);
494  --scheme-link: var(--_color-schemes---secondary-dark--link);
495  --scheme-link-hover: var(--_color-schemes---secondary-dark--link-hover);
496}
497
498/* --- Accent Schemes --- */
499.section_wrapper[data-wf--0---section--variant="accent-light"],
500.component_wrapper[data-wf--0---component--variant="accent-light"] {
501  background-color: var(--_color-schemes---accent-light--background);
502  --scheme-heading: var(--_color-schemes---accent-light--heading);
503  --scheme-paragraph: var(--_color-schemes---accent-light--paragraph);
504  --scheme-link: var(--_color-schemes---accent-light--link);
505  --scheme-link-hover: var(--_color-schemes---accent-light--link-hover);
506}
507
508.section_wrapper[data-wf--0---section--variant="accent"],
509.component_wrapper[data-wf--0---component--variant="accent"] {
510  background-color: var(--_color-schemes---accent--background);
511  --scheme-heading: var(--_color-schemes---accent--heading);
512  --scheme-paragraph: var(--_color-schemes---accent--paragraph);
513  --scheme-link: var(--_color-schemes---accent--link);
514  --scheme-link-hover: var(--_color-schemes---accent--link-hover);
515}
516
517.section_wrapper[data-wf--0---section--variant="accent-dark"],
518.component_wrapper[data-wf--0---component--variant="accent-dark"] {
519  background-color: var(--_color-schemes---accent-dark--background);
520  --scheme-heading: var(--_color-schemes---accent-dark--heading);
521  --scheme-paragraph: var(--_color-schemes---accent-dark--paragraph);
522  --scheme-link: var(--_color-schemes---accent-dark--link);
523  --scheme-link-hover: var(--_color-schemes---accent-dark--link-hover);
524}
525
526/* --- Accent1-3 Schemes --- */
527.section_wrapper[data-wf--0---section--variant="accent1-light"],
528.component_wrapper[data-wf--0---component--variant="accent1-light"] {
529  background-color: var(--_color-schemes---accent1-light--background);
530  --scheme-heading: var(--_color-schemes---accent1-light--heading);
531  --scheme-paragraph: var(--_color-schemes---accent1-light--paragraph);
532  --scheme-link: var(--_color-schemes---accent1-light--link);
533  --scheme-link-hover: var(--_color-schemes---accent1-light--link-hover);
534}
535
536.section_wrapper[data-wf--0---section--variant="accent1"],
537.component_wrapper[data-wf--0---component--variant="accent1"] {
538  background-color: var(--_color-schemes---accent1--background);
539  --scheme-heading: var(--_color-schemes---accent1--heading);
540  --scheme-paragraph: var(--_color-schemes---accent1--paragraph);
541  --scheme-link: var(--_color-schemes---accent1--link);
542  --scheme-link-hover: var(--_color-schemes---accent1--link-hover);
543}
544
545.section_wrapper[data-wf--0---section--variant="accent1-dark"],
546.component_wrapper[data-wf--0---component--variant="accent1-dark"] {
547  background-color: var(--_color-schemes---accent1-dark--background);
548  --scheme-heading: var(--_color-schemes---accent1-dark--heading);
549  --scheme-paragraph: var(--_color-schemes---accent1-dark--paragraph);
550  --scheme-link: var(--_color-schemes---accent1-dark--link);
551  --scheme-link-hover: var(--_color-schemes---accent1-dark--link-hover);
552}
553
554.section_wrapper[data-wf--0---section--variant="accent2-light"],
555.component_wrapper[data-wf--0---component--variant="accent2-light"] {
556  background-color: var(--_color-schemes---accent2-light--background);
557  --scheme-heading: var(--_color-schemes---accent2-light--heading);
558  --scheme-paragraph: var(--_color-schemes---accent2-light--paragraph);
559  --scheme-link: var(--_color-schemes---accent2-light--link);
560  --scheme-link-hover: var(--_color-schemes---accent2-light--link-hover);
561}
562
563.section_wrapper[data-wf--0---section--variant="accent2"],
564.component_wrapper[data-wf--0---component--variant="accent2"] {
565  background-color: var(--_color-schemes---accent2--background);
566  --scheme-heading: var(--_color-schemes---accent2--heading);
567  --scheme-paragraph: var(--_color-schemes---accent2--paragraph);
568  --scheme-link: var(--_color-schemes---accent2--link);
569  --scheme-link-hover: var(--_color-schemes---accent2--link-hover);
570}
571
572.section_wrapper[data-wf--0---section--variant="accent2-dark"],
573.component_wrapper[data-wf--0---component--variant="accent2-dark"] {
574  background-color: var(--_color-schemes---accent2-dark--background);
575  --scheme-heading: var(--_color-schemes---accent2-dark--heading);
576  --scheme-paragraph: var(--_color-schemes---accent2-dark--paragraph);
577  --scheme-link: var(--_color-schemes---accent2-dark--link);
578  --scheme-link-hover: var(--_color-schemes---accent2-dark--link-hover);
579}
580
581.section_wrapper[data-wf--0---section--variant="accent3-light"],
582.component_wrapper[data-wf--0---component--variant="accent3-light"] {
583  background-color: var(--_color-schemes---accent3-light--background);
584  --scheme-heading: var(--_color-schemes---accent3-light--heading);
585  --scheme-paragraph: var(--_color-schemes---accent3-light--paragraph);
586  --scheme-link: var(--_color-schemes---accent3-light--link);
587  --scheme-link-hover: var(--_color-schemes---accent3-light--link-hover);
588}
589
590.section_wrapper[data-wf--0---section--variant="accent3"],
591.component_wrapper[data-wf--0---component--variant="accent3"] {
592  background-color: var(--_color-schemes---accent3--background);
593  --scheme-heading: var(--_color-schemes---accent3--heading);
594  --scheme-paragraph: var(--_color-schemes---accent3--paragraph);
595  --scheme-link: var(--_color-schemes---accent3--link);
596  --scheme-link-hover: var(--_color-schemes---accent3--link-hover);
597}
598
599.section_wrapper[data-wf--0---section--variant="accent3-dark"],
600.component_wrapper[data-wf--0---component--variant="accent3-dark"] {
601  background-color: var(--_color-schemes---accent3-dark--background);
602  --scheme-heading: var(--_color-schemes---accent3-dark--heading);
603  --scheme-paragraph: var(--_color-schemes---accent3-dark--paragraph);
604  --scheme-link: var(--_color-schemes---accent3-dark--link);
605  --scheme-link-hover: var(--_color-schemes---accent3-dark--link-hover);
606}
607
608/* --- Transparent --- */
609.section_wrapper[data-wf--0---section--variant="transparent"],
610.component_wrapper[data-wf--0---component--variant="transparent"] {
611  background-color: transparent;
612}
613
614/* ================================================
615   COLOR SCHEME UTILITY COMPONENT (for cards)
616   ================================================ */
617
618[data-wf--color-scheme--variant] {
619  display: none;
620}
621
622:has(> [data-wf--color-scheme--variant="light"]) {
623  background-color: var(--_color-schemes---light--background);
624  --scheme-heading: var(--_color-schemes---light--heading);
625  --scheme-paragraph: var(--_color-schemes---light--paragraph);
626}
627
628:has(> [data-wf--color-scheme--variant="subtle"]) {
629  background-color: var(--_color-schemes---subtle--background);
630  --scheme-heading: var(--_color-schemes---subtle--heading);
631  --scheme-paragraph: var(--_color-schemes---subtle--paragraph);
632}
633
634:has(> [data-wf--color-scheme--variant="dark"]) {
635  background-color: var(--_color-schemes---dark--background);
636  --scheme-heading: var(--_color-schemes---dark--heading);
637  --scheme-paragraph: var(--_color-schemes---dark--paragraph);
638}
639
640:has(> [data-wf--color-scheme--variant="brand-light"]) {
641  background-color: var(--_color-schemes---brand-light--background);
642  --scheme-heading: var(--_color-schemes---brand-light--heading);
643  --scheme-paragraph: var(--_color-schemes---brand-light--paragraph);
644}
645
646:has(> [data-wf--color-scheme--variant="brand"]) {
647  background-color: var(--_color-schemes---brand--background);
648  --scheme-heading: var(--_color-schemes---brand--heading);
649  --scheme-paragraph: var(--_color-schemes---brand--paragraph);
650}
651
652:has(> [data-wf--color-scheme--variant="brand-dark"]) {
653  background-color: var(--_color-schemes---brand-dark--background);
654  --scheme-heading: var(--_color-schemes---brand-dark--heading);
655  --scheme-paragraph: var(--_color-schemes---brand-dark--paragraph);
656}
657
658:has(> [data-wf--color-scheme--variant="secondary-light"]) {
659  background-color: var(--_color-schemes---secondary-light--background);
660  --scheme-heading: var(--_color-schemes---secondary-light--heading);
661  --scheme-paragraph: var(--_color-schemes---secondary-light--paragraph);
662}
663
664:has(> [data-wf--color-scheme--variant="secondary"]) {
665  background-color: var(--_color-schemes---secondary--background);
666  --scheme-heading: var(--_color-schemes---secondary--heading);
667  --scheme-paragraph: var(--_color-schemes---secondary--paragraph);
668}
669
670:has(> [data-wf--color-scheme--variant="secondary-dark"]) {
671  background-color: var(--_color-schemes---secondary-dark--background);
672  --scheme-heading: var(--_color-schemes---secondary-dark--heading);
673  --scheme-paragraph: var(--_color-schemes---secondary-dark--paragraph);
674}
675
676:has(> [data-wf--color-scheme--variant="accent-light"]) {
677  background-color: var(--_color-schemes---accent-light--background);
678  --scheme-heading: var(--_color-schemes---accent-light--heading);
679  --scheme-paragraph: var(--_color-schemes---accent-light--paragraph);
680}
681
682:has(> [data-wf--color-scheme--variant="accent"]) {
683  background-color: var(--_color-schemes---accent--background);
684  --scheme-heading: var(--_color-schemes---accent--heading);
685  --scheme-paragraph: var(--_color-schemes---accent--paragraph);
686}
687
688:has(> [data-wf--color-scheme--variant="accent-dark"]) {
689  background-color: var(--_color-schemes---accent-dark--background);
690  --scheme-heading: var(--_color-schemes---accent-dark--heading);
691  --scheme-paragraph: var(--_color-schemes---accent-dark--paragraph);
692}
693
694:has(> [data-wf--color-scheme--variant="transparent"]) {
695  background-color: transparent;
696}
697
698/* ================================================
699   TEXT COLOR VARIANTS
700   ================================================ */
701
702/* Scheme - uses parent's scheme variables (DEFAULT) */
703[data-wf--heading--variant="scheme"] {
704  color: var(--scheme-heading);
705}
706
707[data-wf--paragraph--variant="scheme"] {
708  color: var(--scheme-paragraph);
709}
710
711/* Explicit overrides */
712[data-wf--heading--variant="inverse"] {
713  color: var(--_semantic-tokens---text--text-inverse);
714}
715
716[data-wf--heading--variant="primary"] {
717  color: var(--_semantic-tokens---text--text-primary);
718}
719
720[data-wf--heading--variant="secondary"] {
721  color: var(--_semantic-tokens---text--text-secondary);
722}
723
724[data-wf--heading--variant="tertiary"] {
725  color: var(--_semantic-tokens---text--text-tertiary);
726}
727
728[data-wf--heading--variant="brand"] {
729  color: var(--_semantic-tokens---text--text-brand);
730}
731
732[data-wf--paragraph--variant="inverse"] {
733  color: var(--_semantic-tokens---text--text-inverse);
734}
735
736[data-wf--paragraph--variant="primary"] {
737  color: var(--_semantic-tokens---text--text-primary);
738}
739
740[data-wf--paragraph--variant="secondary"] {
741  color: var(--_semantic-tokens---text--text-secondary);
742}
743
744[data-wf--paragraph--variant="tertiary"] {
745  color: var(--_semantic-tokens---text--text-tertiary);
746}
747
748[data-wf--paragraph--variant="brand"] {
749  color: var(--_semantic-tokens---text--text-brand);
750}
751
752/* ================================================
753   RICH TEXT COLOR INHERITANCE
754   ================================================ */
755
756.text-rich-text h1,
757.text-rich-text h2,
758.text-rich-text h3,
759.text-rich-text h4,
760.text-rich-text h5,
761.text-rich-text h6 {
762  color: var(--scheme-heading);
763}
764
765.text-rich-text p,
766.text-rich-text li,
767.text-rich-text blockquote,
768.text-rich-text span,
769.text-rich-text label {
770  color: var(--scheme-paragraph);
771}
772
773.text-rich-text a {
774  color: var(--scheme-link);
775}
776
777.text-rich-text a:hover {
778  color: var(--scheme-link-hover);
779}
780</style></div><div class="hide w-embed"><style>
781/* Gradient Color Variants */
782.background-overlay[data-wf--background-overlay--background-overlay="primary-light"] {
783  --gradient-stop-1: var(--_gradients---primary-light--stop-1);
784  --gradient-stop-2: var(--_gradients---primary-light--stop-2);
785}
786.background-overlay[data-wf--background-overlay--background-overlay="primary"] {
787  --gradient-stop-1: var(--_gradients---primary--stop-1);
788  --gradient-stop-2: var(--_gradients---primary--stop-2);
789}
790.background-overlay[data-wf--background-overlay--background-overlay="primary-bold"] {
791  --gradient-stop-1: var(--_gradients---primary-bold--stop-1);
792  --gradient-stop-2: var(--_gradients---primary-bold--stop-2);
793}
794.background-overlay[data-wf--background-overlay--background-overlay="primary-dark"] {
795  --gradient-stop-1: var(--_gradients---primary-dark--stop-1);
796  --gradient-stop-2: var(--_gradients---primary-dark--stop-2);
797}
798.background-overlay[data-wf--background-overlay--background-overlay="primary-to-neutral"] {
799  --gradient-stop-1: var(--_gradients---primary-to-neutral--stop-1);
800  --gradient-stop-2: var(--_gradients---primary-to-neutral--stop-2);
801}
802.background-overlay[data-wf--background-overlay--background-overlay="primary-overlay-light"] {
803  --gradient-stop-1: var(--_gradients---primary-overlay-light--stop-1);
804  --gradient-stop-2: var(--_gradients---primary-overlay-light--stop-2);
805}
806.background-overlay[data-wf--background-overlay--background-overlay="primary-overlay"] {
807  --gradient-stop-1: var(--_gradients---primary-overlay--stop-1);
808  --gradient-stop-2: var(--_gradients---primary-overlay--stop-2);
809}
810.background-overlay[data-wf--background-overlay--background-overlay="primary-overlay-heavy"] {
811  --gradient-stop-1: var(--_gradients---primary-overlay-heavy--stop-1);
812  --gradient-stop-2: var(--_gradients---primary-overlay-heavy--stop-2);
813}
814.background-overlay[data-wf--background-overlay--background-overlay="dark-overlay-light"] {
815  --gradient-stop-1: var(--_gradients---dark-overlay-light--stop-1);
816  --gradient-stop-2: var(--_gradients---dark-overlay-light--stop-2);
817}
818.background-overlay[data-wf--background-overlay--background-overlay="dark-overlay"] {
819  --gradient-stop-1: var(--_gradients---dark-overlay--stop-1);
820  --gradient-stop-2: var(--_gradients---dark-overlay--stop-2);
821}
822.background-overlay[data-wf--background-overlay--background-overlay="dark-overlay-heavy"] {
823  --gradient-stop-1: var(--_gradients---dark-overlay-heavy--stop-1);
824  --gradient-stop-2: var(--_gradients---dark-overlay-heavy--stop-2);
825}
826
827/* Gradient Angle Variants - targets parent .background-overlay based on child's data attribute */
828.background-overlay:has([data-wf--gradient-angle--variant="top"]) {
829  background-image: linear-gradient(to top, var(--gradient-stop-1), var(--gradient-stop-2));
830}
831.background-overlay:has([data-wf--gradient-angle--variant="top-right"]) {
832  background-image: linear-gradient(to top right, var(--gradient-stop-1), var(--gradient-stop-2));
833}
834.background-overlay:has([data-wf--gradient-angle--variant="right"]) {
835  background-image: linear-gradient(to right, var(--gradient-stop-1), var(--gradient-stop-2));
836}
837.background-overlay:has([data-wf--gradient-angle--variant="bottom-right"]) {
838  background-image: linear-gradient(to bottom right, var(--gradient-stop-1), var(--gradient-stop-2));
839}
840.background-overlay:has([data-wf--gradient-angle--variant="bottom"]) {
841  background-image: linear-gradient(to bottom, var(--gradient-stop-1), var(--gradient-stop-2));
842}
843.background-overlay:has([data-wf--gradient-angle--variant="bottom-left"]) {
844  background-image: linear-gradient(to bottom left, var(--gradient-stop-1), var(--gradient-stop-2));
845}
846.background-overlay:has([data-wf--gradient-angle--variant="left"]) {
847  background-image: linear-gradient(to left, var(--gradient-stop-1), var(--gradient-stop-2));
848}
849.background-overlay:has([data-wf--gradient-angle--variant="top-left"]) {
850  background-image: linear-gradient(to top left, var(--gradient-stop-1), var(--gradient-stop-2));
851}
852</style></div><div class="hide w-embed"><style>
853/* ================================================
854   BUTTON COMPONENT
855   ================================================ */
856
857/* Hide variant controllers */
858[data-wf--button-style--variant],
859[data-wf--button-size--variant],
860[data-wf--button-width--variant] {
861  display: none;
862}
863
864/* Base button styles */
865.button {
866  position: relative;
867  overflow: hidden;
868  z-index: 1;
869  border-style: solid;
870  transition: color 0.2s ease, border-color 0.2s ease;
871}
872
873/* Hover background layer */
874.button::before {
875  content: '';
876  position: absolute;
877  inset: 0;
878  z-index: -1;
879  opacity: 0;
880  transition: opacity 0.2s ease;
881  border-radius: inherit;
882}
883
884.button:hover::before {
885  opacity: 1;
886}
887
888/* ================================================
889   BUTTON SIZE
890   ================================================ */
891
892.button:has([data-wf--button-size--variant="small"]) {
893  padding: var(--_buttons---button-small--padding-y) var(--_buttons---button-small--padding-x);
894  font-size: var(--_buttons---button-small--font-size);
895  border-radius: var(--_buttons---button-small--border-radius);
896  border-width: var(--_buttons---button-small--border-width);
897}
898
899.button:has([data-wf--button-size--variant="base"]) {
900  padding: var(--_buttons---button-base--padding-y) var(--_buttons---button-base--padding-x);
901  font-size: var(--_buttons---button-base--font-size);
902  border-radius: var(--_buttons---button-base--border-radius);
903  border-width: var(--_buttons---button-base--border-width);
904}
905
906.button:has([data-wf--button-size--variant="large"]) {
907  padding: var(--_buttons---button-large--padding-y) var(--_buttons---button-large--padding-x);
908  font-size: var(--_buttons---button-large--font-size);
909  border-radius: var(--_buttons---button-large--border-radius);
910  border-width: var(--_buttons---button-large--border-width);
911}
912
913/* ================================================
914   BUTTON STYLE
915   ================================================ */
916
917/* Primary */
918.button:has([data-wf--button-style--variant="primary"]) {
919  background: linear-gradient(
920    calc(var(--_buttons---gradient--direction) * 1deg),
921    var(--_buttons---primary--stop-1) 0%,
922    var(--_buttons---primary--stop-2) 100%
923  );
924  color: var(--_buttons---primary--text);
925  border-color: var(--_buttons---primary--border);
926}
927.button:has([data-wf--button-style--variant="primary"])::before {
928  background: linear-gradient(
929    calc(var(--_buttons---gradient--direction) * 1deg),
930    var(--_buttons---primary--stop-1-hover) 0%,
931    var(--_buttons---primary--stop-2-hover) 100%
932  );
933}
934.button:has([data-wf--button-style--variant="primary"]):hover {
935  color: var(--_buttons---primary--text-hover, var(--_buttons---primary--text));
936  border-color: var(--_buttons---primary--border-hover, var(--_buttons---primary--border));
937}
938
939/* Primary Alt */
940.button:has([data-wf--button-style--variant="primary-alt"]) {
941  background: linear-gradient(
942    calc(var(--_buttons---gradient--direction) * 1deg),
943    var(--_buttons---primary-alt--stop-1) 0%,
944    var(--_buttons---primary-alt--stop-2) 100%
945  );
946  color: var(--_buttons---primary-alt--text);
947  border-color: var(--_buttons---primary-alt--border);
948}
949.button:has([data-wf--button-style--variant="primary-alt"])::before {
950  background: linear-gradient(
951    calc(var(--_buttons---gradient--direction) * 1deg),
952    var(--_buttons---primary-alt--stop-1-hover) 0%,
953    var(--_buttons---primary-alt--stop-2-hover) 100%
954  );
955}
956.button:has([data-wf--button-style--variant="primary-alt"]):hover {
957  color: var(--_buttons---primary-alt--text-hover, var(--_buttons---primary-alt--text));
958  border-color: var(--_buttons---primary-alt--border-hover, var(--_buttons---primary-alt--border));
959}
960
961/* Secondary */
962.button:has([data-wf--button-style--variant="secondary"]) {
963  background: linear-gradient(
964    calc(var(--_buttons---gradient--direction) * 1deg),
965    var(--_buttons---secondary--stop-1) 0%,
966    var(--_buttons---secondary--stop-2) 100%
967  );
968  color: var(--_buttons---secondary--text);
969  border-color: var(--_buttons---secondary--border);
970}
971.button:has([data-wf--button-style--variant="secondary"])::before {
972  background: linear-gradient(
973    calc(var(--_buttons---gradient--direction) * 1deg),
974    var(--_buttons---secondary--stop-1-hover) 0%,
975    var(--_buttons---secondary--stop-2-hover) 100%
976  );
977}
978.button:has([data-wf--button-style--variant="secondary"]):hover {
979  color: var(--_buttons---secondary--text-hover, var(--_buttons---secondary--text));
980  border-color: var(--_buttons---secondary--border-hover, var(--_buttons---secondary--border));
981}
982
983/* Secondary Alt */
984.button:has([data-wf--button-style--variant="secondary-alt"]) {
985  background: linear-gradient(
986    calc(var(--_buttons---gradient--direction) * 1deg),
987    var(--_buttons---secondary-alt--stop-1) 0%,
988    var(--_buttons---secondary-alt--stop-2) 100%
989  );
990  color: var(--_buttons---secondary-alt--text);
991  border-color: var(--_buttons---secondary-alt--border);
992}
993.button:has([data-wf--button-style--variant="secondary-alt"])::before {
994  background: linear-gradient(
995    calc(var(--_buttons---gradient--direction) * 1deg),
996    var(--_buttons---secondary-alt--stop-1-hover) 0%,
997    var(--_buttons---secondary-alt--stop-2-hover) 100%
998  );
999}
1000.button:has([data-wf--button-style--variant="secondary-alt"]):hover {
1001  color: var(--_buttons---secondary-alt--text-hover, var(--_buttons---secondary-alt--text));
1002  border-color: var(--_buttons---secondary-alt--border-hover, var(--_buttons---secondary-alt--border));
1003}
1004
1005/* Tertiary */
1006.button:has([data-wf--button-style--variant="tertiary"]) {
1007  background: linear-gradient(
1008    calc(var(--_buttons---gradient--direction) * 1deg),
1009    var(--_buttons---tertiary--stop-1) 0%,
1010    var(--_buttons---tertiary--stop-2) 100%
1011  );
1012  color: var(--_buttons---tertiary--text);
1013  border-color: var(--_buttons---tertiary--border);
1014}
1015.button:has([data-wf--button-style--variant="tertiary"])::before {
1016  background: linear-gradient(
1017    calc(var(--_buttons---gradient--direction) * 1deg),
1018    var(--_buttons---tertiary--stop-1-hover) 0%,
1019    var(--_buttons---tertiary--stop-2-hover) 100%
1020  );
1021}
1022.button:has([data-wf--button-style--variant="tertiary"]):hover {
1023  color: var(--_buttons---tertiary--text-hover, var(--_buttons---tertiary--text));
1024  border-color: var(--_buttons---tertiary--border-hover, var(--_buttons---tertiary--border));
1025}
1026
1027/* Tertiary Alt */
1028.button:has([data-wf--button-style--variant="tertiary-alt"]) {
1029  background: linear-gradient(
1030    calc(var(--_buttons---gradient--direction) * 1deg),
1031    var(--_buttons---tertiary-alt--stop-1) 0%,
1032    var(--_buttons---tertiary-alt--stop-2) 100%
1033  );
1034  color: var(--_buttons---tertiary-alt--text);
1035  border-color: var(--_buttons---tertiary-alt--border);
1036}
1037.button:has([data-wf--button-style--variant="tertiary-alt"])::before {
1038  background: linear-gradient(
1039    calc(var(--_buttons---gradient--direction) * 1deg),
1040    var(--_buttons---tertiary-alt--stop-1-hover) 0%,
1041    var(--_buttons---tertiary-alt--stop-2-hover) 100%
1042  );
1043}
1044.button:has([data-wf--button-style--variant="tertiary-alt"]):hover {
1045  color: var(--_buttons---tertiary-alt--text-hover, var(--_buttons---tertiary-alt--text));
1046  border-color: var(--_buttons---tertiary-alt--border-hover, var(--_buttons---tertiary-alt--border));
1047}
1048
1049/* Outline */
1050.button:has([data-wf--button-style--variant="outline"]) {
1051  background: linear-gradient(
1052    calc(var(--_buttons---gradient--direction) * 1deg),
1053    var(--_buttons---outline--stop-1) 0%,
1054    var(--_buttons---outline--stop-2) 100%
1055  );
1056  color: var(--_buttons---outline--text);
1057  border-color: var(--_buttons---outline--border);
1058}
1059.button:has([data-wf--button-style--variant="outline"])::before {
1060  background: linear-gradient(
1061    calc(var(--_buttons---gradient--direction) * 1deg),
1062    var(--_buttons---outline--stop-1-hover) 0%,
1063    var(--_buttons---outline--stop-2-hover) 100%
1064  );
1065}
1066.button:has([data-wf--button-style--variant="outline"]):hover {
1067  color: var(--_buttons---outline--text-hover);
1068  border-color: var(--_buttons---outline--border-hover, var(--_buttons---outline--border));
1069}
1070
1071/* Outline Alt */
1072.button:has([data-wf--button-style--variant="outline-alt"]) {
1073  background: linear-gradient(
1074    calc(var(--_buttons---gradient--direction) * 1deg),
1075    var(--_buttons---outline-alt--stop-1) 0%,
1076    var(--_buttons---outline-alt--stop-2) 100%
1077  );
1078  color: var(--_buttons---outline-alt--text);
1079  border-color: var(--_buttons---outline-alt--border);
1080}
1081.button:has([data-wf--button-style--variant="outline-alt"])::before {
1082  background: linear-gradient(
1083    calc(var(--_buttons---gradient--direction) * 1deg),
1084    var(--_buttons---outline-alt--stop-1-hover) 0%,
1085    var(--_buttons---outline-alt--stop-2-hover) 100%
1086  );
1087}
1088.button:has([data-wf--button-style--variant="outline-alt"]):hover {
1089  color: var(--_buttons---outline-alt--text-hover);
1090  border-color: var(--_buttons---outline-alt--border-hover, var(--_buttons---outline-alt--border));
1091}
1092
1093/* ================================================
1094   GRADIENT TEXT BUTTONS
1095   ================================================ */
1096
1097/* Gradient Tertiary - gradient text, transparent bg */
1098.button:has([data-wf--button-style--variant="gradient-tertiary"]) {
1099  background: transparent;
1100  border-color: transparent;
1101}
1102.button:has([data-wf--button-style--variant="gradient-tertiary"]) .button_text {
1103  background: linear-gradient(
1104    calc(var(--_buttons---gradient--direction) * 1deg),
1105    var(--_buttons---gradient-tertiary--stop-1) 0%,
1106    var(--_buttons---gradient-tertiary--stop-2) 100%
1107  );
1108  -webkit-background-clip: text;
1109  background-clip: text;
1110  -webkit-text-fill-color: transparent;
1111}
1112.button:has([data-wf--button-style--variant="gradient-tertiary"])::before {
1113  background: var(--_buttons---gradient-tertiary--bg-hover);
1114}
1115.button:has([data-wf--button-style--variant="gradient-tertiary"]):hover .button_text {
1116  background: linear-gradient(
1117    calc(var(--_buttons---gradient--direction) * 1deg),
1118    var(--_buttons---gradient-tertiary--stop-1-hover) 0%,
1119    var(--_buttons---gradient-tertiary--stop-2-hover) 100%
1120  );
1121  -webkit-background-clip: text;
1122  background-clip: text;
1123  -webkit-text-fill-color: transparent;
1124}
1125
1126/* Gradient Outline - gradient text + border, transparent bg */
1127.button:has([data-wf--button-style--variant="gradient-outline"]) {
1128  background: transparent;
1129  border-color: var(--_buttons---gradient-outline--border);
1130}
1131.button:has([data-wf--button-style--variant="gradient-outline"]) .button_text {
1132  background: linear-gradient(
1133    calc(var(--_buttons---gradient--direction) * 1deg),
1134    var(--_buttons---gradient-outline--stop-1) 0%,
1135    var(--_buttons---gradient-outline--stop-2) 100%
1136  );
1137  -webkit-background-clip: text;
1138  background-clip: text;
1139  -webkit-text-fill-color: transparent;
1140}
1141.button:has([data-wf--button-style--variant="gradient-outline"])::before {
1142  background: linear-gradient(
1143    calc(var(--_buttons---gradient--direction) * 1deg),
1144    var(--_buttons---gradient-outline--stop-1-hover) 0%,
1145    var(--_buttons---gradient-outline--stop-2-hover) 100%
1146  );
1147}
1148.button:has([data-wf--button-style--variant="gradient-outline"]):hover {
1149  border-color: var(--_buttons---gradient-outline--border-hover, var(--_buttons---gradient-outline--border));
1150}
1151.button:has([data-wf--button-style--variant="gradient-outline"]):hover .button_text {
1152  background: none;
1153  -webkit-background-clip: unset;
1154  background-clip: unset;
1155  -webkit-text-fill-color: var(--_buttons---gradient-outline--text-hover);
1156  color: var(--_buttons---gradient-outline--text-hover);
1157}
1158
1159/* ================================================
1160   BUTTON WIDTH
1161   ================================================ */
1162
1163.button:has([data-wf--button-width--variant="auto"]) {
1164  width: auto;
1165}
1166
1167.button:has([data-wf--button-width--variant="full"]) {
1168  width: 100%;
1169}
1170</style></div><div class="hide w-embed"><style>
1171/* Image Align */
1172.image-wrapper:has([data-wf--image-align--variant="right"]) {
1173  display: flex !important;
1174  justify-content: flex-end !important;
1175}
1176.image-wrapper:has([data-wf--image-align--variant="left"]) {
1177  display: flex !important;
1178  justify-content: flex-start !important;
1179}
1180.image-wrapper:has([data-wf--image-align--variant="center"]) {
1181  display: flex !important;
1182  justify-content: center !important;
1183}
1184</style>
1185
1186<style>
1187/* Image Ratio - apply to img, not wrapper */
1188.image-wrapper:has([data-wf--image-ratio--variant="square"]) img { 
1189  aspect-ratio: 1 / 1 !important;
1190  object-fit: cover !important;
1191}
1192.image-wrapper:has([data-wf--image-ratio--variant="4-3"]) img { 
1193  aspect-ratio: 4 / 3 !important;
1194  object-fit: cover !important;
1195}
1196.image-wrapper:has([data-wf--image-ratio--variant="3-2"]) img { 
1197  aspect-ratio: 3 / 2 !important;
1198  object-fit: cover !important;
1199}
1200.image-wrapper:has([data-wf--image-ratio--variant="16-9"]) img { 
1201  aspect-ratio: 16 / 9 !important;
1202  object-fit: cover !important;
1203}
1204.image-wrapper:has([data-wf--image-ratio--variant="21-9"]) img { 
1205  aspect-ratio: 21 / 9 !important;
1206  object-fit: cover !important;
1207}
1208.image-wrapper:has([data-wf--image-ratio--variant="3-4"]) img { 
1209  aspect-ratio: 3 / 4 !important;
1210  object-fit: cover !important;
1211}
1212.image-wrapper:has([data-wf--image-ratio--variant="2-3"]) img { 
1213  aspect-ratio: 2 / 3 !important;
1214  object-fit: cover !important;
1215}
1216.image-wrapper:has([data-wf--image-ratio--variant="9-16"]) img { 
1217  aspect-ratio: 9 / 16 !important;
1218  object-fit: cover !important;
1219}
1220.image-wrapper:has([data-wf--image-ratio--variant="auto"]) img { 
1221  aspect-ratio: auto !important;
1222}
1223
1224  /* Image Ratio - Mobile Override (767px and below) */
1225@media (max-width: 767px) {
1226  .image-wrapper:has([data-wf--image-ratio-mobile--variant="square"]) img { aspect-ratio: 1 / 1 !important; }
1227  .image-wrapper:has([data-wf--image-ratio-mobile--variant="4-3"]) img { aspect-ratio: 4 / 3 !important; }
1228  .image-wrapper:has([data-wf--image-ratio-mobile--variant="3-2"]) img { aspect-ratio: 3 / 2 !important; }
1229  .image-wrapper:has([data-wf--image-ratio-mobile--variant="16-9"]) img { aspect-ratio: 16 / 9 !important; }
1230  .image-wrapper:has([data-wf--image-ratio-mobile--variant="21-9"]) img { aspect-ratio: 21 / 9 !important; }
1231  .image-wrapper:has([data-wf--image-ratio-mobile--variant="3-4"]) img { aspect-ratio: 3 / 4 !important; }
1232  .image-wrapper:has([data-wf--image-ratio-mobile--variant="2-3"]) img { aspect-ratio: 2 / 3 !important; }
1233  .image-wrapper:has([data-wf--image-ratio-mobile--variant="9-16"]) img { aspect-ratio: 9 / 16 !important; }
1234  .image-wrapper:has([data-wf--image-ratio-mobile--variant="auto"]) img { aspect-ratio: auto !important; }
1235}
1236</style>
1237
1238<style>
1239/* Image Size */
1240.image-wrapper:has([data-wf--image-size--variant="auto"]) img { 
1241  width: auto !important; 
1242}
1243.image-wrapper:has([data-wf--image-size--variant="25"]) img { 
1244  width: 25% !important; 
1245}
1246.image-wrapper:has([data-wf--image-size--variant="50"]) img { 
1247  width: 50% !important; 
1248}
1249.image-wrapper:has([data-wf--image-size--variant="75"]) img { 
1250  width: 75% !important; 
1251}
1252.image-wrapper:has([data-wf--image-size--variant="full"]) img { 
1253  width: 100% !important; 
1254}
1255.image-wrapper:has([data-wf--image-size--variant="125"]) img { 
1256  width: 125% !important; 
1257  max-width: none !important;
1258}
1259.image-wrapper:has([data-wf--image-size--variant="150"]) img { 
1260  width: 150% !important; 
1261  max-width: none !important;
1262}
1263.image-wrapper:has([data-wf--image-size--variant="200"]) img { 
1264  width: 200% !important; 
1265  max-width: none !important;
1266}
1267}
1268</style>
1269
1270<style>
1271/* Image Fit */
1272.image-wrapper:has([data-wf--image-fit--variant="fit"]) img { object-fit: contain !important; }
1273.image-wrapper:has([data-wf--image-fit--variant="cover"]) img { object-fit: cover !important; }
1274.image-wrapper:has([data-wf--image-fit--variant="fill"]) img { object-fit: f
1274ill !important; }
1275</style></div><div class="hide w-embed"><style>
1276/* ================================================
1277   BACKGROUND / ELEMENT - BASE
1278   ================================================ */
1279
1280[data-wf--background-element--position] {
1281  position: absolute;
1282  pointer-events: none;
1283}
1284
1285/* ================================================
1286   POSITION + TRANSFORM ORIGIN
1287   Each position pins the element to an edge/corner
1288   and sets transform-origin to match, so all
1289   transforms (flip) anchor correctly.
1290   ================================================ */
1291
1292[data-wf--background-element--position="top-left"] {
1293  top: 0;
1294  left: 0;
1295  transform-origin: top left;
1296}
1297
1298[data-wf--background-element--position="top-center"] {
1299  top: 0;
1300  left: 50%;
1301  transform: translateX(-50%);
1302  transform-origin: top center;
1303}
1304
1305[data-wf--background-element--position="top-right"] {
1306  top: 0;
1307  right: 0;
1308  transform-origin: top right;
1309}
1310
1311[data-wf--background-element--position="center-left"] {
1312  top: 50%;
1313  left: 0;
1314  transform: translateY(-50%);
1315  transform-origin: center left;
1316}
1317
1318[data-wf--background-element--position="center"] {
1319  top: 50%;
1320  left: 50%;
1321  transform: translate(-50%, -50%);
1322  transform-origin: center center;
1323}
1324
1325[data-wf--background-element--position="center-right"] {
1326  top: 50%;
1327  right: 0;
1328  transform: translateY(-50%);
1329  transform-origin: center right;
1330}
1331
1332[data-wf--background-element--position="bottom-left"] {
1333  bottom: 0;
1334  left: 0;
1335  transform-origin: bottom left;
1336}
1337
1338[data-wf--background-element--position="bottom-center"] {
1339  bottom: 0;
1340  left: 50%;
1341  transform: translateX(-50%);
1342  transform-origin: bottom center;
1343}
1344
1345[data-wf--background-element--position="bottom-right"] {
1346  bottom: 0;
1347  right: 0;
1348  transform-origin: bottom right;
1349}
1350
1351/* ================================================
1352   IMAGE SIZE
1353   Controls the width of the background element
1354   wrapper via the Image Size sub-component.
1355   Percentage-based, so it scales naturally with
1356   the viewport.
1357   ================================================ */
1358
1359[data-wf--background-element--position]:has([data-wf--image-size--variant="25"]) {
1360  width: 25%;
1361}
1362
1363[data-wf--background-element--position]:has([data-wf--image-size--variant="50"]) {
1364  width: 50%;
1365}
1366
1367[data-wf--background-element--position]:has([data-wf--image-size--variant="75"]) {
1368  width: 75%;
1369}
1370
1371[data-wf--background-element--position]:has([data-wf--image-size--variant="full"]) {
1372  width: 100%;
1373}
1374
1375[data-wf--background-element--position]:has([data-wf--image-size--variant="125"]) {
1376  width: 125%;
1377}
1378
1379[data-wf--background-element--position]:has([data-wf--image-size--variant="150"]) {
1380  width: 150%;
1381}
1382
1383[data-wf--background-element--position]:has([data-wf--image-size--variant="200"]) {
1384  width: 200%;
1385}
1386
1387[data-wf--background-element--position] img {
1388  width: 100%;
1389  height: auto;
1390}
1391
1392/* ================================================
1393   UTILITY / Z-INDEX
1394   ================================================ */
1395
1396[data-wf--utility-z-index--variant] {
1397  display: none;
1398}
1399
1400[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="-1"]) {
1401  z-index: -1 !important;
1402}
1403
1404[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="0"]) {
1405  z-index: 0 !important;
1406}
1407
1408[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="1"]) {
1409  z-index: 1 !important;
1410}
1411
1412[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="2"]) {
1413  z-index: 2 !important;
1414}
1415
1416/* ================================================
1417   UTILITY / FLIP
1418   Mirrors the element on one or both axes.
1419   Because transform-origin is set per position,
1420   flips always anchor to the correct corner/edge.
1421   ================================================ */
1422
1423[data-wf--utility-flip--variant] {
1424  display: none;
1425}
1426
1427/* --- Corners (no translate needed) --- */
1428
1429[data-wf--background-element--position="top-left"]:has([data-wf--utility-flip--variant="horizontal"]),
1430[data-wf--background-element--position="top-right"]:has([data-wf--utility-flip--variant="horizontal"]),
1431[data-wf--background-element--position="bottom-left"]:has([data-wf--utility-flip--variant="horizontal"]),
1432[data-wf--background-element--position="bottom-right"]:has([data-wf--utility-flip--variant="horizontal"]) {
1433  transform: scaleX(-1);
1434}
1435
1436[data-wf--background-element--position="top-left"]:has([data-wf--utility-flip--variant="vertical"]),
1437[data-wf--background-element--position="top-right"]:has([data-wf--utility-flip--variant="vertical"]),
1438[data-wf--background-element--position="bottom-left"]:has([data-wf--utility-flip--variant="vertical"]),
1439[data-wf--background-element--position="bottom-right"]:has([data-wf--utility-flip--variant="vertical"]) {
1440  transform: scaleY(-1);
1441}
1442
1443[data-wf--background-element--position="top-left"]:has([data-wf--utility-flip--variant="both"]),
1444[data-wf--background-element--position="top-right"]:has([data-wf--utility-flip--variant="both"]),
1445[data-wf--background-element--position="bottom-left"]:has([data-wf--utility-flip--variant="both"]),
1446[data-wf--background-element--position="bottom-right"]:has([data-wf--utility-flip--variant="both"]) {
1447  transform: scale(-1, -1);
1448}
1449
1450/* --- Top/Bottom Center (preserve translateX) --- */
1451
1452[data-wf--background-element--position="top-center"]:has([data-wf--utility-flip--variant="horizontal"]),
1453[data-wf--background-element--position="bottom-center"]:has([data-wf--utility-flip--variant="horizontal"]) {
1454  transform: translateX(-50%) scaleX(-1);
1455}
1456
1457[data-wf--background-element--position="top-center"]:has([data-wf--utility-flip--variant="vertical"]),
1458[data-wf--background-element--position="bottom-center"]:has([data-wf--utility-flip--variant="vertical"]) {
1459  transform: translateX(-50%) scaleY(-1);
1460}
1461
1462[data-wf--background-element--position="top-center"]:has([data-wf--utility-flip--variant="both"]),
1463[data-wf--background-element--position="bottom-center"]:has([data-wf--utility-flip--variant="both"]) {
1464  transform: translateX(-50%) scale(-1, -1);
1465}
1466
1467/* --- Center Left/Right (preserve translateY) --- */
1468
1469[data-wf--background-element--position="center-left"]:has([data-wf--utility-flip--variant="horizontal"]),
1470[data-wf--background-element--position="center-right"]:has([data-wf--utility-flip--variant="horizontal"]) {
1471  transform: translateY(-50%) scaleX(-1);
1472}
1473
1474[data-wf--background-element--position="center-left"]:has([data-wf--utility-flip--variant="vertical"]),
1475[data-wf--background-element--position="center-right"]:has([data-wf--utility-flip--variant="vertical"]) {
1476  transform: translateY(-50%) scaleY(-1);
1477}
1478
1479[data-wf--background-element--position="center-left"]:has([data-wf--utility-flip--variant="both"]),
1480[data-wf--background-element--position="center-right"]:has([data-wf--utility-flip--variant="both"]) {
1481  transform: translateY(-50%) scale(-1, -1);
1482}
1483
1484/* --- Center (preserve both translates) --- */
1485
1486[data-wf--background-element--position="center"]:has([data-wf--utility-flip--variant="horizontal"]) {
1487  transform: translate(-50%, -50%) scaleX(-1);
1488}
1489
1490[data-wf--background-element--position="center"]:has([data-wf--utility-flip--variant="vertical"]) {
1491  transform: translate(-50%, -50%) scaleY(-1);
1492}
1493
1494[data-wf--background-element--position="center"]:has([data-wf--utility-flip--variant="both"]) {
1495  transform: translate(-50%, -50%) scale(-1, -1);
1496}
1497
1498/* ================================================
1499   OFFSET X
1500   Shifts the element along the X axis.
1501   Negative = outward from anchor / left.
1502   Positive = inward from anchor / right.
1503
1504   For left-anchored positions: adjusts `left`
1505   For right-anchored positions: adjusts `right` (inverted)
1506   For center-X positions: adjusts `left` from 50%
1507
1508   Webflow variant labels / slugs:
1509   Neg 100% → neg-100  |  10% → 10
1510   Neg 90%  → neg-90   |  20% → 20
1511   ...                  |  ...
1512   Neg 10%  → neg-10   |  100% → 100
1513   Base     → base
1514   ================================================ */
1515
1516[data-wf--background-element-offset-x--variant] {
1517  display: none;
1518}
1519
1520/* --- Set the offset variable --- */
1521
1522[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-100"]) { --offset-x: -100%; }
1523[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-90"]) { --offset-x: -90%; }
1524[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-80"]) { --offset-x: -80%; }
1525[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-75"]) { --offset-x: -75%; }
1526[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-70"]) { --offset-x: -70%; }
1527[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-60"]) { --offset-x: -60%; }
1528[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-50"]) { --offset-x: -50%; }
1529[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-40"]) { --offset-x: -40%; }
1530[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-30"]) { --offset-x: -30%; }
1531[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-25"]) { --offset-x: -25%; }
1532[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-20"]) { --offset-x: -20%; }
1533[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-10"]) { --offset-x: -10%; }
1534[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="10"]) { --offset-x: 10%; }
1535[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="20"]) { --offset-x: 20%; }
1536[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="25"]) { --offset-x: 25%; }
1537[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="30"]) { --offset-x: 30%; }
1538[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="40"]) { --offset-x: 40%; }
1539[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="50"]) { --offset-x: 50%; }
1540[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="60"]) { --offset-x: 60%; }
1541[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="70"]) { --offset-x: 70%; }
1542[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="75"]) { --offset-x: 75%; }
1543[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="80"]) { --offset-x: 80%; }
1544[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="90"]) { --offset-x: 90%; }
1545[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="100"]) { --offset-x: 100%; }
1546
1547/* --- Apply to left-anchored positions --- */
1548
1549[data-wf--background-element--position="top-left"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1550[data-wf--background-element--position="center-left"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1551[data-wf--background-element--position="bottom-left"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])) {
1552  left: var(--offset-x);
1553}
1554
1555/* --- Apply to right-anchored positions --- */
1556
1557[data-wf--background-element--position="top-right"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1558[data-wf--background-element--position="center-right"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1559[data-wf--background-element--position="bottom-right"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])) {
1560  right: calc(0% - var(--offset-x));
1561}
1562
1563/* --- Apply to center-X positions --- */
1564
1565[data-wf--background-element--position="top-center"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1566[data-wf--background-element--position="center"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1567[data-wf--background-element--position="bottom-center"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])) {
1568  left: calc(50% + var(--offset-x));
1569}
1570
1571/* ================================================
1572   OFFSET Y
1573   Shifts the element along the Y axis.
1574   Negative = outward from anchor / up.
1575   Positive = inward from anchor / down.
1576
1577   For top-anchored positions: adjusts `top`
1578   For bottom-anchored positions: adjusts `bottom` (inverted)
1579   For center-Y positions: adjusts `top` from 50%
1580
1581   Webflow variant labels / slugs:
1582   Neg 100% → neg-100  |  10% → 10
1583   Neg 90%  → neg-90   |  20% → 20
1584   ...                  |  ...
1585   Neg 10%  → neg-10   |  100% → 100
1586   Base     → base
1587   ================================================ */
1588
1589[data-wf--background-element-offset-y--variant] {
1590  display: none;
1591}
1592
1593/* --- Set the offset variable --- */
1594
1595[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-100"]) { --offset-y: -100%; }
1596[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-90"]) { --offset-y: -90%; }
1597[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-80"]) { --offset-y: -80%; }
1598[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-75"]) { --offset-y: -75%; }
1599[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-70"]) { --offset-y: -70%; }
1600[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-60"]) { --offset-y: -60%; }
1601[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-50"]) { --offset-y: -50%; }
1602[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-40"]) { --offset-y: -40%; }
1603[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-30"]) { --offset-y: -30%; }
1604[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-25"]) { --offset-y: -25%; }
1605[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-20"]) { --offset-y: -20%; }
1606[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-10"]) { --offset-y: -10%; }
1607[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="10"]) { --offset-y: 10%; }
1608[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="20"]) { --offset-y: 20%; }
1609[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="25"]) { --offset-y: 25%; }
1610[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="30"]) { --offset-y: 30%; }
1611[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="40"]) { --offset-y: 40%; }
1612[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="50"]) { --offset-y: 50%; }
1613[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="60"]) { --offset-y: 60%; }
1614[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="70"]) { --offset-y: 70%; }
1615[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="75"]) { --offset-y: 75%; }
1616[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="80"]) { --offset-y: 80%; }
1617[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="90"]) { --offset-y: 90%; }
1618[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="100"]) { --offset-y: 100%; }
1619
1620/* --- Apply to top-anchored positions --- */
1621
1622[data-wf--background-element--position="top-left"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1623[data-wf--background-element--position="top-center"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1624[data-wf--background-element--position="top-right"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])) {
1625  top: var(--offset-y);
1626}
1627
1628/* --- Apply to bottom-anchored positions --- */
1629
1630[data-wf--background-element--position="bottom-left"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1631[data-wf--background-element--position="bottom-center"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1632[data-wf--background-element--position="bottom-right"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])) {
1633  bottom: calc(0% - var(--offset-y));
1634}
1635
1636/* --- Apply to center-Y positions --- */
1637
1638[data-wf--background-element--position="center-left"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1639[data-wf--background-element--position="center"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1640[data-wf--background-element--position="center-right"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])) {
1641  top: calc(50% + var(--offset-y));
1642}
1643</style></div><div><div class="hide w-embed"><style>
1644
1645</style></div><div class="hide w-embed"><style>
1646/* ================================================
1647   UTILITY / ALIGN
1648   ================================================ */
1649
1650[data-wf--utility-align--variant] {
1651  display: none;
1652}
1653
1654:has(> [data-wf--utility-align--variant="stretch"]),
1655:has(> [data-wf--utility-align--variant="stretch"]) > .grid {
1656  align-items: stretch;
1657}
1658
1659:has(> [data-wf--utility-align--variant="top"]),
1660:has(> [data-wf--utility-align--variant="top"]) > .grid {
1661  align-items: start;
1662}
1663
1664:has(> [data-wf--utility-align--variant="center"]),
1665:has(> [data-wf--utility-align--variant="center"]) > .grid {
1666  align-items: center;
1667}
1668
1669:has(> [data-wf--utility-align--variant="bottom"]),
1670:has(> [data-wf--utility-align--variant="bottom"]) > .grid {
1671  align-items: end;
1672}
1673
1674:has(> [data-wf--utility-align--variant="baseline"]),
1675:has(> [data-wf--utility-align--variant="baseline"]) > .grid {
1676  align-items: baseline;
1677}
1678</style></div><div class="hide w-embed"><style>
1679/* ================================================
1680   UTILITY / ALIGN SELF
1681   ================================================ */
1682/* Desktop */
1683[data-wf--utility-align-self--variant] {
1684  display: none;
1685}
1686:has(> [data-wf--utility-align-self--variant="start"]) {
1687  justify-self: start;
1688}
1689:has(> [data-wf--utility-align-self--variant="center"]) {
1690  justify-self: center;
1691}
1692:has(> [data-wf--utility-align-self--variant="end"]) {
1693  justify-self: end;
1694}
1695:has(> [data-wf--utility-align-self--variant="stretch"]) {
1696  justify-self: stretch;
1697}
1698
1699/* Mobile Override */
1700[data-wf--utility-align-self-mobile--variant] {
1701  display: none;
1702}
1703
1704@media (max-width: 767px) {
1705  :has([data-wf--utility-align-self-mobile--variant="start"]) {
1706    justify-self: start;
1707  }
1708  :has([data-wf--utility-align-self-mobile--variant="center"]) {
1709    justify-self: center;
1710  }
1711  :has([data-wf--utility-align-self-mobile--variant="end"]) {
1712    justify-self: end;
1713  }
1714  :has([data-wf--utility-align-self-mobile--variant="stretch"]) {
1715    justify-self: stretch;
1716  }
1717}
1718</style></div><div class="hide w-embed"><style>
1719/* ================================================
1720   UTILITY / BLEND MODE
1721   ================================================ */
1722
1723[data-wf--utility-blend-mode--variant] {
1724  display: none;
1725}
1726
1727:has(> [data-wf--utility-blend-mode--variant="multiply"]) {
1728  mix-blend-mode: multiply;
1729}
1730:has(> [data-wf--utility-blend-mode--variant="screen"]) {
1731  mix-blend-mode: screen;
1732}
1733:has(> [data-wf--utility-blend-mode--variant="overlay"]) {
1734  mix-blend-mode: overlay;
1735}
1736:has(> [data-wf--utility-blend-mode--variant="darken"]) {
1737  mix-blend-mode: darken;
1738}
1739:has(> [data-wf--utility-blend-mode--variant="lighten"]) {
1740  mix-blend-mode: lighten;
1741}
1742:has(> [data-wf--utility-blend-mode--variant="color-dodge"]) {
1743  mix-blend-mode: color-dodge;
1744}
1745:has(> [data-wf--utility-blend-mode--variant="color-burn"]) {
1746  mix-blend-mode: color-burn;
1747}
1748:has(> [data-wf--utility-blend-mode--variant="soft-light"]) {
1749  mix-blend-mode: soft-light;
1750}
1751:has(> [data-wf--utility-blend-mode--variant="hard-light"]) {
1752  mix-blend-mode: hard-light;
1753}
1754</style></div><div class="hide w-embed"><style>
1755/* ================================================
1756   UTILITY / BORDER RADIUS
1757   Overrides the parent element's border-radius.
1758   Drop this component inside any element that
1759   needs a radius change from its default.
1760
1761   Variants:
1762   - Base (no override)
1763   - None (0)
1764   - Small
1765   - Medium
1766   - Large
1767   - XLarge
1768   - Full (pill)
1769   ================================================ */
1770
1771[data-wf--utility-border-radius--variant] {
1772  display: none;
1773}
1774
1775:has(> [data-wf--utility-border-radius--variant="none"]) {
1776  border-radius: 0 !important;
1777}
1778
1779:has(> [data-wf--utility-border-radius--variant="small"]) {
1780  border-radius: var(--_border-radius---small) !important;
1781  overflow: hidden;
1782}
1783
1784:has(> [data-wf--utility-border-radius--variant="medium"]) {
1785  border-radius: var(--_border-radius---medium) !important;
1786  overflow: hidden;
1787}
1788
1789:has(> [data-wf--utility-border-radius--variant="large"]) {
1790  border-radius: var(--_border-radius---large) !important;
1791  overflow: hidden;
1792}
1793
1794:has(> [data-wf--utility-border-radius--variant="xlarge"]) {
1795  border-radius: var(--_border-radius---xlarge) !important;
1796  overflow: hidden;
1797}
1798
1799:has(> [data-wf--utility-border-radius--variant="full"]) {
1800  border-radius: 9999px !important;
1801  overflow: hidden;
1802}
1803</style></div><div class="hide w-embed"><style>
1804/* ================================================
1805   UTILITY / FONT
1806   ================================================ */
1807
1808[data-wf--utility-font--variant] {
1809  display: none;
1810}
1811
1812:has(> [data-wf--utility-font--variant="display"]),
1813:has(> [data-wf--utility-font--variant="display"]) h1,
1814:has(> [data-wf--utility-font--variant="display"]) h2,
1815:has(> [data-wf--utility-font--variant="display"]) h3,
1816:has(> [data-wf--utility-font--variant="display"]) h4,
1817:has(> [data-wf--utility-font--variant="display"]) h5,
1818:has(> [data-wf--utility-font--variant="display"]) h6,
1819:has(> [data-wf--utility-font--variant="display"]) p {
1820  font-family: var(--_typography---font-families--display-font);
1821}
1822
1823:has(> [data-wf--utility-font--variant="heading"]),
1824:has(> [data-wf--utility-font--variant="heading"]) h1,
1825:has(> [data-wf--utility-font--variant="heading"]) h2,
1826:has(> [data-wf--utility-font--variant="heading"]) h3,
1827:has(> [data-wf--utility-font--variant="heading"]) h4,
1828:has(> [data-wf--utility-font--variant="heading"]) h5,
1829:has(> [data-wf--utility-font--variant="heading"]) h6,
1830:has(> [data-wf--utility-font--variant="heading"]) p {
1831  font-family: var(--_typography---font-families--heading-font);
1832}
1833
1834:has(> [data-wf--utility-font--variant="body"]),
1835:has(> [data-wf--utility-font--variant="body"]) h1,
1836:has(> [data-wf--utility-font--variant="body"]) h2,
1837:has(> [data-wf--utility-font--variant="body"]) h3,
1838:has(> [data-wf--utility-font--variant="body"]) h4,
1839:has(> [data-wf--utility-font--variant="body"]) h5,
1840:has(> [data-wf--utility-font--variant="body"]) h6,
1841:has(> [data-wf--utility-font--variant="body"]) p {
1842  font-family: var(--_typography---font-families--body-font);
1843}
1844
1845:has(> [data-wf--utility-font--variant="alt-body"]),
1846:has(> [data-wf--utility-font--variant="alt-body"]) h1,
1847:has(> [data-wf--utility-font--variant="alt-body"]) h2,
1848:has(> [data-wf--utility-font--variant="alt-body"]) h3,
1849:has(> [data-wf--utility-font--variant="alt-body"]) h4,
1850:has(> [data-wf--utility-font--variant="alt-body"]) h5,
1851:has(> [data-wf--utility-font--variant="alt-body"]) h6,
1852:has(> [data-wf--utility-font--variant="alt-body"]) p {
1853  font-family: var(--_typography---font-families--alt-body-font);
1854}
1855
1856/* ================================================
1857   UTILITY / TEXT SIZE
1858   ================================================ */
1859
1860[data-wf--utility-text-size--variant] {
1861  display: none;
1862}
1863
1864:has(> [data-wf--utility-text-size--variant="display"]),
1865:has(> [data-wf--utility-text-size--variant="display"]) h1,
1866:has(> [data-wf--utility-text-size--variant="display"]) h2,
1867:has(> [data-wf--utility-text-size--variant="display"]) h3,
1868:has(> [data-wf--utility-text-size--variant="display"]) h4,
1869:has(> [data-wf--utility-text-size--variant="display"]) h5,
1870:has(> [data-wf--utility-text-size--variant="display"]) h6,
1871:has(> [data-wf--utility-text-size--variant="display"]) p {
1872  font-size: var(--_typography---heading-sizes--display);
1873  line-height: var(--_typography---line-height--display);
1874  letter-spacing: var(--_typography---letter-spacing--display);
1875}
1876
1877:has(> [data-wf--utility-text-size--variant="h1"]),
1878:has(> [data-wf--utility-text-size--variant="h1"]) h1,
1879:has(> [data-wf--utility-text-size--variant="h1"]) h2,
1880:has(> [data-wf--utility-text-size--variant="h1"]) h3,
1881:has(> [data-wf--utility-text-size--variant="h1"]) h4,
1882:has(> [data-wf--utility-text-size--variant="h1"]) h5,
1883:has(> [data-wf--utility-text-size--variant="h1"]) h6,
1884:has(> [data-wf--utility-text-size--variant="h1"]) p {
1885  font-size: var(--_typography---heading-sizes--h1);
1886  line-height: var(--_typography---line-height--h1);
1887  letter-spacing: var(--_typography---letter-spacing--h1);
1888}
1889
1890:has(> [data-wf--utility-text-size--variant="h2"]),
1891:has(> [data-wf--utility-text-size--variant="h2"]) h1,
1892:has(> [data-wf--utility-text-size--variant="h2"]) h2,
1893:has(> [data-wf--utility-text-size--variant="h2"]) h3,
1894:has(> [data-wf--utility-text-size--variant="h2"]) h4,
1895:has(> [data-wf--utility-text-size--variant="h2"]) h5,
1896:has(> [data-wf--utility-text-size--variant="h2"]) h6,
1897:has(> [data-wf--utility-text-size--variant="h2"]) p {
1898  font-size: var(--_typography---heading-sizes--h2);
1899  line-height: var(--_typography---line-height--h2);
1900  letter-spacing: var(--_typography---letter-spacing--h2);
1901}
1902
1903:has(> [data-wf--utility-text-size--variant="h3"]),
1904:has(> [data-wf--utility-text-size--variant="h3"]) h1,
1905:has(> [data-wf--utility-text-size--variant="h3"]) h2,
1906:has(> [data-wf--utility-text-size--variant="h3"]) h3,
1907:has(> [data-wf--utility-text-size--variant="h3"]) h4,
1908:has(> [data-wf--utility-text-size--variant="h3"]) h5,
1909:has(> [data-wf--utility-text-size--variant="h3"]) h6,
1910:has(> [data-wf--utility-text-size--variant="h3"]) p {
1911  font-size: var(--_typography---heading-sizes--h3);
1912  line-height: var(--_typography---line-height--h3);
1913  letter-spacing: var(--_typography---letter-spacing--h3);
1914}
1915
1916:has(> [data-wf--utility-text-size--variant="h4"]),
1917:has(> [data-wf--utility-text-size--variant="h4"]) h1,
1918:has(> [data-wf--utility-text-size--variant="h4"]) h2,
1919:has(> [data-wf--utility-text-size--variant="h4"]) h3,
1920:has(> [data-wf--utility-text-size--variant="h4"]) h4,
1921:has(> [data-wf--utility-text-size--variant="h4"]) h5,
1922:has(> [data-wf--utility-text-size--variant="h4"]) h6,
1923:has(> [data-wf--utility-text-size--variant="h4"]) p {
1924  font-size: var(--_typography---heading-sizes--h4);
1925  line-height: var(--_typography---line-height--h4);
1926  letter-spacing: var(--_typography---letter-spacing--h4);
1927}
1928
1929:has(> [data-wf--utility-text-size--variant="h5"]),
1930:has(> [data-wf--utility-text-size--variant="h5"]) h1,
1931:has(> [data-wf--utility-text-size--variant="h5"]) h2,
1932:has(> [data-wf--utility-text-size--variant="h5"]) h3,
1933:has(> [data-wf--utility-text-size--variant="h5"]) h4,
1934:has(> [data-wf--utility-text-size--variant="h5"]) h5,
1935:has(> [data-wf--utility-text-size--variant="h5"]) h6,
1936:has(> [data-wf--utility-text-size--variant="h5"]) p {
1937  font-size: var(--_typography---heading-sizes--h5);
1938  line-height: var(--_typography---line-height--h5);
1939  letter-spacing: var(--_typography---letter-spacing--h5);
1940}
1941
1942:has(> [data-wf--utility-text-size--variant="h6"]),
1943:has(> [data-wf--utility-text-size--variant="h6"]) h1,
1944:has(> [data-wf--utility-text-size--variant="h6"]) h2,
1945:has(> [data-wf--utility-text-size--variant="h6"]) h3,
1946:has(> [data-wf--utility-text-size--variant="h6"]) h4,
1947:has(> [data-wf--utility-text-size--variant="h6"]) h5,
1948:has(> [data-wf--utility-text-size--variant="h6"]) h6,
1949:has(> [data-wf--utility-text-size--variant="h6"]) p {
1950  font-size: var(--_typography---heading-sizes--h6);
1951  line-height: var(--_typography---line-height--h6);
1952  letter-spacing: var(--_typography---letter-spacing--h6);
1953}
1954
1955:has(> [data-wf--utility-text-size--variant="text-large"]),
1956:has(> [data-wf--utility-text-size--variant="text-large"]) h1,
1957:has(> [data-wf--utility-text-size--variant="text-large"]) h2,
1958:has(> [data-wf--utility-text-size--variant="text-large"]) h3,
1959:has(> [data-wf--utility-text-size--variant="text-large"]) h4,
1960:has(> [data-wf--utility-text-size--variant="text-large"]) h5,
1961:has(> [data-wf--utility-text-size--variant="text-large"]) h6,
1962:has(> [data-wf--utility-text-size--variant="text-large"]) p {
1963  font-size: var(--_typography---body-sizes--text-large);
1964  line-height: var(--_typography---line-height--paragraph);
1965  letter-spacing: var(--_typography---letter-spacing--paragraph);
1966}
1967
1968:has(> [data-wf--utility-text-size--variant="text-medium"]),
1969:has(> [data-wf--utility-text-size--variant="text-medium"]) h1,
1970:has(> [data-wf--utility-text-size--variant="text-medium"]) h2,
1971:has(> [data-wf--utility-text-size--variant="text-medium"]) h3,
1972:has(> [data-wf--utility-text-size--variant="text-medium"]) h4,
1973:has(> [data-wf--utility-text-size--variant="text-medium"]) h5,
1974:has(> [data-wf--utility-text-size--variant="text-medium"]) h6,
1975:has(> [data-wf--utility-text-size--variant="text-medium"]) p {
1976  font-size: var(--_typography---body-sizes--text-medium);
1977  line-height: var(--_typography---line-height--paragraph);
1978  letter-spacing: var(--_typography---letter-spacing--paragraph);
1979}
1980
1981:has(> [data-wf--utility-text-size--variant="text-regular"]),
1982:has(> [data-wf--utility-text-size--variant="text-regular"]) h1,
1983:has(> [data-wf--utility-text-size--variant="text-regular"]) h2,
1984:has(> [data-wf--utility-text-size--variant="text-regular"]) h3,
1985:has(> [data-wf--utility-text-size--variant="text-regular"]) h4,
1986:has(> [data-wf--utility-text-size--variant="text-regular"]) h5,
1987:has(> [data-wf--utility-text-size--variant="text-regular"]) h6,
1988:has(> [data-wf--utility-text-size--variant="text-regular"]) p {
1989  font-size: var(--_typography---body-sizes--text-regular);
1990  line-height: var(--_typography---line-height--paragraph);
1991  letter-spacing: var(--_typography---letter-spacing--paragraph);
1992}
1993
1994:has(> [data-wf--utility-text-size--variant="text-small"]),
1995:has(> [data-wf--utility-text-size--variant="text-small"]) h1,
1996:has(> [data-wf--utility-text-size--variant="text-small"]) h2,
1997:has(> [data-wf--utility-text-size--variant="text-small"]) h3,
1998:has(> [data-wf--utility-text-size--variant="text-small"]) h4,
1999:has(> [data-wf--utility-text-size--variant="text-small"]) h5,
2000:has(> [data-wf--utility-text-size--variant="text-small"]) h6,
2001:has(> [data-wf--utility-text-size--variant="text-small"]) p {
2002  font-size: var(--_typography---body-sizes--text-small);
2003  line-height: var(--_typography---line-height--paragraph);
2004  letter-spacing: var(--_typography---letter-spacing--paragraph);
2005}
2006
2007:has(> [data-wf--utility-text-size--variant="text-tiny"]),
2008:has(> [data-wf--utility-text-size--variant="text-tiny"]) h1,
2009:has(> [data-wf--utility-text-size--variant="text-tiny"]) h2,
2010:has(> [data-wf--utility-text-size--variant="text-tiny"]) h3,
2011:has(> [data-wf--utility-text-size--variant="text-tiny"]) h4,
2012:has(> [data-wf--utility-text-size--variant="text-tiny"]) h5,
2013:has(> [data-wf--utility-text-size--variant="text-tiny"]) h6,
2014:has(> [data-wf--utility-text-size--variant="text-tiny"]) p {
2015  font-size: var(--_typography---body-sizes--text-tiny);
2016  line-height: var(--_typography---line-height--paragraph);
2017  letter-spacing: var(--_typography---letter-spacing--paragraph);
2018}
2019</style></div><div class="hide w-embed"><style>
2020/* ================================================
2021   UTILITY / GAP
2022   ================================================ */
2023[data-wf--utility-gap--variant] {
2024  display: none;
2025}
2026:has(> [data-wf--utility-gap--variant="none"]),
2027:has(> [data-wf--utility-gap--variant="none"]) > .grid {
2028  gap: 0rem !important;
2029}
2030:has(> [data-wf--utility-gap--variant="tiny"]),
2031:has(> [data-wf--utility-gap--variant="tiny"]) > .grid {
2032  gap: var(--_spacing---tiny) !important;
2033}
2034:has(> [data-wf--utility-gap--variant="xxsmall"]),
2035:has(> [data-wf--utility-gap--variant="xxsmall"]) > .grid {
2036  gap: var(--_spacing---xxsmall) !important;
2037}
2038:has(> [data-wf--utility-gap--variant="xsmall"]),
2039:has(> [data-wf--utility-gap--variant="xsmall"]) > .grid {
2040  gap: var(--_spacing---xsmall) !important;
2041}
2042:has(> [data-wf--utility-gap--variant="small"]),
2043:has(> [data-wf--utility-gap--variant="small"]) > .grid {
2044  gap: var(--_spacing---small) !important;
2045}
2046:has(> [data-wf--utility-gap--variant="medium"]),
2047:has(> [data-wf--utility-gap--variant="medium"]) > .grid {
2048  gap: var(--_spacing---medium) !important;
2049}
2050:has(> [data-wf--utility-gap--variant="large"]),
2051:has(> [data-wf--utility-gap--variant="large"]) > .grid {
2052  gap: var(--_spacing---large) !important;
2053}
2054:has(> [data-wf--utility-gap--variant="xlarge"]),
2055:has(> [data-wf--utility-gap--variant="xlarge"]) > .grid {
2056  gap: var(--_spacing---xlarge) !important;
2057}
2058:has(> [data-wf--utility-gap--variant="xxlarge"]),
2059:has(> [data-wf--utility-gap--variant="xxlarge"]) > .grid {
2060  gap: var(--_spacing---xxlarge) !important;
2061}
2062:has(> [data-wf--utility-gap--variant="huge"]),
2063:has(> [data-wf--utility-gap--variant="huge"]) > .grid {
2064  gap: var(--_spacing---huge) !important;
2065}
2066:has(> [data-wf--utility-gap--variant="xhuge"]),
2067:has(> [data-wf--utility-gap--variant="xhuge"]) > .grid {
2068  gap: var(--_spacing---xhuge) !important;
2069}
2070:has(> [data-wf--utility-gap--variant="xxhuge"]),
2071:has(> [data-wf--utility-gap--variant="xxhuge"]) > .grid {
2072  gap: var(--_spacing---xxhuge) !important;
2073}
2074
2075/* ================================================
2076   UTILITY / GAP (MOBILE)
2077   Overrides gap spacing at 767px and below.
2078   Place as a direct child of the component wrapper.
2079   ================================================ */
2080
2081[data-wf--utility-gap-mobile--variant] {
2082  display: none;
2083}
2084
2085@media (max-width: 767px) {
2086  :has(> [data-wf--utility-gap-mobile--variant="none"]),
2087  :has(> [data-wf--utility-gap-mobile--variant="none"]) > .grid {
2088    gap: 0rem !important;
2089  }
2090  :has(> [data-wf--utility-gap-mobile--variant="tiny"]),
2091  :has(> [data-wf--utility-gap-mobile--variant="tiny"]) > .grid {
2092    gap: var(--_spacing---tiny) !important;
2093  }
2094  :has(> [data-wf--utility-gap-mobile--variant="xxsmall"]),
2095  :has(> [data-wf--utility-gap-mobile--variant="xxsmall"]) > .grid {
2096    gap: var(--_spacing---xxsmall) !important;
2097  }
2098  :has(> [data-wf--utility-gap-mobile--variant="xsmall"]),
2099  :has(> [data-wf--utility-gap-mobile--variant="xsmall"]) > .grid {
2100    gap: var(--_spacing---xsmall) !important;
2101  }
2102  :has(> [data-wf--utility-gap-mobile--variant="small"]),
2103  :has(> [data-wf--utility-gap-mobile--variant="small"]) > .grid {
2104    gap: var(--_spacing---small) !important;
2105  }
2106  :has(> [data-wf--utility-gap-mobile--variant="medium"]),
2107  :has(> [data-wf--utility-gap-mobile--variant="medium"]) > .grid {
2108    gap: var(--_spacing---medium) !important;
2109  }
2110  :has(> [data-wf--utility-gap-mobile--variant="large"]),
2111  :has(> [data-wf--utility-gap-mobile--variant="large"]) > .grid {
2112    gap: var(--_spacing---large) !important;
2113  }
2114  :has(> [data-wf--utility-gap-mobile--variant="xlarge"]),
2115  :has(> [data-wf--utility-gap-mobile--variant="xlarge"]) > .grid {
2116    gap: var(--_spacing---xlarge) !important;
2117  }
2118  :has(> [data-wf--utility-gap-mobile--variant="xxlarge"]),
2119  :has(> [data-wf--utility-gap-mobile--variant="xxlarge"]) > .grid {
2120    gap: var(--_spacing---xxlarge) !important;
2121  }
2122  :has(> [data-wf--utility-gap-mobile--variant="huge"]),
2123  :has(> [data-wf--utility-gap-mobile--variant="huge"]) > .grid {
2124    gap: var(--_spacing---huge) !important;
2125  }
2126  :has(> [data-wf--utility-gap-mobile--variant="xhuge"]),
2127  :has(> [data-wf--utility-gap-mobile--variant="xhuge"]) > .grid {
2128    gap: var(--_spacing---xhuge) !important;
2129  }
2130  :has(> [data-wf--utility-gap-mobile--variant="xxhuge"]),
2131  :has(> [data-wf--utility-gap-mobile--variant="xxhuge"]) > .grid {
2132    gap: var(--_spacing---xxhuge) !important;
2133  }
2134}
2135</style></div><div class="hide w-embed"><style>
2136/* ================================================
2137   UTILITY / HEIGHT
2138   ================================================ */
2139
2140[data-wf--utility-height--variant] {
2141  display: none;
2142}
2143
2144:has(> [data-wf--utility-height--variant="full"]),
2145:has(> [data-wf--utility-height--variant="full"]) > .grid {
2146  height: 100%;
2147}
2148
2149:has(> [data-wf--utility-height--variant="screen"]),
2150:has(> [data-wf--utility-height--variant="screen"]) > .grid {
2151  height: 100vh;
2152}
2153
2154:has(> [data-wf--utility-height--variant="auto"]),
2155:has(> [data-wf--utility-height--variant="auto"]) > .grid {
2156  height: auto;
2157}
2158
2159/* ================================================
2160   UTILITY / HEIGHT
2161   ================================================ */
2162[data-wf--utility-height--variant] {
2163  display: none;
2164}
2165:has(> [data-wf--utility-height--variant="10"]) {
2166  height: 10%;
2167}
2168:has(> [data-wf--utility-height--variant="20"]) {
2169  height: 20%;
2170}
2171:has(> [data-wf--utility-height--variant="30"]) {
2172  height: 30%;
2173}
2174:has(> [data-wf--utility-height--variant="40"]) {
2175  height: 40%;
2176}
2177:has(> [data-wf--utility-height--variant="50"]) {
2178  height: 50%;
2179}
2180:has(> [data-wf--utility-height--variant="60"]) {
2181  height: 60%;
2182}
2183:has(> [data-wf--utility-height--variant="70"]) {
2184  height: 70%;
2185}
2186:has(> [data-wf--utility-height--variant="80"]) {
2187  height: 80%;
2188}
2189:has(> [data-wf--utility-height--variant="90"]) {
2190  height: 90%;
2191}
2192:has(> [data-wf--utility-height--variant="100"]) {
2193  height: 100%;
2194}
2195
2196</style></div><div class="hide w-embed"><style>
2197/* ================================================
2198   UTILITY / JUSTIFY
2199   ================================================ */
2200
2201[data-wf--utility-justify--variant] {
2202  display: none;
2203}
2204
2205:has(> [data-wf--utility-justify--variant="start"]),
2206:has(> [data-wf--utility-justify--variant="start"]) > .grid {
2207  justify-content: flex-start;
2208}
2209
2210:has(> [data-wf--utility-justify--variant="center"]),
2211:has(> [data-wf--utility-justify--variant="center"]) > .grid {
2212  justify-content: center;
2213}
2214
2215:has(> [data-wf--utility-justify--variant="end"]),
2216:has(> [data-wf--utility-justify--variant="end"]) > .grid {
2217  justify-content: flex-end;
2218}
2219
2220:has(> [data-wf--utility-justify--variant="between"]),
2221:has(> [data-wf--utility-justify--variant="between"]) > .grid {
2222  justify-content: space-between;
2223}
2224
2225:has(> [data-wf--utility-justify--variant="around"]),
2226:has(> [data-wf--utility-justify--variant="around"]) > .grid {
2227  justify-content: space-around;
2228}
2229
2230:has(> [data-wf--utility-justify--variant="evenly"]),
2231:has(> [data-wf--utility-justify--variant="evenly"]) > .grid {
2232  justify-content: space-evenly;
2233}
2234
2235/* ================================================
2236   UTILITY / JUSTIFY (vertical distribution)
2237   ================================================ */
2238
2239[data-wf--utility-justify--variant] {
2240  display: none;
2241}
2242
2243:has(> [data-wf--utility-justify--variant="start"]),
2244:has(> [data-wf--utility-justify--variant="start"]) > .grid {
2245  align-content: start;
2246}
2247
2248:has(> [data-wf--utility-justify--variant="center"]),
2249:has(> [data-wf--utility-justify--variant="center"]) > .grid {
2250  align-content: center;
2251}
2252
2253:has(> [data-wf--utility-justify--variant="end"]),
2254:has(> [data-wf--utility-justify--variant="end"]) > .grid {
2255  align-content: end;
2256}
2257
2258:has(> [data-wf--utility-justify--variant="between"]),
2259:has(> [data-wf--utility-justify--variant="between"]) > .grid {
2260  align-content: space-between;
2261}
2262
2263:has(> [data-wf--utility-justify--variant="around"]),
2264:has(> [data-wf--utility-justify--variant="around"]) > .grid {
2265  align-content: space-around;
2266}
2267
2268:has(> [data-wf--utility-justify--variant="evenly"]),
2269:has(> [data-wf--utility-justify--variant="evenly"]) > .grid {
2270  align-content: space-evenly;
2271}
2272
2273:has(> [data-wf--utility-justify--variant="stretch"]),
2274:has(> [data-wf--utility-justify--variant="stretch"]) > .grid {
2275  align-content: stretch;
2276}
2277</style></div><div class="hide w-embed"><style>
2278
2279</style></div><div class="hide w-embed"><style>
2280/* ================================================
2281   UTILITY / MAX WIDTH
2282   ===========
2282===================================== */
2283
2284[data-wf--utility-max-width--variant] {
2285  display: none;
2286}
2287
2288:has(> [data-wf--utility-max-width--variant="full"]) {
2289  max-width: var(--_max-widths---full);
2290}
2291
2292:has(> [data-wf--utility-max-width--variant="xxsmall"]) {
2293  max-width: var(--_max-widths---xxsmall);
2294}
2295
2296:has(> [data-wf--utility-max-width--variant="xsmall"]) {
2297  max-width: var(--_max-widths---xsmall);
2298}
2299
2300:has(> [data-wf--utility-max-width--variant="small"]) {
2301  max-width: var(--_max-widths---small);
2302}
2303
2304:has(> [data-wf--utility-max-width--variant="medium"]) {
2305  max-width: var(--_max-widths---medium);
2306}
2307
2308:has(> [data-wf--utility-max-width--variant="large"]) {
2309  max-width: var(--_max-widths---large);
2310}
2311
2312:has(> [data-wf--utility-max-width--variant="xlarge"]) {
2313  max-width: var(--_max-widths---xlarge);
2314}
2315
2316:has(> [data-wf--utility-max-width--variant="xxlarge"]) {
2317  max-width: var(--_max-widths---xxlarge);
2318}
2319</style></div><div class="hide w-embed"><style>
2320/* ================================================
2321   UTILITY / OPACITY
2322   ================================================ */
2323
2324/* Utility / Opacity */
2325[data-wf--utility-opacity--variant] {
2326  display: none;
2327}
2328
2329:has(> [data-wf--utility-opacity--variant="90"]) {
2330  opacity: 0.9;
2331}
2332:has(> [data-wf--utility-opacity--variant="80"]) {
2333  opacity: 0.8;
2334}
2335:has(> [data-wf--utility-opacity--variant="70"]) {
2336  opacity: 0.7;
2337}
2338:has(> [data-wf--utility-opacity--variant="60"]) {
2339  opacity: 0.6;
2340}
2341:has(> [data-wf--utility-opacity--variant="50"]) {
2342  opacity: 0.5;
2343}
2344:has(> [data-wf--utility-opacity--variant="40"]) {
2345  opacity: 0.4;
2346}
2347:has(> [data-wf--utility-opacity--variant="30"]) {
2348  opacity: 0.3;
2349}
2350:has(> [data-wf--utility-opacity--variant="20"]) {
2351  opacity: 0.2;
2352}
2353:has(> [data-wf--utility-opacity--variant="10"]) {
2354  opacity: 0.1;
2355}
2356</style></div><div class="hide w-embed"><style>
2357[data-wf--utility-order-mobile--variant] {
2358  display: none;
2359}
2360@media (max-width: 767px) {
2361  :has(> [data-wf--utility-order-mobile--variant="1"]),
2362  :has(> * > [data-wf--utility-order-mobile--variant="1"]) {
2363    order: 1 !important;
2364  }
2365  :has(> [data-wf--utility-order-mobile--variant="2"]),
2366  :has(> * > [data-wf--utility-order-mobile--variant="2"]) {
2367    order: 2 !important;
2368  }
2369  :has(> [data-wf--utility-order-mobile--variant="3"]),
2370  :has(> * > [data-wf--utility-order-mobile--variant="3"]) {
2371    order: 3 !important;
2372  }
2373  :has(> [data-wf--utility-order-mobile--variant="4"]),
2374  :has(> * > [data-wf--utility-order-mobile--variant="4"]) {
2375    order: 4 !important;
2376  }
2377}
2378</style></div><div class="hide w-embed"><style>
2379/* ================================================
2380   UTILITY / TEXT ALIGN
2381   ================================================ */
2382
2383[data-wf--utility-text-align--variant] {
2384  display: none;
2385}
2386
2387:has(> [data-wf--utility-text-align--variant="left"]),
2388:has(> [data-wf--utility-text-align--variant="left"]) h1,
2389:has(> [data-wf--utility-text-align--variant="left"]) h2,
2390:has(> [data-wf--utility-text-align--variant="left"]) h3,
2391:has(> [data-wf--utility-text-align--variant="left"]) h4,
2392:has(> [data-wf--utility-text-align--variant="left"]) h5,
2393:has(> [data-wf--utility-text-align--variant="left"]) h6,
2394:has(> [data-wf--utility-text-align--variant="left"]) p {
2395  text-align: left;
2396}
2397
2398:has(> [data-wf--utility-text-align--variant="center"]),
2399:has(> [data-wf--utility-text-align--variant="center"]) h1,
2400:has(> [data-wf--utility-text-align--variant="center"]) h2,
2401:has(> [data-wf--utility-text-align--variant="center"]) h3,
2402:has(> [data-wf--utility-text-align--variant="center"]) h4,
2403:has(> [data-wf--utility-text-align--variant="center"]) h5,
2404:has(> [data-wf--utility-text-align--variant="center"]) h6,
2405:has(> [data-wf--utility-text-align--variant="center"]) p {
2406  text-align: center;
2407}
2408
2409:has(> [data-wf--utility-text-align--variant="right"]),
2410:has(> [data-wf--utility-text-align--variant="right"]) h1,
2411:has(> [data-wf--utility-text-align--variant="right"]) h2,
2412:has(> [data-wf--utility-text-align--variant="right"]) h3,
2413:has(> [data-wf--utility-text-align--variant="right"]) h4,
2414:has(> [data-wf--utility-text-align--variant="right"]) h5,
2415:has(> [data-wf--utility-text-align--variant="right"]) h6,
2416:has(> [data-wf--utility-text-align--variant="right"]) p {
2417  text-align: right;
2418}
2419
2420/* ================================================
2421   UTILITY / TEXT ALIGN (MOBILE)
2422   Overrides text alignment at 767px and below.
2423   Place as a direct child of the component wrapper.
2424   ================================================ */
2425
2426[data-wf--utility-text-align-mobile--variant] {
2427  display: none;
2428}
2429
2430@media (max-width: 767px) {
2431  :has(> [data-wf--utility-text-align-mobile--variant="left"]),
2432  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h1,
2433  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h2,
2434  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h3,
2435  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h4,
2436  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h5,
2437  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h6,
2438  :has(> [data-wf--utility-text-align-mobile--variant="left"]) p {
2439    text-align: left;
2440  }
2441
2442  :has(> [data-wf--utility-text-align-mobile--variant="center"]),
2443  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h1,
2444  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h2,
2445  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h3,
2446  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h4,
2447  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h5,
2448  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h6,
2449  :has(> [data-wf--utility-text-align-mobile--variant="center"]) p {
2450    text-align: center;
2451  }
2452
2453  :has(> [data-wf--utility-text-align-mobile--variant="right"]),
2454  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h1,
2455  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h2,
2456  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h3,
2457  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h4,
2458  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h5,
2459  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h6,
2460  :has(> [data-wf--utility-text-align-mobile--variant="right"]) p {
2461    text-align: right;
2462  }
2463}
2464</style></div><div class="hide w-embed"><style>
2465/* ================================================
2466   UTILITY / TEXT COLOR
2467   ================================================ */
2468
2469[data-wf--utility-text-color--variant] {
2470  display: none;
2471}
2472
2473:has(> [data-wf--utility-text-color--variant="scheme"]) h1,
2474:has(> [data-wf--utility-text-color--variant="scheme"]) h2,
2475:has(> [data-wf--utility-text-color--variant="scheme"]) h3,
2476:has(> [data-wf--utility-text-color--variant="scheme"]) h4,
2477:has(> [data-wf--utility-text-color--variant="scheme"]) h5,
2478:has(> [data-wf--utility-text-color--variant="scheme"]) h6 {
2479  color: var(--scheme-heading);
2480}
2481
2482:has(> [data-wf--utility-text-color--variant="scheme"]) p,
2483:has(> [data-wf--utility-text-color--variant="scheme"]) li,
2484:has(> [data-wf--utility-text-color--variant="scheme"]) span,
2485:has(> [data-wf--utility-text-color--variant="scheme"]) label {
2486  color: var(--scheme-paragraph);
2487}
2488
2489:has(> [data-wf--utility-text-color--variant="inverse"]),
2490:has(> [data-wf--utility-text-color--variant="inverse"]) h1,
2491:has(> [data-wf--utility-text-color--variant="inverse"]) h2,
2492:has(> [data-wf--utility-text-color--variant="inverse"]) h3,
2493:has(> [data-wf--utility-text-color--variant="inverse"]) h4,
2494:has(> [data-wf--utility-text-color--variant="inverse"]) h5,
2495:has(> [data-wf--utility-text-color--variant="inverse"]) h6,
2496:has(> [data-wf--utility-text-color--variant="inverse"]) p {
2497  color: var(--_semantic-tokens---text--text-inverse);
2498}
2499
2500:has(> [data-wf--utility-text-color--variant="primary"]),
2501:has(> [data-wf--utility-text-color--variant="primary"]) h1,
2502:has(> [data-wf--utility-text-color--variant="primary"]) h2,
2503:has(> [data-wf--utility-text-color--variant="primary"]) h3,
2504:has(> [data-wf--utility-text-color--variant="primary"]) h4,
2505:has(> [data-wf--utility-text-color--variant="primary"]) h5,
2506:has(> [data-wf--utility-text-color--variant="primary"]) h6,
2507:has(> [data-wf--utility-text-color--variant="primary"]) p {
2508  color: var(--_semantic-tokens---text--text-primary);
2509}
2510
2511:has(> [data-wf--utility-text-color--variant="secondary"]),
2512:has(> [data-wf--utility-text-color--variant="secondary"]) h1,
2513:has(> [data-wf--utility-text-color--variant="secondary"]) h2,
2514:has(> [data-wf--utility-text-color--variant="secondary"]) h3,
2515:has(> [data-wf--utility-text-color--variant="secondary"]) h4,
2516:has(> [data-wf--utility-text-color--variant="secondary"]) h5,
2517:has(> [data-wf--utility-text-color--variant="secondary"]) h6,
2518:has(> [data-wf--utility-text-color--variant="secondary"]) p {
2519  color: var(--_semantic-tokens---text--text-secondary);
2520}
2521
2522:has(> [data-wf--utility-text-color--variant="tertiary"]),
2523:has(> [data-wf--utility-text-color--variant="tertiary"]) h1,
2524:has(> [data-wf--utility-text-color--variant="tertiary"]) h2,
2525:has(> [data-wf--utility-text-color--variant="tertiary"]) h3,
2526:has(> [data-wf--utility-text-color--variant="tertiary"]) h4,
2527:has(> [data-wf--utility-text-color--variant="tertiary"]) h5,
2528:has(> [data-wf--utility-text-color--variant="tertiary"]) h6,
2529:has(> [data-wf--utility-text-color--variant="tertiary"]) p {
2530  color: var(--_semantic-tokens---text--text-tertiary);
2531}
2532
2533:has(> [data-wf--utility-text-color--variant="brand"]),
2534:has(> [data-wf--utility-text-color--variant="brand"]) h1,
2535:has(> [data-wf--utility-text-color--variant="brand"]) h2,
2536:has(> [data-wf--utility-text-color--variant="brand"]) h3,
2537:has(> [data-wf--utility-text-color--variant="brand"]) h4,
2538:has(> [data-wf--utility-text-color--variant="brand"]) h5,
2539:has(> [data-wf--utility-text-color--variant="brand"]) h6,
2540:has(> [data-wf--utility-text-color--variant="brand"]) p {
2541  color: var(--_semantic-tokens---text--text-brand);
2542}
2543</style></div><div class="hide w-embed"><style>
2544/* ================================================
2545   UTILITY / TEXT SIZE
2546   ================================================ */
2547
2548[data-wf--utility-text-size--variant] {
2549  display: none;
2550}
2551
2552:has(> [data-wf--utility-text-size--variant="display"]),
2553:has(> [data-wf--utility-text-size--variant="display"]) h1,
2554:has(> [data-wf--utility-text-size--variant="display"]) h2,
2555:has(> [data-wf--utility-text-size--variant="display"]) h3,
2556:has(> [data-wf--utility-text-size--variant="display"]) h4,
2557:has(> [data-wf--utility-text-size--variant="display"]) h5,
2558:has(> [data-wf--utility-text-size--variant="display"]) h6,
2559:has(> [data-wf--utility-text-size--variant="display"]) p {
2560  font-size: var(--_typography---heading-sizes--display);
2561  line-height: var(--_typography---line-height--display);
2562  letter-spacing: var(--_typography---letter-spacing--display);
2563}
2564
2565:has(> [data-wf--utility-text-size--variant="h1"]),
2566:has(> [data-wf--utility-text-size--variant="h1"]) h1,
2567:has(> [data-wf--utility-text-size--variant="h1"]) h2,
2568:has(> [data-wf--utility-text-size--variant="h1"]) h3,
2569:has(> [data-wf--utility-text-size--variant="h1"]) h4,
2570:has(> [data-wf--utility-text-size--variant="h1"]) h5,
2571:has(> [data-wf--utility-text-size--variant="h1"]) h6,
2572:has(> [data-wf--utility-text-size--variant="h1"]) p {
2573  font-size: var(--_typography---heading-sizes--h1);
2574  line-height: var(--_typography---line-height--h1);
2575  letter-spacing: var(--_typography---letter-spacing--h1);
2576}
2577
2578:has(> [data-wf--utility-text-size--variant="h2"]),
2579:has(> [data-wf--utility-text-size--variant="h2"]) h1,
2580:has(> [data-wf--utility-text-size--variant="h2"]) h2,
2581:has(> [data-wf--utility-text-size--variant="h2"]) h3,
2582:has(> [data-wf--utility-text-size--variant="h2"]) h4,
2583:has(> [data-wf--utility-text-size--variant="h2"]) h5,
2584:has(> [data-wf--utility-text-size--variant="h2"]) h6,
2585:has(> [data-wf--utility-text-size--variant="h2"]) p {
2586  font-size: var(--_typography---heading-sizes--h2);
2587  line-height: var(--_typography---line-height--h2);
2588  letter-spacing: var(--_typography---letter-spacing--h2);
2589}
2590
2591:has(> [data-wf--utility-text-size--variant="h3"]),
2592:has(> [data-wf--utility-text-size--variant="h3"]) h1,
2593:has(> [data-wf--utility-text-size--variant="h3"]) h2,
2594:has(> [data-wf--utility-text-size--variant="h3"]) h3,
2595:has(> [data-wf--utility-text-size--variant="h3"]) h4,
2596:has(> [data-wf--utility-text-size--variant="h3"]) h5,
2597:has(> [data-wf--utility-text-size--variant="h3"]) h6,
2598:has(> [data-wf--utility-text-size--variant="h3"]) p {
2599  font-size: var(--_typography---heading-sizes--h3);
2600  line-height: var(--_typography---line-height--h3);
2601  letter-spacing: var(--_typography---letter-spacing--h3);
2602}
2603
2604:has(> [data-wf--utility-text-size--variant="h4"]),
2605:has(> [data-wf--utility-text-size--variant="h4"]) h1,
2606:has(> [data-wf--utility-text-size--variant="h4"]) h2,
2607:has(> [data-wf--utility-text-size--variant="h4"]) h3,
2608:has(> [data-wf--utility-text-size--variant="h4"]) h4,
2609:has(> [data-wf--utility-text-size--variant="h4"]) h5,
2610:has(> [data-wf--utility-text-size--variant="h4"]) h6,
2611:has(> [data-wf--utility-text-size--variant="h4"]) p {
2612  font-size: var(--_typography---heading-sizes--h4);
2613  line-height: var(--_typography---line-height--h4);
2614  letter-spacing: var(--_typography---letter-spacing--h4);
2615}
2616
2617:has(> [data-wf--utility-text-size--variant="h5"]),
2618:has(> [data-wf--utility-text-size--variant="h5"]) h1,
2619:has(> [data-wf--utility-text-size--variant="h5"]) h2,
2620:has(> [data-wf--utility-text-size--variant="h5"]) h3,
2621:has(> [data-wf--utility-text-size--variant="h5"]) h4,
2622:has(>
2622 [data-wf--utility-text-size--variant="h5"]) h5,
2623:has(> [data-wf--utility-text-size--variant="h5"]) h6,
2624:has(> [data-wf--utility-text-size--variant="h5"]) p {
2625  font-size: var(--_typography---heading-sizes--h5);
2626  line-height: var(--_typography---line-height--h5);
2627  letter-spacing: var(--_typography---letter-spacing--h5);
2628}
2629
2630:has(> [data-wf--utility-text-size--variant="h6"]),
2631:has(> [data-wf--utility-text-size--variant="h6"]) h1,
2632:has(> [data-wf--utility-text-size--variant="h6"]) h2,
2633:has(> [data-wf--utility-text-size--variant="h6"]) h3,
2634:has(> [data-wf--utility-text-size--variant="h6"]) h4,
2635:has(> [data-wf--utility-text-size--variant="h6"]) h5,
2636:has(> [data-wf--utility-text-size--variant="h6"]) h6,
2637:has(> [data-wf--utility-text-size--variant="h6"]) p {
2638  font-size: var(--_typography---heading-sizes--h6);
2639  line-height: var(--_typography---line-height--h6);
2640  letter-spacing: var(--_typography---letter-spacing--h6);
2641}
2642
2643:has(> [data-wf--utility-text-size--variant="text-large"]),
2644:has(> [data-wf--utility-text-size--variant="text-large"]) h1,
2645:has(> [data-wf--utility-text-size--variant="text-large"]) h2,
2646:has(> [data-wf--utility-text-size--variant="text-large"]) h3,
2647:has(> [data-wf--utility-text-size--variant="text-large"]) h4,
2648:has(> [data-wf--utility-text-size--variant="text-large"]) h5,
2649:has(> [data-wf--utility-text-size--variant="text-large"]) h6,
2650:has(> [data-wf--utility-text-size--variant="text-large"]) p {
2651  font-size: var(--_typography---body-sizes--text-large);
2652  line-height: var(--_typography---line-height--paragraph);
2653  letter-spacing: var(--_typography---letter-spacing--paragraph);
2654}
2655
2656:has(> [data-wf--utility-text-size--variant="text-medium"]),
2657:has(> [data-wf--utility-text-size--variant="text-medium"]) h1,
2658:has(> [data-wf--utility-text-size--variant="text-medium"]) h2,
2659:has(> [data-wf--utility-text-size--variant="text-medium"]) h3,
2660:has(> [data-wf--utility-text-size--variant="text-medium"]) h4,
2661:has(> [data-wf--utility-text-size--variant="text-medium"]) h5,
2662:has(> [data-wf--utility-text-size--variant="text-medium"]) h6,
2663:has(> [data-wf--utility-text-size--variant="text-medium"]) p {
2664  font-size: var(--_typography---body-sizes--text-medium);
2665  line-height: var(--_typography---line-height--paragraph);
2666  letter-spacing: var(--_typography---letter-spacing--paragraph);
2667}
2668
2669:has(> [data-wf--utility-text-size--variant="text-regular"]),
2670:has(> [data-wf--utility-text-size--variant="text-regular"]) h1,
2671:has(> [data-wf--utility-text-size--variant="text-regular"]) h2,
2672:has(> [data-wf--utility-text-size--variant="text-regular"]) h3,
2673:has(> [data-wf--utility-text-size--variant="text-regular"]) h4,
2674:has(> [data-wf--utility-text-size--variant="text-regular"]) h5,
2675:has(> [data-wf--utility-text-size--variant="text-regular"]) h6,
2676:has(> [data-wf--utility-text-size--variant="text-regular"]) p {
2677  font-size: var(--_typography---body-sizes--text-regular);
2678  line-height: var(--_typography---line-height--paragraph);
2679  letter-spacing: var(--_typography---letter-spacing--paragraph);
2680}
2681
2682:has(> [data-wf--utility-text-size--variant="text-small"]),
2683:has(> [data-wf--utility-text-size--variant="text-small"]) h1,
2684:has(> [data-wf--utility-text-size--variant="text-small"]) h2,
2685:has(> [data-wf--utility-text-size--variant="text-small"]) h3,
2686:has(> [data-wf--utility-text-size--variant="text-small"]) h4,
2687:has(> [data-wf--utility-text-size--variant="text-small"]) h5,
2688:has(> [data-wf--utility-text-size--variant="text-small"]) h6,
2689:has(> [data-wf--utility-text-size--variant="text-small"]) p {
2690  font-size: var(--_typography---body-sizes--text-small);
2691  line-height: var(--_typography---line-height--paragraph);
2692  letter-spacing: var(--_typography---letter-spacing--paragraph);
2693}
2694
2695:has(> [data-wf--utility-text-size--variant="text-tiny"]),
2696:has(> [data-wf--utility-text-size--variant="text-tiny"]) h1,
2697:has(> [data-wf--utility-text-size--variant="text-tiny"]) h2,
2698:has(> [data-wf--utility-text-size--variant="text-tiny"]) h3,
2699:has(> [data-wf--utility-text-size--variant="text-tiny"]) h4,
2700:has(> [data-wf--utility-text-size--variant="text-tiny"]) h5,
2701:has(> [data-wf--utility-text-size--variant="text-tiny"]) h6,
2702:has(> [data-wf--utility-text-size--variant="text-tiny"]) p {
2703  font-size: var(--_typography---body-sizes--text-tiny);
2704  line-height: var(--_typography---line-height--paragraph);
2705  letter-spacing: var(--_typography---letter-spacing--paragraph);
2706}
2707
2708/* ================================================
2709   UTILITY / TEXT SIZE (MOBILE)
2710   Overrides font size, line height, and letter
2711   spacing at 767px and below. Place as a direct
2712   child of the component wrapper.
2713   ================================================ */
2714
2715[data-wf--utility-text-size-mobile--variant] {
2716  display: none;
2717}
2718
2719@media (max-width: 767px) {
2720  /* --- Display --- */
2721  :has(> [data-wf--utility-text-size-mobile--variant="display"]),
2722  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h1,
2723  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h2,
2724  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h3,
2725  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h4,
2726  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h5,
2727  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h6,
2728  :has(> [data-wf--utility-text-size-mobile--variant="display"]) p {
2729    font-size: var(--_typography---heading-sizes--display);
2730    line-height: var(--_typography---line-height--display);
2731    letter-spacing: var(--_typography---letter-spacing--display);
2732  }
2733
2734  /* --- H1 --- */
2735  :has(> [data-wf--utility-text-size-mobile--variant="h1"]),
2736  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h1,
2737  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h2,
2738  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h3,
2739  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h4,
2740  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h5,
2741  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h6,
2742  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) p {
2743    font-size: var(--_typography---heading-sizes--h1);
2744    line-height: var(--_typography---line-height--h1);
2745    letter-spacing: var(--_typography---letter-spacing--h1);
2746  }
2747
2748  /* --- H2 --- */
2749  :has(> [data-wf--utility-text-size-mobile--variant="h2"]),
2750  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h1,
2751  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h2,
2752  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h3,
2753  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h4,
2754  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h5,
2755  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h6,
2756  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) p {
2757    font-size: var(--_typography---heading-sizes--h2);
2758    line-height: var(--_typography---line-height--h2);
2759    letter-spacing: var(--_typography---letter-spacing--h2);
2760  }
2761
2762  /* --- H3 --- */
2763  :has(> [data-wf--utility-text-size-mobile--variant="h3"]),
2764  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h1,
2765  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h2,
2766  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h3,
2767  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h4,
2768  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h5,
2769  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h6,
2770  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) p {
2771    font-size: var(--_typography---heading-sizes--h3);
2772    line-height: var(--_typography---line-height--h3);
2773    letter-spacing: var(--_typography---letter-spacing--h3);
2774  }
2775
2776  /* --- H4 --- */
2777  :has(> [data-wf--utility-text-size-mobile--variant="h4"]),
2778  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h1,
2779  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h2,
2780  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h3,
2781  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h4,
2782  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h5,
2783  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h6,
2784  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) p {
2785    font-size: var(--_typography---heading-sizes--h4);
2786    line-height: var(--_typography---line-height--h4);
2787    letter-spacing: var(--_typography---letter-spacing--h4);
2788  }
2789
2790  /* --- H5 --- */
2791  :has(> [data-wf--utility-text-size-mobile--variant="h5"]),
2792  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h1,
2793  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h2,
2794  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h3,
2795  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h4,
2796  :has(>
2796 [data-wf--utility-text-size-mobile--variant="h5"]) h5,
2797  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h6,
2798  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) p {
2799    font-size: var(--_typography---heading-sizes--h5);
2800    line-height: var(--_typography---line-height--h5);
2801    letter-spacing: var(--_typography---letter-spacing--h5);
2802  }
2803
2804  /* --- H6 --- */
2805  :has(> [data-wf--utility-text-size-mobile--variant="h6"]),
2806  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h1,
2807  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h2,
2808  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h3,
2809  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h4,
2810  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h5,
2811  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h6,
2812  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) p {
2813    font-size: var(--_typography---heading-sizes--h6);
2814    line-height: var(--_typography---line-height--h6);
2815    letter-spacing: var(--_typography---letter-spacing--h6);
2816  }
2817
2818  /* --- Large --- */
2819  :has(> [data-wf--utility-text-size-mobile--variant="large"]),
2820  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h1,
2821  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h2,
2822  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h3,
2823  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h4,
2824  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h5,
2825  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h6,
2826  :has(> [data-wf--utility-text-size-mobile--variant="large"]) p {
2827    font-size: var(--_typography---body-sizes--text-large);
2828    line-height: var(--_typography---line-height--paragraph);
2829    letter-spacing: var(--_typography---letter-spacing--paragraph);
2830  }
2831
2832  /* --- Medium --- */
2833  :has(> [data-wf--utility-text-size-mobile--variant="medium"]),
2834  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h1,
2835  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h2,
2836  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h3,
2837  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h4,
2838  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h5,
2839  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h6,
2840  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) p {
2841    font-size: var(--_typography---body-sizes--text-medium);
2842    line-height: var(--_typography---line-height--paragraph);
2843    letter-spacing: var(--_typography---letter-spacing--paragraph);
2844  }
2845
2846  /* --- Small --- */
2847  :has(> [data-wf--utility-text-size-mobile--variant="small"]),
2848  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h1,
2849  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h2,
2850  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h3,
2851  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h4,
2852  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h5,
2853  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h6,
2854  :has(> [data-wf--utility-text-size-mobile--variant="small"]) p {
2855    font-size: var(--_typography---body-sizes--text-small);
2856    line-height: var(--_typography---line-height--paragraph);
2857    letter-spacing: var(--_typography---letter-spacing--paragraph);
2858  }
2859
2860  /* --- Tiny --- */
2861  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]),
2862  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h1,
2863  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h2,
2864  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h3,
2865  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h4,
2866  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h5,
2867  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h6,
2868  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) p {
2869    font-size: var(--_typography---body-sizes--text-tiny);
2870    line-height: var(--_typography---line-height--paragraph);
2871    letter-spacing: var(--_typography---letter-spacing--paragraph);
2872  }
2873}
2874</style></div><div class="hide w-embed"><style>
2875/* ================================================
2876   UTILITY / TEXT TRANSFORM
2877   ================================================ */
2878[data-wf--utility-text-transform--variant] {
2879  display: none;
2880}
2881:has(> [data-wf--utility-text-transform--variant="uppercase"]),
2882:has(> [data-wf--utility-text-transform--variant="uppercase"]) h1,
2883:has(> [data-wf--utility-text-transform--variant="uppercase"]) h2,
2884:has(> [data-wf--utility-text-transform--variant="uppercase"]) h3,
2885:has(> [data-wf--utility-text-transform--variant="uppercase"]) h4,
2886:has(> [data-wf--utility-text-transform--variant="uppercase"]) h5,
2887:has(> [data-wf--utility-text-transform--variant="uppercase"]) h6,
2888:has(> [data-wf--utility-text-transform--variant="uppercase"]) p {
2889  text-transform: uppercase;
2890}
2891:has(> [data-wf--utility-text-transform--variant="lowercase"]),
2892:has(> [data-wf--utility-text-transform--variant="lowercase"]) h1,
2893:has(> [data-wf--utility-text-transform--variant="lowercase"]) h2,
2894:has(> [data-wf--utility-text-transform--variant="lowercase"]) h3,
2895:has(> [data-wf--utility-text-transform--variant="lowercase"]) h4,
2896:has(> [data-wf--utility-text-transform--variant="lowercase"]) h5,
2897:has(> [data-wf--utility-text-transform--variant="lowercase"]) h6,
2898:has(> [data-wf--utility-text-transform--variant="lowercase"]) p {
2899  text-transform: lowercase;
2900}
2901:has(> [data-wf--utility-text-transform--variant="capitalize"]),
2902:has(> [data-wf--utility-text-transform--variant="capitalize"]) h1,
2903:has(> [data-wf--utility-text-transform--variant="capitalize"]) h2,
2904:has(> [data-wf--utility-text-transform--variant="capitalize"]) h3,
2905:has(> [data-wf--utility-text-transform--variant="capitalize"]) h4,
2906:has(> [data-wf--utility-text-transform--variant="capitalize"]) h5,
2907:has(> [data-wf--utility-text-transform--variant="capitalize"]) h6,
2908:has(> [data-wf--utility-text-transform--variant="capitalize"]) p {
2909  text-transform: capitalize;
2910}
2911:has(> [data-wf--utility-text-transform--variant="none"]),
2912:has(> [data-wf--utility-text-transform--variant="none"]) h1,
2913:has(> [data-wf--utility-text-transform--variant="none"]) h2,
2914:has(> [data-wf--utility-text-transform--variant="none"]) h3,
2915:has(> [data-wf--utility-text-transform--variant="none"]) h4,
2916:has(> [data-wf--utility-text-transform--variant="none"]) h5,
2917:has(> [data-wf--utility-text-transform--variant="none"]) h6,
2918:has(> [data-wf--utility-text-transform--variant="none"]) p {
2919  text-transform: none;
2920}
2921</style></div><div class="hide w-embed"><style>
2922/* ================================================
2923   UTILITY / TEXT WEIGHT
2924   ================================================ */
2925
2926[data-wf--utility-text-weight--variant] {
2927  display: none;
2928}
2929
2930:has(> [data-wf--utility-text-weight--variant="light"]),
2931:has(> [data-wf--utility-text-weight--variant="light"]) h1,
2932:has(> [data-wf--utility-text-weight--variant="light"]) h2,
2933:has(> [data-wf--utility-text-weight--variant="light"]) h3,
2934:has(> [data-wf--utility-text-weight--variant="light"]) h4,
2935:has(> [data-wf--utility-text-weight--variant="light"]) h5,
2936:has(> [data-wf--utility-text-weight--variant="light"]) h6,
2937:has(> [data-wf--utility-text-weight--variant="light"]) p {
2938  font-weight: var(--_typography---font-weights--light);
2939}
2940
2941:has(> [data-wf--utility-text-weight--variant="regular"]),
2942:has(> [data-wf--utility-text-weight--variant="regular"]) h1,
2943:has(> [data-wf--utility-text-weight--variant="regular"]) h2,
2944:has(> [data-wf--utility-text-weight--variant="regular"]) h3,
2945:has(> [data-wf--utility-text-weight--variant="regular"]) h4,
2946:has(> [data-wf--utility-text-weight--variant="regular"]) h5,
2947:has(> [data-wf--utility-text-weight--variant="regular"]) h6,
2948:has(> [data-wf--utility-text-weight--variant="regular"]) p {
2949  font-weight: var(--_typography---font-weights--regular);
2950}
2951
2952:has(> [data-wf--utility-text-weight--variant="medium"]),
2953:has(> [data-wf--utility-text-weight--variant="medium"]) h1,
2954:has(> [data-wf--utility-text-weight--variant="medium"]) h2,
2955:has(> [data-wf--utility-text-weight--variant="medium"]) h3,
2956:has(> [data-wf--utility-text-weight--variant="medium"]) h4,
2957:has(> [data-wf--utility-text-weight--variant="medium"]) h5,
2958:has(> [data-wf--utility-text-weight--variant="medium"]) h6,
2959:has(> [data-wf--utility-text-weight--variant="medium"]) p {
2960  font-weight: var(--_typography---font-weights--medium);
2961}
2962
2963:has(> [data-wf--utility-text-weight--variant="semibold"]),
2964:has(> [data-wf--utility-text-weight--variant="semibold"]) h1,
2965:has(> [data-wf--utility-text-weight--variant="semibold"]) h2,
2966:has(> [data-wf--utility-text-weight--variant="semibold"]) h3,
2967:has(> [data-wf--utility-text-weight--variant="semibold"]) h4,
2968:has(> [data-wf--utility-text-weight--variant="semibold"]) h5,
2969:has(> [data-wf--utility-text-weight--variant="semibold"]) h6,
2970:has(> [data-wf--utility-text-weight--variant="semibold"]) p {
2971  font-weight: var(--_typography---font-weights--semibold);
2972}
2973
2974:has(> [data-wf--utility-text-weight--variant="bold"]),
2975:has(> [data-wf--utility-text-weight--variant="bold"]) h1,
2976:has(> [data-wf--utility-text-weight--variant="bold"]) h2,
2977:has(> [data-wf--utility-text-weight--variant="bold"]) h3,
2978:has(> [data-wf--utility-text-weight--variant="bold"]) h4,
2979:has(> [data-wf--utility-text-weight--variant="bold"]) h5,
2980:has(> [data-wf--utility-text-weight--variant="bold"]) h6,
2981:has(> [data-wf--utility-text-weight--variant="bold"]) p {
2982  font-weight: var(--_typography---font-weights--bold);
2983}
2984</style></div><div class="hide w-embed"><style>
2985/* ================================================
2986   UTILITY / VISIBILITY
2987   Controls whether the parent element is visible
2988   at desktop or mobile breakpoints. Drop this
2989   component inside any element.
2990
2991   Variants:
2992   - Base (always visible)
2993   - Hide Tablet (hidden at 991px and below)
2994   - Hide Mobile (hidden at 767px and below)
2995   - Show Tablet (hidden on desktop, visible at 991px and below)
2996   - Show Mobile (hidden on desktop, visible at 767px and below)
2997   ================================================ */
2998
2999[data-wf--utility-visibility--variant] {
3000  display: none;
3001}
3002
3003/* Hide Tablet: visible on desktop, hidden at 991px and below */
3004@media (max-width: 991px) {
3005  :has(> [data-wf--utility-visibility--variant="hide-tablet"]) {
3006    display: none !important;
3007  }
3008}
3009
3010/* Hide Mobile: visible on desktop, hidden at 767px and below */
3011@media (max-width: 767px) {
3012  :has(> [data-wf--utility-visibility--variant="hide-mobile"]) {
3013    display: none !important;
3014  }
3015}
3016
3017/* Show Tablet: hidden on desktop, visible at 991px and below */
3018:has(> [data-wf--utility-visibility--variant="show-tablet"]) {
3019  display: none !important;
3020}
3021
3022@media (max-width: 991px) {
3023  :has(> [data-wf--utility-visibility--variant="show-tablet"]) {
3024    display: revert !important;
3025  }
3026}
3027
3028/* Show Mobile: hidden on desktop, visible at 767px and below */
3029:has(> [data-wf--utility-visibility--variant="show-mobile"]) {
3030  display: none !important;
3031}
3032
3033@media (max-width: 767px) {
3034  :has(> [data-wf--utility-visibility--variant="show-mobile"]) {
3035    display: revert !important;
3036  }
3037}
3038</style></div><div class="hide w-embed"><style>
3039/* ================================================
3040   UTILITY / WIDTH
3041   ================================================ */
3042[data-wf--utility-width--variant] {
3043  display: none;
3044}
3045:has(> [data-wf--utility-width--variant="10"]) {
3046  width: 10%;
3047}
3048:has(> [data-wf--utility-width--variant="20"]) {
3049  width: 20%;
3050}
3051:has(> [data-wf--utility-width--variant="30"]) {
3052  width: 30%;
3053}
3054:has(> [data-wf--utility-width--variant="40"]) {
3055  width: 40%;
3056}
3057:has(> [data-wf--utility-width--variant="50"]) {
3058  width: 50%;
3059}
3060:has(> [data-wf--utility-width--variant="60"]) {
3061  width: 60%;
3062}
3063:has(> [data-wf--utility-width--variant="70"]) {
3064  width: 70%;
3065}
3066:has(> [data-wf--utility-width--variant="80"]) {
3067  width: 80%;
3068}
3069:has(> [data-wf--utility-width--variant="90"]) {
3070  width: 90%;
3071}
3072:has(> [data-wf--utility-width--variant="100"]) {
3073  width: 100%;
3074}
3075</style></div><div class="hide w-embed"><style>
3076/* ================================================
3077   UTILITY / Z-INDEX
3078   ================================================ */
3079
3080[data-wf--utility-z-index--variant] {
3081  display: none;
3082}
3083
3084:has(> [data-wf--utility-z-index--variant="-1"]) {
3085  z-index: -1;
3086}
3087:has(> [data-wf--utility-z-index--variant="0"]) {
3088  z-index: 0;
3089}
3090:has(> [data-wf--utility-z-index--variant="1"]) {
3091  z-index: 1;
3092}
3093:has(> [data-wf--utility-z-index--variant="2"]) {
3094  z-index: 2;
3095}
3096</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
309605 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
309605 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">
3096<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">
3096<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">
3096<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">
3096<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">
3096Book 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
3096s 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">
3096<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">
3096Start 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>
3096Automatic 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>
3096<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>
3096<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">
3096<script>
3097window.Webflow ||= [];
3098window.Webflow.push(function () {
3099  var items = document.querySelectorAll('.faqs_item');
3100  if (!items.length) return;
3101
3102  items.forEach(function (item) {
3103    var card = item.querySelector('.faq-item_card');
3104    var answer = item.querySelector('.faq-item_answer');
3105    var icon = item.querySelector('.faq-item_icon');
3106    if (!card || !answer) return;
3107
3108    answer.style.overflow = 'hidden';
3109    answer.style.height = '0px';
3110    answer.style.transition = 'height 0.35s ease';
3111    card.style.cursor = 'pointer';
3112
3113    if (icon) {
3114      icon.style.transition = 'transform 0.35s ease';
3115      icon.style.transformOrigin = 'center';
3116    }
3117
3118    var isOpen = false;
3119
3120    card.addEventListener('click', function () {
3121      if (!isOpen) {
3122        answer.style.height = answer.scrollHeight + 'px';
3123        if (icon) icon.style.transform = 'rotate(-45deg)';
3124        isOpen = true;
3125      } else {
3126        // If currently at 'auto', snap to a pixel value so the transition to 0 has something to animate from.
3127        answer.style.height = answer.scrollHeight + 'px';
3128        answer.offsetHeight; // force reflow
3129        answer.style.height = '0px';
3130        if (icon) icon.style.transform = 'rotate(0deg)';
3131        isOpen = false;
3132      }
3133    });
3134
3135    answer.addEventListener('transitionend', function (e) {
3136      if (e.propertyName === 'height' && isOpen) {
3137        answer.style.height = 'auto';
3138      }
3139    });
3140  });
3141});
3142</script>
3142</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">
3142<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">
3142<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>
3142Does 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
3142072 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">
3142<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">
3142© 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>
3142<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>
3142<script src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/js/webflow.schunk.f2efb3c5440a81cf.js" type="text/javascript" integrity="sha384-VK02VJvMib7ytrF5M2joPWNtDQs366FZgEQ5B+Iwnjx0WBnwQXfootyziSYxdrmS" crossorigin="anonymous"></script>
3142<script src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/js/webflow.4cc304e8.1524c9732310d729.js" type="text/javascript" integrity="sha384-rpcvZe38EeDL9DMIqNElNp61kz9Isa5DTnn8qR3+LakG299l2gtjXNncf0sec65V" crossorigin="anonymous"></script>
3142
3143
3144<script>
3145  // Get the element with id "year" and set it to the current year
3146document.getElementById('year').textContent = new Date().getFullYear();
3147</script>
3147
3148
3149<script>
3150window.Webflow.push(function () {
3151  var icon = document.querySelector('.navbar-banner_icon');
3152  var wrapper = document.querySelector('.navbar_banner-wrapper');
3153  var hero = document.querySelector('[data-wf--padding-vertical--variant="hero"]');
3154
3155  if (!icon || !wrapper) return;
3156
3157  // Banner already hidden from a previous visit — nothing to wire up
3158  if (localStorage.getItem('bannerClosed') === '1') return;
3159
3160  // Allow height to animate smoothly
3161  wrapper.style.overflow = 'hidden';
3162  wrapper.style.transition = 'height 0.4s ease';
3163
3164  // Prep the hero padding transition to sync with the banner collapse
3165  if (hero) {
3166    var currentPadding = parseFloat(window.getComputedStyle(hero).paddingTop);
3167    hero.style.paddingTop = currentPadding + 'px'; // pin computed value so transition works
3168    hero.style.transition = 'padding-top 0.4s ease';
3169  }
3170
3171  icon.addEventListener('click', function () {
3172    // Pin the current height so the browser has a concrete value to transition from
3173    wrapper.style.height = wrapper.offsetHeight + 'px';
3174
3175    // Double rAF ensures the pinned height is committed before we animate to 0
3176    requestAnimationFrame(function () {
3177      requestAnimationFrame(function () {
3178        wrapper.style.height = '0px';
3179
3180        // Decrease hero top padding by 3.25rem in sync with the banner collapsing
3181        if (hero) {
3182          var rootFontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize);
3183          hero.style.paddingTop = (currentPadding - (3.25 * rootFontSize)) + 'px';
3184        }
3185
3186        // After the animation finishes, remove from layout and save the closed state
3187        wrapper.addEventListener('transitionend', function () {
3188          wrapper.style.display = 'none';
3189        }, { once: true });
3190
3191        localStorage.setItem('bannerClosed', '1');
3192      });
3193    });
3194  });
3195});
3196</script>
3196</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.