PageSourceSearch

https://www.activestate.com/blog/the-state-of-vulnerability-management-remediation-report-2026

html activestate.com collected 2026-09-24 08:25:32 UTC 242,751 bytes, 3,260 lines download raw bytes

1<!DOCTYPE html><!-- Last Published: Tue Sep 22 2026 14:55:10 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="core-01.activestate.com" data-wf-page="6a1863e24d3836f49d617713" data-wf-site="6a0dc648b0f944cab4dc0cb1" lang="en" data-wf-collection="6a1863e24d3836f49d617702" data-wf-item-slug="the-state-of-vulnerability-management-remediation-report-2026"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>The 2026 State of Vulnerability Management &amp; Remediation | Container Security Edition | ActiveState</title><meta content="82% of DevSecOps leaders report a likely container breach in the past year. ActiveState surveyed 250 teams to find where security is breaking down — and what leading teams do differently." name="description"/><meta content="The 2026 State of Vulnerability Management &amp; Remediation | Container Security Edition | ActiveState" property="og:title"/><meta content="82% of DevSecOps leaders report a likely container breach in the past year. ActiveState surveyed 250 teams to find where security is breaking down — and what leading teams do differently." property="og:description"/><meta content="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6a19f1c2c8b195de4b35a3c1_Title-Option-2-1200x675.png" property="og:image"/><meta content="The 2026 State of Vulnerability Management &amp; Remediation | Container Security Edition | ActiveState" name="twitter:title"/><meta content="82% of DevSecOps leaders report a likely container breach in the past year. ActiveState surveyed 250 teams to find where security is breaking down — and what leading teams do differently." name="twitter:description"/><meta content="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6a19f1c2c8b195de4b35a3c1_Title-Option-2-1200x675.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": "BlogPosting",
5  "headline": "The 2026 State of Vulnerability Management &amp; Remediation | Container Security Edition",
6  "url": "/blog-posts/the-state-of-vulnerability-management-remediation-report-2026",
7  "datePublished": "2026-07-03T20:14:36.904Z",
8  "dateModified": "2026-07-03T18:39:03.196Z",
9  "author": {
10    "@type": "Person",
11    "name": "Jonny Rivera"
12  },
13  "publisher": {
14    "@type": "Organization",
15    "name": "ActiveState",
16    "logo": {
17      "@type": "ImageObject",
18      "url": "https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/6a10aeb14ec0843006d79f4e_footer-badge1.png"
19    }
20  },
21  "image": "https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6a19f1c2c8b195de4b35a3c1_Title-Option-2-1200x675.png",
22  "inLanguage": "en",
23  "about": {
24    "@type": "Thing",
25    "name": "Container Security"
26  }
27}
28</script>
28<!-- Consent Pro script -->
29<script src="https://api.consentpro.com/v2/cdn/runtime/6a0dc648b0f944cab4dc0cb1.js" type="text/javascript" finsweet="consentpro" siteid="6a0dc648b0f944cab4dc0cb1"></script>
29
30
31<!-- [Attributes by Finsweet] Social Share -->
32<script defer src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-socialshare@1/socialshare.js"></script>
32
33<!-- [Attributes by Finsweet] CMS Filter -->
34<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsfilter@1/cmsfilter.js"></script>
34
35<!-- [Attributes by Finsweet] CMS Load -->
36<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsload@1/cmsload.js"></script>
36
37
38<!-- Google Tag Manager -->
39<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
40new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
41j=d.createElement(s),dl=l!=='dataLayer'?'&l='+l:'';j.async=true;j.src=
42'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
43})(window,document,'script','dataLayer','GTM-TDZ3K7T');</script>
43
44<!-- End Google Tag Manager -->
45
46<!-- Keep this css code to improve the font quality-->
47<style>
48  * {
49  -webkit-font-smoothing: antialiased;
50  -moz-osx-font-smoothing: grayscale;
51  -o-font-smoothing: antialiased;
52  -webkit-appearance:none;
53}
54  ::selection {
55  background-color: #6E6E73;
56  color: white; /* Text color when selected */
57}
58
59/* For Firefox */
60::-moz-selection {
61  background-color: #6E6E73;
62  color: white; /* Text color when selected */
63}
64
65<!-- Start of HubSpot Embed Code -->
66<script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/5262266.js"></script>
66
67<!-- End of HubSpot Embed Code -->
68
69<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css">
70<style>
71.splide__track {
72  overflow: visible;
73}
74</style>
75
76
77<script>
78(function(l,i,m,y,g,e,o){
79l[m] = l[m] || function(){ (l[m].q = l[m].q || []).push(arguments) };
80e = i.createElement(y);
81e.async = 1;
82e.id = 'limy-analytics';
83e.src = 'https://sdk.getlimy.ai/p/limy-analytics.min.js';
84e.setAttribute(m, g);
85o = i.getElementsByTagName(y)[0];
86o.parentNode.insertBefore(e, o);
87})(window, document, 'limy', 'script', 'lmy_vCPA78Ak4M0gUfigfT4TWodvi5QzlTClMcINbuGxKuu');
88</script>
88
89
90<script type="text/javascript">
91  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])};
92  heap.load("915209274");
93</script>
93
94
95<!-- Hotjar Tracking Code for *.activestate.com -->
96<script>
97    (function(h,o,t,j,a,r){
98        h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
99        h._hjSettings={hjid:1634962,hjsv:6};
100        a=o.getElementsByTagName('head')[0];
101        r=o.createElement('script');r.async=1;
102        r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
103        a.appendChild(r);
104    })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
105</script>
105
106
107<meta name="google-site-verification" content="JkgFN3bBFJ64KOfNVJVbDc3wcd6yWxAOg2Pk9aXT58M" />
108
109<script>
110  // If the user has previously closed the banner, set a CSS variable to hide it before the page paints
111  if (localStorage.getItem('bannerClosed') === '1') {
112    document.documentElement.style.setProperty('--banner-display', 'none');
113  }
114</script>
114
115<style>
116  /* Use the CSS variable to hide the banner instantly on load — prevents flicker on return visits */
117  .navbar_banner-wrapper {
118    display: var(--banner-display, block);
119  }
120</style><!-- [Attributes by Finsweet] Table of Contents -->
121<script defer src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-toc@1/toc.js"></script>
121
122
123<style>
124.download-cta {
125  background-color: var(--primary--500);
126  border-radius: 18px;
127  padding: clamp(2.5rem, 6vw, 4rem) clamp(1.5rem, 4vw, 3rem);
128  text-align: center;
129  margin: 2rem 0;
130}
131.download-cta__heading {
132  color: var(--_color-schemes---brand--heading);
133  font-size: clamp(1.75rem, 4vw, 2.75rem);
134  line-height: 1.1;
135  font-weight: 700;
136  margin: 0 0 1.5rem;
137}
138.file-source { display: none; }
139</style></head><body><div class="page-wrapper"><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.2305 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
13905 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">
139<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">
139<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" aria-current="page" class="featured-post_card w-inline-block w--current"><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">
139<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">
139<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">
139Book 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 data-wf--global-styles--variant="none"><div class="global-styles w-embed"><style>
140i, em {
141  color: inherit !important;
142}
143  p strong,
144p b {
145  color: inherit !important;
146}
147/* Make text look crisper and more legible in all browsers */
148body {
149  -webkit-font-smoothing: antialiased;
150  -moz-osx-font-smoothing: grayscale;
151  font-smoothing: antialiased;
152  text-rendering: optimizeLegibility;
153}
154
155/* Focus state style for keyboard navigation for the focusable elements */
156*[tabindex]:focus-visible,
157  input[type="file"]:focus-visible {
158   outline: 0.125rem solid #4d65ff;
159   outline-offset: 0.125rem;
160}
161
162/* Set color style to inherit */
163.inherit-color * {
164    color: inherit;
165}
166
167/* Get rid of top margin on first element in any rich text element */
168.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
169  margin-top: 0 !important;
170}
171
172/* Get rid of bottom margin on last element in any rich text element */
173.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
174	margin-bottom: 0 !important;
175}
176
177
178/* Make sure containers never lose their center alignment */
179.container-medium,.container-small, .container-large {
180	margin-right: auto !important;
181  margin-left: auto !important;
182}
183
184/* 
185Make the following elements inherit typography styles from the parent and not have hardcoded values. 
186Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
187Uncomment this CSS to use it in the project. Leave this message for future hand-off.
188*/
189/*
190a,
191.w-input,
192.w-select,
193.w-tab-link,
194.w-nav-link,
195.w-dropdown-btn,
196.w-dropdown-toggle,
197.w-dropdown-link {
198  color: inherit;
199  text-decoration: inherit;
200  font-size: inherit;
201}
202*/
203
204/* Apply "..." after 3 lines of text */
205.text-style-3lines {
206	display: -webkit-box;
207	overflow: hidden;
208	-webkit-line-clamp: 3;
209	-webkit-box-orient: vertical;
210}
211
212  
213/* Apply "..." after 5 lines of text */
214.text-style-5lines {
215	display: -webkit-box;
216	overflow: hidden;
217	-webkit-line-clamp: 5;
218	-webkit-box-orient: vertical;
219}
220
221/* Apply "..." after 2 lines of text */
222.text-style-2lines {
223	display: -webkit-box;
224	overflow: hidden;
225	-webkit-line-clamp: 2;
226	-webkit-box-orient: vertical;
227}
228
229/* These classes are never overwritten */
230.hide {
231  display: none !important;
232}
233
234@media screen and (max-width: 991px) {
235    .hide, .hide-tablet {
236        display: none !important;
237    }
238}
239  @media screen and (max-width: 767px) {
240    .hide-mobile-landscape{
241      display: none !important;
242    }
243}
244  @media screen and (max-width: 479px) {
245    .hide-mobile{
246      display: none !important;
247    }
248}
249 
250.margin-0 {
251  margin: 0rem !important;
252}
253  
254.padding-0 {
255  padding: 0rem !important;
256}
257
258.spacing-clean {
259padding: 0rem !important;
260margin: 0rem !important;
261}
262
263.margin-top {
264  margin-right: 0rem !important;
265  margin-bottom: 0rem !important;
266  margin-left: 0rem !important;
267}
268
269.padding-top {
270  padding-right: 0rem !important;
271  padding-bottom: 0rem !important;
272  padding-left: 0rem !important;
273}
274  
275.margin-right {
276  margin-top: 0rem !important;
277  margin-bottom: 0rem !important;
278  margin-left: 0rem !important;
279}
280
281.padding-right {
282  padding-top: 0rem !important;
283  padding-bottom: 0rem !important;
284  padding-left: 0rem !important;
285}
286
287.margin-bottom {
288  margin-top: 0rem !important;
289  margin-right: 0rem !important;
290  margin-left: 0rem !important;
291}
292
293.padding-bottom {
294  padding-top: 0rem !important;
295  padding-right: 0rem !important;
296  padding-left: 0rem !important;
297}
298
299.margin-left {
300  margin-top: 0rem !important;
301  margin-right: 0rem !important;
302  margin-bottom: 0rem !important;
303}
304  
305.padding-left {
306  padding-top: 0rem !important;
307  padding-right: 0rem !important;
308  padding-bottom: 0rem !important;
309}
310  
311.margin-horizontal {
312  margin-top: 0rem !important;
313  margin-bottom: 0rem !important;
314}
315
316.padding-horizontal {
317  padding-top: 0rem !important;
318  padding-bottom: 0rem !important;
319}
320
321.margin-vertical {
322  margin-right: 0rem !important;
323  margin-left: 0rem !important;
324}
325  
326.padding-vertical {
327  padding-right: 0rem !important;
328  padding-left: 0rem !important;
329}
330
331h1, h2, h3 {
332	text-wrap: balance;
333}
334
335  @media (max-width: 767px) {
336  .img_wrapper,
337  .image-container {
338    order: 999;
339  }
340}
341
342  @media only screen and (max-width: 1120px) and (min-width: 992px)  {
343    .navbar_menu.is-page-height-tablet {
344      padding-left: .5rem;
345    }
346    .navbar .padding-global {
347      padding-left: 1rem;
348      padding-right: 1rem;
349    }
350    .navbar_links {
351      grid-column-gap: .35rem;
352    }
353  }
354
355
356</style></div><div class="hide w-embed"><style>
357/* ================================================
358   SECTION & COMPONENT COLOR SCHEMES
359   (Sets variables only - no auto text colors)
360   ================================================ */
361
362/* Reset scheme variables on component_wrapper to break inheritance from section */
363.component_wrapper:not([data-wf--0---component--variant="transparent"]) {
364  --scheme-heading: initial;
365  --scheme-paragraph: initial;
366  --scheme-link: initial;
367  --scheme-link-hover: initial;
368}
369
370/* --- Neutral Schemes --- */
371.section_wrapper[data-wf--0---section--variant="light"],
372.component_wrapper[data-wf--0---component--variant="light"] {
373  background-color: var(--_color-schemes---light--background);
374  --scheme-heading: var(--_color-schemes---light--heading);
375  --scheme-paragraph: var(--_color-schemes---light--paragraph);
376  --scheme-link: var(--_color-schemes---light--link);
377  --scheme-link-hover: var(--_color-schemes---light--link-hover);
378}
379
380.section_wrapper[data-wf--0---section--variant="subtle"],
381.component_wrapper[data-wf--0---component--variant="subtle"] {
382  background-color: var(--_color-schemes---subtle--background);
383  --scheme-heading: var(--_color-schemes---subtle--heading);
384  --scheme-paragraph: var(--_color-schemes---subtle--paragraph);
385  --scheme-link: var(--_color-schemes---subtle--link);
386  --scheme-link-hover: var(--_color-schemes---subtle--link-hover);
387}
388
389.section_wrapper[data-wf--0---section--variant="dark"],
390.component_wrapper[data-wf--0---component--variant="dark"] {
391  background-color: var(--_color-schemes---dark--background);
392  --scheme-heading: var(--_color-schemes---dark--heading);
393  --scheme-paragraph: var(--_color-schemes---dark--paragraph);
394  --scheme-link: var(--_color-schemes---dark--link);
395  --scheme-link-hover: var(--_color-schemes---dark--link-hover);
396}
397
398/* --- Brand Schemes --- */
399.section_wrapper[data-wf--0---section--variant="brand-light"],
400.component_wrapper[data-wf--0---component--variant="brand-light"] {
401  background-color: var(--_color-schemes---brand-light--background);
402  --scheme-heading: var(--_color-schemes---brand-light--heading);
403  --scheme-paragraph: var(--_color-schemes---brand-light--paragraph);
404  --scheme-link: var(--_color-schemes---brand-light--link);
405  --scheme-link-hover: var(--_color-schemes---brand-light--link-hover);
406}
407
408.section_wrapper[data-wf--0---section--variant="brand"],
409.component_wrapper[data-wf--0---component--variant="brand"] {
410  background-color: var(--_color-schemes---brand--background);
411  --scheme-heading: var(--_color-schemes---brand--heading);
412  --scheme-paragraph: var(--_color-schemes---brand--paragraph);
413  --scheme-link: var(--_color-schemes---brand--link);
414  --scheme-link-hover: var(--_color-schemes---brand--link-hover);
415}
416
417.section_wrapper[data-wf--0---section--variant="brand-dark"],
418.component_wrapper[data-wf--0---component--variant="brand-dark"] {
419  background-color: var(--_color-schemes---brand-dark--background);
420  --scheme-heading: var(--_color-schemes---brand-dark--heading);
421  --scheme-paragraph: var(--_color-schemes---brand-dark--paragraph);
422  --scheme-link: var(--_color-schemes---brand-dark--link);
423  --scheme-link-hover: var(--_color-schemes---brand-dark--link-hover);
424}
425
426/* --- Secondary Schemes --- */
427.section_wrapper[data-wf--0---section--variant="secondary-light"],
428.component_wrapper[data-wf--0---component--variant="secondary-light"] {
429  background-color: var(--_color-schemes---secondary-light--background);
430  --scheme-heading: var(--_color-schemes---secondary-light--heading);
431  --scheme-paragraph: var(--_color-schemes---secondary-light--paragraph);
432  --scheme-link: var(--_color-schemes---secondary-light--link);
433  --scheme-link-hover: var(--_color-schemes---secondary-light--link-hover);
434}
435
436.section_wrapper[data-wf--0---section--variant="secondary"],
437.component_wrapper[data-wf--0---component--variant="secondary"] {
438  background-color: var(--_color-schemes---secondary--background);
439  --scheme-heading: var(--_color-schemes---secondary--heading);
440  --scheme-paragraph: var(--_color-schemes---secondary--paragraph);
441  --scheme-link: var(--_color-schemes---secondary--link);
442  --scheme-link-hover: var(--_color-schemes---secondary--link-hover);
443}
444
445.section_wrapper[data-wf--0---section--variant="secondary-dark"],
446.component_wrapper[data-wf--0---component--variant="secondary-dark"] {
447  background-color: var(--_color-schemes---secondary-dark--background);
448  --scheme-heading: var(--_color-schemes---secondary-dark--heading);
449  --scheme-paragraph: var(--_color-schemes---secondary-dark--paragraph);
450  --scheme-link: var(--_color-schemes---secondary-dark--link);
451  --scheme-link-hover: var(--_color-schemes---secondary-dark--link-hover);
452}
453
454/* --- Accent Schemes --- */
455.section_wrapper[data-wf--0---section--variant="accent-light"],
456.component_wrapper[data-wf--0---component--variant="accent-light"] {
457  background-color: var(--_color-schemes---accent-light--background);
458  --scheme-heading: var(--_color-schemes---accent-light--heading);
459  --scheme-paragraph: var(--_color-schemes---accent-light--paragraph);
460  --scheme-link: var(--_color-schemes---accent-light--link);
461  --scheme-link-hover: var(--_color-schemes---accent-light--link-hover);
462}
463
464.section_wrapper[data-wf--0---section--variant="accent"],
465.component_wrapper[data-wf--0---component--variant="accent"] {
466  background-color: var(--_color-schemes---accent--background);
467  --scheme-heading: var(--_color-schemes---accent--heading);
468  --scheme-paragraph: var(--_color-schemes---accent--paragraph);
469  --scheme-link: var(--_color-schemes---accent--link);
470  --scheme-link-hover: var(--_color-schemes---accent--link-hover);
471}
472
473.section_wrapper[data-wf--0---section--variant="accent-dark"],
474.component_wrapper[data-wf--0---component--variant="accent-dark"] {
475  background-color: var(--_color-schemes---accent-dark--background);
476  --scheme-heading: var(--_color-schemes---accent-dark--heading);
477  --scheme-paragraph: var(--_color-schemes---accent-dark--paragraph);
478  --scheme-link: var(--_color-schemes---accent-dark--link);
479  --scheme-link-hover: var(--_color-schemes---accent-dark--link-hover);
480}
481
482/* --- Accent1-3 Schemes --- */
483.section_wrapper[data-wf--0---section--variant="accent1-light"],
484.component_wrapper[data-wf--0---component--variant="accent1-light"] {
485  background-color: var(--_color-schemes---accent1-light--background);
486  --scheme-heading: var(--_color-schemes---accent1-light--heading);
487  --scheme-paragraph: var(--_color-schemes---accent1-light--paragraph);
488  --scheme-link: var(--_color-schemes---accent1-light--link);
489  --scheme-link-hover: var(--_color-schemes---accent1-light--link-hover);
490}
491
492.section_wrapper[data-wf--0---section--variant="accent1"],
493.component_wrapper[data-wf--0---component--variant="accent1"] {
494  background-color: var(--_color-schemes---accent1--background);
495  --scheme-heading: var(--_color-schemes---accent1--heading);
496  --scheme-paragraph: var(--_color-schemes---accent1--paragraph);
497  --scheme-link: var(--_color-schemes---accent1--link);
498  --scheme-link-hover: var(--_color-schemes---accent1--link-hover);
499}
500
501.section_wrapper[data-wf--0---section--variant="accent1-dark"],
502.component_wrapper[data-wf--0---component--variant="accent1-dark"] {
503  background-color: var(--_color-schemes---accent1-dark--background);
504  --scheme-heading: var(--_color-schemes---accent1-dark--heading);
505  --scheme-paragraph: var(--_color-schemes---accent1-dark--paragraph);
506  --scheme-link: var(--_color-schemes---accent1-dark--link);
507  --scheme-link-hover: var(--_color-schemes---accent1-dark--link-hover);
508}
509
510.section_wrapper[data-wf--0---section--variant="accent2-light"],
511.component_wrapper[data-wf--0---component--variant="accent2-light"] {
512  background-color: var(--_color-schemes---accent2-light--background);
513  --scheme-heading: var(--_color-schemes---accent2-light--heading);
514  --scheme-paragraph: var(--_color-schemes---accent2-light--paragraph);
515  --scheme-link: var(--_color-schemes---accent2-light--link);
516  --scheme-link-hover: var(--_color-schemes---accent2-light--link-hover);
517}
518
519.section_wrapper[data-wf--0---section--variant="accent2"],
520.component_wrapper[data-wf--0---component--variant="accent2"] {
521  background-color: var(--_color-schemes---accent2--background);
522  --scheme-heading: var(--_color-schemes---accent2--heading);
523  --scheme-paragraph: var(--_color-schemes---accent2--paragraph);
524  --scheme-link: var(--_color-schemes---accent2--link);
525  --scheme-link-hover: var(--_color-schemes---accent2--link-hover);
526}
527
528.section_wrapper[data-wf--0---section--variant="accent2-dark"],
529.component_wrapper[data-wf--0---component--variant="accent2-dark"] {
530  background-color: var(--_color-schemes---accent2-dark--background);
531  --scheme-heading: var(--_color-schemes---accent2-dark--heading);
532  --scheme-paragraph: var(--_color-schemes---accent2-dark--paragraph);
533  --scheme-link: var(--_color-schemes---accent2-dark--link);
534  --scheme-link-hover: var(--_color-schemes---accent2-dark--link-hover);
535}
536
537.section_wrapper[data-wf--0---section--variant="accent3-light"],
538.component_wrapper[data-wf--0---component--variant="accent3-light"] {
539  background-color: var(--_color-schemes---accent3-light--background);
540  --scheme-heading: var(--_color-schemes---accent3-light--heading);
541  --scheme-paragraph: var(--_color-schemes---accent3-light--paragraph);
542  --scheme-link: var(--_color-schemes---accent3-light--link);
543  --scheme-link-hover: var(--_color-schemes---accent3-light--link-hover);
544}
545
546.section_wrapper[data-wf--0---section--variant="accent3"],
547.component_wrapper[data-wf--0---component--variant="accent3"] {
548  background-color: var(--_color-schemes---accent3--background);
549  --scheme-heading: var(--_color-schemes---accent3--heading);
550  --scheme-paragraph: var(--_color-schemes---accent3--paragraph);
551  --scheme-link: var(--_color-schemes---accent3--link);
552  --scheme-link-hover: var(--_color-schemes---accent3--link-hover);
553}
554
555.section_wrapper[data-wf--0---section--variant="accent3-dark"],
556.component_wrapper[data-wf--0---component--variant="accent3-dark"] {
557  background-color: var(--_color-schemes---accent3-dark--background);
558  --scheme-heading: var(--_color-schemes---accent3-dark--heading);
559  --scheme-paragraph: var(--_color-schemes---accent3-dark--paragraph);
560  --scheme-link: var(--_color-schemes---accent3-dark--link);
561  --scheme-link-hover: var(--_color-schemes---accent3-dark--link-hover);
562}
563
564/* --- Transparent --- */
565.section_wrapper[data-wf--0---section--variant="transparent"],
566.component_wrapper[data-wf--0---component--variant="transparent"] {
567  background-color: transparent;
568}
569
570/* ================================================
571   COLOR SCHEME UTILITY COMPONENT (for cards)
572   ================================================ */
573
574[data-wf--color-scheme--variant] {
575  display: none;
576}
577
578:has(> [data-wf--color-scheme--variant="light"]) {
579  background-color: var(--_color-schemes---light--background);
580  --scheme-heading: var(--_color-schemes---light--heading);
581  --scheme-paragraph: var(--_color-schemes---light--paragraph);
582}
583
584:has(> [data-wf--color-scheme--variant="subtle"]) {
585  background-color: var(--_color-schemes---subtle--background);
586  --scheme-heading: var(--_color-schemes---subtle--heading);
587  --scheme-paragraph: var(--_color-schemes---subtle--paragraph);
588}
589
590:has(> [data-wf--color-scheme--variant="dark"]) {
591  background-color: var(--_color-schemes---dark--background);
592  --scheme-heading: var(--_color-schemes---dark--heading);
593  --scheme-paragraph: var(--_color-schemes---dark--paragraph);
594}
595
596:has(> [data-wf--color-scheme--variant="brand-light"]) {
597  background-color: var(--_color-schemes---brand-light--background);
598  --scheme-heading: var(--_color-schemes---brand-light--heading);
599  --scheme-paragraph: var(--_color-schemes---brand-light--paragraph);
600}
601
602:has(> [data-wf--color-scheme--variant="brand"]) {
603  background-color: var(--_color-schemes---brand--background);
604  --scheme-heading: var(--_color-schemes---brand--heading);
605  --scheme-paragraph: var(--_color-schemes---brand--paragraph);
606}
607
608:has(> [data-wf--color-scheme--variant="brand-dark"]) {
609  background-color: var(--_color-schemes---brand-dark--background);
610  --scheme-heading: var(--_color-schemes---brand-dark--heading);
611  --scheme-paragraph: var(--_color-schemes---brand-dark--paragraph);
612}
613
614:has(> [data-wf--color-scheme--variant="secondary-light"]) {
615  background-color: var(--_color-schemes---secondary-light--background);
616  --scheme-heading: var(--_color-schemes---secondary-light--heading);
617  --scheme-paragraph: var(--_color-schemes---secondary-light--paragraph);
618}
619
620:has(> [data-wf--color-scheme--variant="secondary"]) {
621  background-color: var(--_color-schemes---secondary--background);
622  --scheme-heading: var(--_color-schemes---secondary--heading);
623  --scheme-paragraph: var(--_color-schemes---secondary--paragraph);
624}
625
626:has(> [data-wf--color-scheme--variant="secondary-dark"]) {
627  background-color: var(--_color-schemes---secondary-dark--background);
628  --scheme-heading: var(--_color-schemes---secondary-dark--heading);
629  --scheme-paragraph: var(--_color-schemes---secondary-dark--paragraph);
630}
631
632:has(> [data-wf--color-scheme--variant="accent-light"]) {
633  background-color: var(--_color-schemes---accent-light--background);
634  --scheme-heading: var(--_color-schemes---accent-light--heading);
635  --scheme-paragraph: var(--_color-schemes---accent-light--paragraph);
636}
637
638:has(> [data-wf--color-scheme--variant="accent"]) {
639  background-color: var(--_color-schemes---accent--background);
640  --scheme-heading: var(--_color-schemes---accent--heading);
641  --scheme-paragraph: var(--_color-schemes---accent--paragraph);
642}
643
644:has(> [data-wf--color-scheme--variant="accent-dark"]) {
645  background-color: var(--_color-schemes---accent-dark--background);
646  --scheme-heading: var(--_color-schemes---accent-dark--heading);
647  --scheme-paragraph: var(--_color-schemes---accent-dark--paragraph);
648}
649
650:has(> [data-wf--color-scheme--variant="transparent"]) {
651  background-color: transparent;
652}
653
654/* ================================================
655   TEXT COLOR VARIANTS
656   ================================================ */
657
658/* Scheme - uses parent's scheme variables (DEFAULT) */
659[data-wf--heading--variant="scheme"] {
660  color: var(--scheme-heading);
661}
662
663[data-wf--paragraph--variant="scheme"] {
664  color: var(--scheme-paragraph);
665}
666
667/* Explicit overrides */
668[data-wf--heading--variant="inverse"] {
669  color: var(--_semantic-tokens---text--text-inverse);
670}
671
672[data-wf--heading--variant="primary"] {
673  color: var(--_semantic-tokens---text--text-primary);
674}
675
676[data-wf--heading--variant="secondary"] {
677  color: var(--_semantic-tokens---text--text-secondary);
678}
679
680[data-wf--heading--variant="tertiary"] {
681  color: var(--_semantic-tokens---text--text-tertiary);
682}
683
684[data-wf--heading--variant="brand"] {
685  color: var(--_semantic-tokens---text--text-brand);
686}
687
688[data-wf--paragraph--variant="inverse"] {
689  color: var(--_semantic-tokens---text--text-inverse);
690}
691
692[data-wf--paragraph--variant="primary"] {
693  color: var(--_semantic-tokens---text--text-primary);
694}
695
696[data-wf--paragraph--variant="secondary"] {
697  color: var(--_semantic-tokens---text--text-secondary);
698}
699
700[data-wf--paragraph--variant="tertiary"] {
701  color: var(--_semantic-tokens---text--text-tertiary);
702}
703
704[data-wf--paragraph--variant="brand"] {
705  color: var(--_semantic-tokens---text--text-brand);
706}
707
708/* ================================================
709   RICH TEXT COLOR INHERITANCE
710   ================================================ */
711
712.text-rich-text h1,
713.text-rich-text h2,
714.text-rich-text h3,
715.text-rich-text h4,
716.text-rich-text h5,
717.text-rich-text h6 {
718  color: var(--scheme-heading);
719}
720
721.text-rich-text p,
722.text-rich-text li,
723.text-rich-text blockquote,
724.text-rich-text span,
725.text-rich-text label {
726  color: var(--scheme-paragraph);
727}
728
729.text-rich-text a {
730  color: var(--scheme-link);
731}
732
733.text-rich-text a:hover {
734  color: var(--scheme-link-hover);
735}
736</style></div><div class="hide w-embed"><style>
737/* Gradient Color Variants */
738.background-overlay[data-wf--background-overlay--background-overlay="primary-light"] {
739  --gradient-stop-1: var(--_gradients---primary-light--stop-1);
740  --gradient-stop-2: var(--_gradients---primary-light--stop-2);
741}
742.background-overlay[data-wf--background-overlay--background-overlay="primary"] {
743  --gradient-stop-1: var(--_gradients---primary--stop-1);
744  --gradient-stop-2: var(--_gradients---primary--stop-2);
745}
746.background-overlay[data-wf--background-overlay--background-overlay="primary-bold"] {
747  --gradient-stop-1: var(--_gradients---primary-bold--stop-1);
748  --gradient-stop-2: var(--_gradients---primary-bold--stop-2);
749}
750.background-overlay[data-wf--background-overlay--background-overlay="primary-dark"] {
751  --gradient-stop-1: var(--_gradients---primary-dark--stop-1);
752  --gradient-stop-2: var(--_gradients---primary-dark--stop-2);
753}
754.background-overlay[data-wf--background-overlay--background-overlay="primary-to-neutral"] {
755  --gradient-stop-1: var(--_gradients---primary-to-neutral--stop-1);
756  --gradient-stop-2: var(--_gradients---primary-to-neutral--stop-2);
757}
758.background-overlay[data-wf--background-overlay--background-overlay="primary-overlay-light"] {
759  --gradient-stop-1: var(--_gradients---primary-overlay-light--stop-1);
760  --gradient-stop-2: var(--_gradients---primary-overlay-light--stop-2);
761}
762.background-overlay[data-wf--background-overlay--background-overlay="primary-overlay"] {
763  --gradient-stop-1: var(--_gradients---primary-overlay--stop-1);
764  --gradient-stop-2: var(--_gradients---primary-overlay--stop-2);
765}
766.background-overlay[data-wf--background-overlay--background-overlay="primary-overlay-heavy"] {
767  --gradient-stop-1: var(--_gradients---primary-overlay-heavy--stop-1);
768  --gradient-stop-2: var(--_gradients---primary-overlay-heavy--stop-2);
769}
770.background-overlay[data-wf--background-overlay--background-overlay="dark-overlay-light"] {
771  --gradient-stop-1: var(--_gradients---dark-overlay-light--stop-1);
772  --gradient-stop-2: var(--_gradients---dark-overlay-light--stop-2);
773}
774.background-overlay[data-wf--background-overlay--background-overlay="dark-overlay"] {
775  --gradient-stop-1: var(--_gradients---dark-overlay--stop-1);
776  --gradient-stop-2: var(--_gradients---dark-overlay--stop-2);
777}
778.background-overlay[data-wf--background-overlay--background-overlay="dark-overlay-heavy"] {
779  --gradient-stop-1: var(--_gradients---dark-overlay-heavy--stop-1);
780  --gradient-stop-2: var(--_gradients---dark-overlay-heavy--stop-2);
781}
782
783/* Gradient Angle Variants - targets parent .background-overlay based on child's data attribute */
784.background-overlay:has([data-wf--gradient-angle--variant="top"]) {
785  background-image: linear-gradient(to top, var(--gradient-stop-1), var(--gradient-stop-2));
786}
787.background-overlay:has([data-wf--gradient-angle--variant="top-right"]) {
788  background-image: linear-gradient(to top right, var(--gradient-stop-1), var(--gradient-stop-2));
789}
790.background-overlay:has([data-wf--gradient-angle--variant="right"]) {
791  background-image: linear-gradient(to right, var(--gradient-stop-1), var(--gradient-stop-2));
792}
793.background-overlay:has([data-wf--gradient-angle--variant="bottom-right"]) {
794  background-image: linear-gradient(to bottom right, var(--gradient-stop-1), var(--gradient-stop-2));
795}
796.background-overlay:has([data-wf--gradient-angle--variant="bottom"]) {
797  background-image: linear-gradient(to bottom, var(--gradient-stop-1), var(--gradient-stop-2));
798}
799.background-overlay:has([data-wf--gradient-angle--variant="bottom-left"]) {
800  background-image: linear-gradient(to bottom left, var(--gradient-stop-1), var(--gradient-stop-2));
801}
802.background-overlay:has([data-wf--gradient-angle--variant="left"]) {
803  background-image: linear-gradient(to left, var(--gradient-stop-1), var(--gradient-stop-2));
804}
805.background-overlay:has([data-wf--gradient-angle--variant="top-left"]) {
806  background-image: linear-gradient(to top left, var(--gradient-stop-1), var(--gradient-stop-2));
807}
808</style></div><div class="hide w-embed"><style>
809/* ================================================
810   BUTTON COMPONENT
811   ================================================ */
812
813/* Hide variant controllers */
814[data-wf--button-style--variant],
815[data-wf--button-size--variant],
816[data-wf--button-width--variant] {
817  display: none;
818}
819
820/* Base button styles */
821.button {
822  position: relative;
823  overflow: hidden;
824  z-index: 1;
825  border-style: solid;
826  transition: color 0.2s ease, border-color 0.2s ease;
827}
828
829/* Hover background layer */
830.button::before {
831  content: '';
832  position: absolute;
833  inset: 0;
834  z-index: -1;
835  opacity: 0;
836  transition: opacity 0.2s ease;
837  border-radius: inherit;
838}
839
840.button:hover::before {
841  opacity: 1;
842}
843
844/* ================================================
845   BUTTON SIZE
846   ================================================ */
847
848.button:has([data-wf--button-size--variant="small"]) {
849  padding: var(--_buttons---button-small--padding-y) var(--_buttons---button-small--padding-x);
850  font-size: var(--_buttons---button-small--font-size);
851  border-radius: var(--_buttons---button-small--border-radius);
852  border-width: var(--_buttons---button-small--border-width);
853}
854
855.button:has([data-wf--button-size--variant="base"]) {
856  padding: var(--_buttons---button-base--padding-y) var(--_buttons---button-base--padding-x);
857  font-size: var(--_buttons---button-base--font-size);
858  border-radius: var(--_buttons---button-base--border-radius);
859  border-width: var(--_buttons---button-base--border-width);
860}
861
862.button:has([data-wf--button-size--variant="large"]) {
863  padding: var(--_buttons---button-large--padding-y) var(--_buttons---button-large--padding-x);
864  font-size: var(--_buttons---button-large--font-size);
865  border-radius: var(--_buttons---button-large--border-radius);
866  border-width: var(--_buttons---button-large--border-width);
867}
868
869/* ================================================
870   BUTTON STYLE
871   ================================================ */
872
873/* Primary */
874.button:has([data-wf--button-style--variant="primary"]) {
875  background: linear-gradient(
876    calc(var(--_buttons---gradient--direction) * 1deg),
877    var(--_buttons---primary--stop-1) 0%,
878    var(--_buttons---primary--stop-2) 100%
879  );
880  color: var(--_buttons---primary--text);
881  border-color: var(--_buttons---primary--border);
882}
883.button:has([data-wf--button-style--variant="primary"])::before {
884  background: linear-gradient(
885    calc(var(--_buttons---gradient--direction) * 1deg),
886    var(--_buttons---primary--stop-1-hover) 0%,
887    var(--_buttons---primary--stop-2-hover) 100%
888  );
889}
890.button:has([data-wf--button-style--variant="primary"]):hover {
891  color: var(--_buttons---primary--text-hover, var(--_buttons---primary--text));
892  border-color: var(--_buttons---primary--border-hover, var(--_buttons---primary--border));
893}
894
895/* Primary Alt */
896.button:has([data-wf--button-style--variant="primary-alt"]) {
897  background: linear-gradient(
898    calc(var(--_buttons---gradient--direction) * 1deg),
899    var(--_buttons---primary-alt--stop-1) 0%,
900    var(--_buttons---primary-alt--stop-2) 100%
901  );
902  color: var(--_buttons---primary-alt--text);
903  border-color: var(--_buttons---primary-alt--border);
904}
905.button:has([data-wf--button-style--variant="primary-alt"])::before {
906  background: linear-gradient(
907    calc(var(--_buttons---gradient--direction) * 1deg),
908    var(--_buttons---primary-alt--stop-1-hover) 0%,
909    var(--_buttons---primary-alt--stop-2-hover) 100%
910  );
911}
912.button:has([data-wf--button-style--variant="primary-alt"]):hover {
913  color: var(--_buttons---primary-alt--text-hover, var(--_buttons---primary-alt--text));
914  border-color: var(--_buttons---primary-alt--border-hover, var(--_buttons---primary-alt--border));
915}
916
917/* Secondary */
918.button:has([data-wf--button-style--variant="secondary"]) {
919  background: linear-gradient(
920    calc(var(--_buttons---gradient--direction) * 1deg),
921    var(--_buttons---secondary--stop-1) 0%,
922    var(--_buttons---secondary--stop-2) 100%
923  );
924  color: var(--_buttons---secondary--text);
925  border-color: var(--_buttons---secondary--border);
926}
927.button:has([data-wf--button-style--variant="secondary"])::before {
928  background: linear-gradient(
929    calc(var(--_buttons---gradient--direction) * 1deg),
930    var(--_buttons---secondary--stop-1-hover) 0%,
931    var(--_buttons---secondary--stop-2-hover) 100%
932  );
933}
934.button:has([data-wf--button-style--variant="secondary"]):hover {
935  color: var(--_buttons---secondary--text-hover, var(--_buttons---secondary--text));
936  border-color: var(--_buttons---secondary--border-hover, var(--_buttons---secondary--border));
937}
938
939/* Secondary Alt */
940.button:has([data-wf--button-style--variant="secondary-alt"]) {
941  background: linear-gradient(
942    calc(var(--_buttons---gradient--direction) * 1deg),
943    var(--_buttons---secondary-alt--stop-1) 0%,
944    var(--_buttons---secondary-alt--stop-2) 100%
945  );
946  color: var(--_buttons---secondary-alt--text);
947  border-color: var(--_buttons---secondary-alt--border);
948}
949.button:has([data-wf--button-style--variant="secondary-alt"])::before {
950  background: linear-gradient(
951    calc(var(--_buttons---gradient--direction) * 1deg),
952    var(--_buttons---secondary-alt--stop-1-hover) 0%,
953    var(--_buttons---secondary-alt--stop-2-hover) 100%
954  );
955}
956.button:has([data-wf--button-style--variant="secondary-alt"]):hover {
957  color: var(--_buttons---secondary-alt--text-hover, var(--_buttons---secondary-alt--text));
958  border-color: var(--_buttons---secondary-alt--border-hover, var(--_buttons---secondary-alt--border));
959}
960
961/* Tertiary */
962.button:has([data-wf--button-style--variant="tertiary"]) {
963  background: linear-gradient(
964    calc(var(--_buttons---gradient--direction) * 1deg),
965    var(--_buttons---tertiary--stop-1) 0%,
966    var(--_buttons---tertiary--stop-2) 100%
967  );
968  color: var(--_buttons---tertiary--text);
969  border-color: var(--_buttons---tertiary--border);
970}
971.button:has([data-wf--button-style--variant="tertiary"])::before {
972  background: linear-gradient(
973    calc(var(--_buttons---gradient--direction) * 1deg),
974    var(--_buttons---tertiary--stop-1-hover) 0%,
975    var(--_buttons---tertiary--stop-2-hover) 100%
976  );
977}
978.button:has([data-wf--button-style--variant="tertiary"]):hover {
979  color: var(--_buttons---tertiary--text-hover, var(--_buttons---tertiary--text));
980  border-color: var(--_buttons---tertiary--border-hover, var(--_buttons---tertiary--border));
981}
982
983/* Tertiary Alt */
984.button:has([data-wf--button-style--variant="tertiary-alt"]) {
985  background: linear-gradient(
986    calc(var(--_buttons---gradient--direction) * 1deg),
987    var(--_buttons---tertiary-alt--stop-1) 0%,
988    var(--_buttons---tertiary-alt--stop-2) 100%
989  );
990  color: var(--_buttons---tertiary-alt--text);
991  border-color: var(--_buttons---tertiary-alt--border);
992}
993.button:has([data-wf--button-style--variant="tertiary-alt"])::before {
994  background: linear-gradient(
995    calc(var(--_buttons---gradient--direction) * 1deg),
996    var(--_buttons---tertiary-alt--stop-1-hover) 0%,
997    var(--_buttons---tertiary-alt--stop-2-hover) 100%
998  );
999}
1000.button:has([data-wf--button-style--variant="tertiary-alt"]):hover {
1001  color: var(--_buttons---tertiary-alt--text-hover, var(--_buttons---tertiary-alt--text));
1002  border-color: var(--_buttons---tertiary-alt--border-hover, var(--_buttons---tertiary-alt--border));
1003}
1004
1005/* Outline */
1006.button:has([data-wf--button-style--variant="outline"]) {
1007  background: linear-gradient(
1008    calc(var(--_buttons---gradient--direction) * 1deg),
1009    var(--_buttons---outline--stop-1) 0%,
1010    var(--_buttons---outline--stop-2) 100%
1011  );
1012  color: var(--_buttons---outline--text);
1013  border-color: var(--_buttons---outline--border);
1014}
1015.button:has([data-wf--button-style--variant="outline"])::before {
1016  background: linear-gradient(
1017    calc(var(--_buttons---gradient--direction) * 1deg),
1018    var(--_buttons---outline--stop-1-hover) 0%,
1019    var(--_buttons---outline--stop-2-hover) 100%
1020  );
1021}
1022.button:has([data-wf--button-style--variant="outline"]):hover {
1023  color: var(--_buttons---outline--text-hover);
1024  border-color: var(--_buttons---outline--border-hover, var(--_buttons---outline--border));
1025}
1026
1027/* Outline Alt */
1028.button:has([data-wf--button-style--variant="outline-alt"]) {
1029  background: linear-gradient(
1030    calc(var(--_buttons---gradient--direction) * 1deg),
1031    var(--_buttons---outline-alt--stop-1) 0%,
1032    var(--_buttons---outline-alt--stop-2) 100%
1033  );
1034  color: var(--_buttons---outline-alt--text);
1035  border-color: var(--_buttons---outline-alt--border);
1036}
1037.button:has([data-wf--button-style--variant="outline-alt"])::before {
1038  background: linear-gradient(
1039    calc(var(--_buttons---gradient--direction) * 1deg),
1040    var(--_buttons---outline-alt--stop-1-hover) 0%,
1041    var(--_buttons---outline-alt--stop-2-hover) 100%
1042  );
1043}
1044.button:has([data-wf--button-style--variant="outline-alt"]):hover {
1045  color: var(--_buttons---outline-alt--text-hover);
1046  border-color: var(--_buttons---outline-alt--border-hover, var(--_buttons---outline-alt--border));
1047}
1048
1049/* ================================================
1050   GRADIENT TEXT BUTTONS
1051   ================================================ */
1052
1053/* Gradient Tertiary - gradient text, transparent bg */
1054.button:has([data-wf--button-style--variant="gradient-tertiary"]) {
1055  background: transparent;
1056  border-color: transparent;
1057}
1058.button:has([data-wf--button-style--variant="gradient-tertiary"]) .button_text {
1059  background: linear-gradient(
1060    calc(var(--_buttons---gradient--direction) * 1deg),
1061    var(--_buttons---gradient-tertiary--stop-1) 0%,
1062    var(--_buttons---gradient-tertiary--stop-2) 100%
1063  );
1064  -webkit-background-clip: text;
1065  background-clip: text;
1066  -webkit-text-fill-color: transparent;
1067}
1068.button:has([data-wf--button-style--variant="gradient-tertiary"])::before {
1069  background: var(--_buttons---gradient-tertiary--bg-hover);
1070}
1071.button:has([data-wf--button-style--variant="gradient-tertiary"]):hover .button_text {
1072  background: linear-gradient(
1073    calc(var(--_buttons---gradient--direction) * 1deg),
1074    var(--_buttons---gradient-tertiary--stop-1-hover) 0%,
1075    var(--_buttons---gradient-tertiary--stop-2-hover) 100%
1076  );
1077  -webkit-background-clip: text;
1078  background-clip: text;
1079  -webkit-text-fill-color: transparent;
1080}
1081
1082/* Gradient Outline - gradient text + border, transparent bg */
1083.button:has([data-wf--button-style--variant="gradient-outline"]) {
1084  background: transparent;
1085  border-color: var(--_buttons---gradient-outline--border);
1086}
1087.button:has([data-wf--button-style--variant="gradient-outline"]) .button_text {
1088  background: linear-gradient(
1089    calc(var(--_buttons---gradient--direction) * 1deg),
1090    var(--_buttons---gradient-outline--stop-1) 0%,
1091    var(--_buttons---gradient-outline--stop-2) 100%
1092  );
1093  -webkit-background-clip: text;
1094  background-clip: text;
1095  -webkit-text-fill-color: transparent;
1096}
1097.button:has([data-wf--button-style--variant="gradient-outline"])::before {
1098  background: linear-gradient(
1099    calc(var(--_buttons---gradient--direction) * 1deg),
1100    var(--_buttons---gradient-outline--stop-1-hover) 0%,
1101    var(--_buttons---gradient-outline--stop-2-hover) 100%
1102  );
1103}
1104.button:has([data-wf--button-style--variant="gradient-outline"]):hover {
1105  border-color: var(--_buttons---gradient-outline--border-hover, var(--_buttons---gradient-outline--border));
1106}
1107.button:has([data-wf--button-style--variant="gradient-outline"]):hover .button_text {
1108  background: none;
1109  -webkit-background-clip: unset;
1110  background-clip: unset;
1111  -webkit-text-fill-color: var(--_buttons---gradient-outline--text-hover);
1112  color: var(--_buttons---gradient-outline--text-hover);
1113}
1114
1115/* ================================================
1116   BUTTON WIDTH
1117   ================================================ */
1118
1119.button:has([data-wf--button-width--variant="auto"]) {
1120  width: auto;
1121}
1122
1123.button:has([data-wf--button-width--variant="full"]) {
1124  width: 100%;
1125}
1126</style></div><div class="hide w-embed"><style>
1127/* Image Align */
1128.image-wrapper:has([data-wf--image-align--variant="right"]) {
1129  display: flex !important;
1130  justify-content: flex-end !important;
1131}
1132.image-wrapper:has([data-wf--image-align--variant="left"]) {
1133  display: flex !important;
1134  justify-content: flex-start !important;
1135}
1136.image-wrapper:has([data-wf--image-align--variant="center"]) {
1137  display: flex !important;
1138  justify-content: center !important;
1139}
1140</style>
1141
1142<style>
1143/* Image Ratio - apply to img, not wrapper */
1144.image-wrapper:has([data-wf--image-ratio--variant="square"]) img { 
1145  aspect-ratio: 1 / 1 !important;
1146  object-fit: cover !important;
1147}
1148.image-wrapper:has([data-wf--image-ratio--variant="4-3"]) img { 
1149  aspect-ratio: 4 / 3 !important;
1150  object-fit: cover !important;
1151}
1152.image-wrapper:has([data-wf--image-ratio--variant="3-2"]) img { 
1153  aspect-ratio: 3 / 2 !important;
1154  object-fit: cover !important;
1155}
1156.image-wrapper:has([data-wf--image-ratio--variant="16-9"]) img { 
1157  aspect-ratio: 16 / 9 !important;
1158  object-fit: cover !important;
1159}
1160.image-wrapper:has([data-wf--image-ratio--variant="21-9"]) img { 
1161  aspect-ratio: 21 / 9 !important;
1162  object-fit: cover !important;
1163}
1164.image-wrapper:has([data-wf--image-ratio--variant="3-4"]) img { 
1165  aspect-ratio: 3 / 4 !important;
1166  object-fit: cover !important;
1167}
1168.image-wrapper:has([data-wf--image-ratio--variant="2-3"]) img { 
1169  aspect-ratio: 2 / 3 !important;
1170  object-fit: cover !important;
1171}
1172.image-wrapper:has([data-wf--image-ratio--variant="9-16"]) img { 
1173  aspect-ratio: 9 / 16 !important;
1174  object-fit: cover !important;
1175}
1176.image-wrapper:has([data-wf--image-ratio--variant="auto"]) img { 
1177  aspect-ratio: auto !important;
1178}
1179
1180  /* Image Ratio - Mobile Override (767px and below) */
1181@media (max-width: 767px) {
1182  .image-wrapper:has([data-wf--image-ratio-mobile--variant="square"]) img { aspect-ratio: 1 / 1 !important; }
1183  .image-wrapper:has([data-wf--image-ratio-mobile--variant="4-3"]) img { aspect-ratio: 4 / 3 !important; }
1184  .image-wrapper:has([data-wf--image-ratio-mobile--variant="3-2"]) img { aspect-ratio: 3 / 2 !important; }
1185  .image-wrapper:has([data-wf--image-ratio-mobile--variant="16-9"]) img { aspect-ratio: 16 / 9 !important; }
1186  .image-wrapper:has([data-wf--image-ratio-mobile--variant="21-9"]) img { aspect-ratio: 21 / 9 !important; }
1187  .image-wrapper:has([data-wf--image-ratio-mobile--variant="3-4"]) img { aspect-ratio: 3 / 4 !important; }
1188  .image-wrapper:has([data-wf--image-ratio-mobile--variant="2-3"]) img { aspect-ratio: 2 / 3 !important; }
1189  .image-wrapper:has([data-wf--image-ratio-mobile--variant="9-16"]) img { aspect-ratio: 9 / 16 !important; }
1190  .image-wrapper:has([data-wf--image-ratio-mobile--variant="auto"]) img { aspect-ratio: auto !important; }
1191}
1192</style>
1193
1194<style>
1195/* Image Size */
1196.image-wrapper:has([data-wf--image-size--variant="auto"]) img { 
1197  width: auto !important; 
1198}
1199.image-wrapper:has([data-wf--image-size--variant="25"]) img { 
1200  width: 25% !important; 
1201}
1202.image-wrapper:has([data-wf--image-size--variant="50"]) img { 
1203  width: 50% !important; 
1204}
1205.image-wrapper:has([data-wf--image-size--variant="75"]) img { 
1206  width: 75% !important; 
1207}
1208.image-wrapper:has([data-wf--image-size--variant="full"]) img { 
1209  width: 100% !important; 
1210}
1211.image-wrapper:has([data-wf--image-size--variant="125"]) img { 
1212  width: 125% !important; 
1213  max-width: none !important;
1214}
1215.image-wrapper:has([data-wf--image-size--variant="150"]) img { 
1216  width: 150% !important; 
1217  max-width: none !important;
1218}
1219.image-wrapper:has([data-wf--image-size--variant="200"]) img { 
1220  width: 200% !important; 
1221  max-width: none !important;
1222}
1223}
1224</style>
1225
1226<style>
1227/* Image Fit */
1228.image-wrapper:has([data-wf--image-fit--variant="fit"]) img { object-fit: contain !important; }
1229.image-wrapper:has([data-wf--image-fit--variant="cover"]) img { object-fit: cover !important; }
1230.image-wrapper:has([data-wf--image-fit--variant="fill"]) img { object-fit: f
1230ill !important; }
1231</style></div><div class="hide w-embed"><style>
1232/* ================================================
1233   BACKGROUND / ELEMENT - BASE
1234   ================================================ */
1235
1236[data-wf--background-element--position] {
1237  position: absolute;
1238  pointer-events: none;
1239}
1240
1241/* ================================================
1242   POSITION + TRANSFORM ORIGIN
1243   Each position pins the element to an edge/corner
1244   and sets transform-origin to match, so all
1245   transforms (flip) anchor correctly.
1246   ================================================ */
1247
1248[data-wf--background-element--position="top-left"] {
1249  top: 0;
1250  left: 0;
1251  transform-origin: top left;
1252}
1253
1254[data-wf--background-element--position="top-center"] {
1255  top: 0;
1256  left: 50%;
1257  transform: translateX(-50%);
1258  transform-origin: top center;
1259}
1260
1261[data-wf--background-element--position="top-right"] {
1262  top: 0;
1263  right: 0;
1264  transform-origin: top right;
1265}
1266
1267[data-wf--background-element--position="center-left"] {
1268  top: 50%;
1269  left: 0;
1270  transform: translateY(-50%);
1271  transform-origin: center left;
1272}
1273
1274[data-wf--background-element--position="center"] {
1275  top: 50%;
1276  left: 50%;
1277  transform: translate(-50%, -50%);
1278  transform-origin: center center;
1279}
1280
1281[data-wf--background-element--position="center-right"] {
1282  top: 50%;
1283  right: 0;
1284  transform: translateY(-50%);
1285  transform-origin: center right;
1286}
1287
1288[data-wf--background-element--position="bottom-left"] {
1289  bottom: 0;
1290  left: 0;
1291  transform-origin: bottom left;
1292}
1293
1294[data-wf--background-element--position="bottom-center"] {
1295  bottom: 0;
1296  left: 50%;
1297  transform: translateX(-50%);
1298  transform-origin: bottom center;
1299}
1300
1301[data-wf--background-element--position="bottom-right"] {
1302  bottom: 0;
1303  right: 0;
1304  transform-origin: bottom right;
1305}
1306
1307/* ================================================
1308   IMAGE SIZE
1309   Controls the width of the background element
1310   wrapper via the Image Size sub-component.
1311   Percentage-based, so it scales naturally with
1312   the viewport.
1313   ================================================ */
1314
1315[data-wf--background-element--position]:has([data-wf--image-size--variant="25"]) {
1316  width: 25%;
1317}
1318
1319[data-wf--background-element--position]:has([data-wf--image-size--variant="50"]) {
1320  width: 50%;
1321}
1322
1323[data-wf--background-element--position]:has([data-wf--image-size--variant="75"]) {
1324  width: 75%;
1325}
1326
1327[data-wf--background-element--position]:has([data-wf--image-size--variant="full"]) {
1328  width: 100%;
1329}
1330
1331[data-wf--background-element--position]:has([data-wf--image-size--variant="125"]) {
1332  width: 125%;
1333}
1334
1335[data-wf--background-element--position]:has([data-wf--image-size--variant="150"]) {
1336  width: 150%;
1337}
1338
1339[data-wf--background-element--position]:has([data-wf--image-size--variant="200"]) {
1340  width: 200%;
1341}
1342
1343[data-wf--background-element--position] img {
1344  width: 100%;
1345  height: auto;
1346}
1347
1348/* ================================================
1349   UTILITY / Z-INDEX
1350   ================================================ */
1351
1352[data-wf--utility-z-index--variant] {
1353  display: none;
1354}
1355
1356[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="-1"]) {
1357  z-index: -1 !important;
1358}
1359
1360[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="0"]) {
1361  z-index: 0 !important;
1362}
1363
1364[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="1"]) {
1365  z-index: 1 !important;
1366}
1367
1368[data-wf--background-element--position]:has([data-wf--utility-z-index--variant="2"]) {
1369  z-index: 2 !important;
1370}
1371
1372/* ================================================
1373   UTILITY / FLIP
1374   Mirrors the element on one or both axes.
1375   Because transform-origin is set per position,
1376   flips always anchor to the correct corner/edge.
1377   ================================================ */
1378
1379[data-wf--utility-flip--variant] {
1380  display: none;
1381}
1382
1383/* --- Corners (no translate needed) --- */
1384
1385[data-wf--background-element--position="top-left"]:has([data-wf--utility-flip--variant="horizontal"]),
1386[data-wf--background-element--position="top-right"]:has([data-wf--utility-flip--variant="horizontal"]),
1387[data-wf--background-element--position="bottom-left"]:has([data-wf--utility-flip--variant="horizontal"]),
1388[data-wf--background-element--position="bottom-right"]:has([data-wf--utility-flip--variant="horizontal"]) {
1389  transform: scaleX(-1);
1390}
1391
1392[data-wf--background-element--position="top-left"]:has([data-wf--utility-flip--variant="vertical"]),
1393[data-wf--background-element--position="top-right"]:has([data-wf--utility-flip--variant="vertical"]),
1394[data-wf--background-element--position="bottom-left"]:has([data-wf--utility-flip--variant="vertical"]),
1395[data-wf--background-element--position="bottom-right"]:has([data-wf--utility-flip--variant="vertical"]) {
1396  transform: scaleY(-1);
1397}
1398
1399[data-wf--background-element--position="top-left"]:has([data-wf--utility-flip--variant="both"]),
1400[data-wf--background-element--position="top-right"]:has([data-wf--utility-flip--variant="both"]),
1401[data-wf--background-element--position="bottom-left"]:has([data-wf--utility-flip--variant="both"]),
1402[data-wf--background-element--position="bottom-right"]:has([data-wf--utility-flip--variant="both"]) {
1403  transform: scale(-1, -1);
1404}
1405
1406/* --- Top/Bottom Center (preserve translateX) --- */
1407
1408[data-wf--background-element--position="top-center"]:has([data-wf--utility-flip--variant="horizontal"]),
1409[data-wf--background-element--position="bottom-center"]:has([data-wf--utility-flip--variant="horizontal"]) {
1410  transform: translateX(-50%) scaleX(-1);
1411}
1412
1413[data-wf--background-element--position="top-center"]:has([data-wf--utility-flip--variant="vertical"]),
1414[data-wf--background-element--position="bottom-center"]:has([data-wf--utility-flip--variant="vertical"]) {
1415  transform: translateX(-50%) scaleY(-1);
1416}
1417
1418[data-wf--background-element--position="top-center"]:has([data-wf--utility-flip--variant="both"]),
1419[data-wf--background-element--position="bottom-center"]:has([data-wf--utility-flip--variant="both"]) {
1420  transform: translateX(-50%) scale(-1, -1);
1421}
1422
1423/* --- Center Left/Right (preserve translateY) --- */
1424
1425[data-wf--background-element--position="center-left"]:has([data-wf--utility-flip--variant="horizontal"]),
1426[data-wf--background-element--position="center-right"]:has([data-wf--utility-flip--variant="horizontal"]) {
1427  transform: translateY(-50%) scaleX(-1);
1428}
1429
1430[data-wf--background-element--position="center-left"]:has([data-wf--utility-flip--variant="vertical"]),
1431[data-wf--background-element--position="center-right"]:has([data-wf--utility-flip--variant="vertical"]) {
1432  transform: translateY(-50%) scaleY(-1);
1433}
1434
1435[data-wf--background-element--position="center-left"]:has([data-wf--utility-flip--variant="both"]),
1436[data-wf--background-element--position="center-right"]:has([data-wf--utility-flip--variant="both"]) {
1437  transform: translateY(-50%) scale(-1, -1);
1438}
1439
1440/* --- Center (preserve both translates) --- */
1441
1442[data-wf--background-element--position="center"]:has([data-wf--utility-flip--variant="horizontal"]) {
1443  transform: translate(-50%, -50%) scaleX(-1);
1444}
1445
1446[data-wf--background-element--position="center"]:has([data-wf--utility-flip--variant="vertical"]) {
1447  transform: translate(-50%, -50%) scaleY(-1);
1448}
1449
1450[data-wf--background-element--position="center"]:has([data-wf--utility-flip--variant="both"]) {
1451  transform: translate(-50%, -50%) scale(-1, -1);
1452}
1453
1454/* ================================================
1455   OFFSET X
1456   Shifts the element along the X axis.
1457   Negative = outward from anchor / left.
1458   Positive = inward from anchor / right.
1459
1460   For left-anchored positions: adjusts `left`
1461   For right-anchored positions: adjusts `right` (inverted)
1462   For center-X positions: adjusts `left` from 50%
1463
1464   Webflow variant labels / slugs:
1465   Neg 100% → neg-100  |  10% → 10
1466   Neg 90%  → neg-90   |  20% → 20
1467   ...                  |  ...
1468   Neg 10%  → neg-10   |  100% → 100
1469   Base     → base
1470   ================================================ */
1471
1472[data-wf--background-element-offset-x--variant] {
1473  display: none;
1474}
1475
1476/* --- Set the offset variable --- */
1477
1478[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-100"]) { --offset-x: -100%; }
1479[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-90"]) { --offset-x: -90%; }
1480[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-80"]) { --offset-x: -80%; }
1481[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-75"]) { --offset-x: -75%; }
1482[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-70"]) { --offset-x: -70%; }
1483[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-60"]) { --offset-x: -60%; }
1484[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-50"]) { --offset-x: -50%; }
1485[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-40"]) { --offset-x: -40%; }
1486[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-30"]) { --offset-x: -30%; }
1487[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-25"]) { --offset-x: -25%; }
1488[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-20"]) { --offset-x: -20%; }
1489[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="neg-10"]) { --offset-x: -10%; }
1490[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="10"]) { --offset-x: 10%; }
1491[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="20"]) { --offset-x: 20%; }
1492[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="25"]) { --offset-x: 25%; }
1493[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="30"]) { --offset-x: 30%; }
1494[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="40"]) { --offset-x: 40%; }
1495[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="50"]) { --offset-x: 50%; }
1496[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="60"]) { --offset-x: 60%; }
1497[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="70"]) { --offset-x: 70%; }
1498[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="75"]) { --offset-x: 75%; }
1499[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="80"]) { --offset-x: 80%; }
1500[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="90"]) { --offset-x: 90%; }
1501[data-wf--background-element--position]:has([data-wf--background-element-offset-x--variant="100"]) { --offset-x: 100%; }
1502
1503/* --- Apply to left-anchored positions --- */
1504
1505[data-wf--background-element--position="top-left"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1506[data-wf--background-element--position="center-left"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1507[data-wf--background-element--position="bottom-left"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])) {
1508  left: var(--offset-x);
1509}
1510
1511/* --- Apply to right-anchored positions --- */
1512
1513[data-wf--background-element--position="top-right"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1514[data-wf--background-element--position="center-right"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1515[data-wf--background-element--position="bottom-right"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])) {
1516  right: calc(0% - var(--offset-x));
1517}
1518
1519/* --- Apply to center-X positions --- */
1520
1521[data-wf--background-element--position="top-center"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1522[data-wf--background-element--position="center"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])),
1523[data-wf--background-element--position="bottom-center"]:has([data-wf--background-element-offset-x--variant]:not([data-wf--background-element-offset-x--variant="base"])) {
1524  left: calc(50% + var(--offset-x));
1525}
1526
1527/* ================================================
1528   OFFSET Y
1529   Shifts the element along the Y axis.
1530   Negative = outward from anchor / up.
1531   Positive = inward from anchor / down.
1532
1533   For top-anchored positions: adjusts `top`
1534   For bottom-anchored positions: adjusts `bottom` (inverted)
1535   For center-Y positions: adjusts `top` from 50%
1536
1537   Webflow variant labels / slugs:
1538   Neg 100% → neg-100  |  10% → 10
1539   Neg 90%  → neg-90   |  20% → 20
1540   ...                  |  ...
1541   Neg 10%  → neg-10   |  100% → 100
1542   Base     → base
1543   ================================================ */
1544
1545[data-wf--background-element-offset-y--variant] {
1546  display: none;
1547}
1548
1549/* --- Set the offset variable --- */
1550
1551[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-100"]) { --offset-y: -100%; }
1552[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-90"]) { --offset-y: -90%; }
1553[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-80"]) { --offset-y: -80%; }
1554[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-75"]) { --offset-y: -75%; }
1555[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-70"]) { --offset-y: -70%; }
1556[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-60"]) { --offset-y: -60%; }
1557[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-50"]) { --offset-y: -50%; }
1558[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-40"]) { --offset-y: -40%; }
1559[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-30"]) { --offset-y: -30%; }
1560[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-25"]) { --offset-y: -25%; }
1561[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-20"]) { --offset-y: -20%; }
1562[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="neg-10"]) { --offset-y: -10%; }
1563[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="10"]) { --offset-y: 10%; }
1564[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="20"]) { --offset-y: 20%; }
1565[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="25"]) { --offset-y: 25%; }
1566[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="30"]) { --offset-y: 30%; }
1567[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="40"]) { --offset-y: 40%; }
1568[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="50"]) { --offset-y: 50%; }
1569[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="60"]) { --offset-y: 60%; }
1570[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="70"]) { --offset-y: 70%; }
1571[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="75"]) { --offset-y: 75%; }
1572[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="80"]) { --offset-y: 80%; }
1573[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="90"]) { --offset-y: 90%; }
1574[data-wf--background-element--position]:has([data-wf--background-element-offset-y--variant="100"]) { --offset-y: 100%; }
1575
1576/* --- Apply to top-anchored positions --- */
1577
1578[data-wf--background-element--position="top-left"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1579[data-wf--background-element--position="top-center"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1580[data-wf--background-element--position="top-right"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])) {
1581  top: var(--offset-y);
1582}
1583
1584/* --- Apply to bottom-anchored positions --- */
1585
1586[data-wf--background-element--position="bottom-left"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1587[data-wf--background-element--position="bottom-center"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1588[data-wf--background-element--position="bottom-right"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])) {
1589  bottom: calc(0% - var(--offset-y));
1590}
1591
1592/* --- Apply to center-Y positions --- */
1593
1594[data-wf--background-element--position="center-left"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1595[data-wf--background-element--position="center"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])),
1596[data-wf--background-element--position="center-right"]:has([data-wf--background-element-offset-y--variant]:not([data-wf--background-element-offset-y--variant="base"])) {
1597  top: calc(50% + var(--offset-y));
1598}
1599</style></div><div><div class="hide w-embed"><style>
1600
1601</style></div><div class="hide w-embed"><style>
1602/* ================================================
1603   UTILITY / ALIGN
1604   ================================================ */
1605
1606[data-wf--utility-align--variant] {
1607  display: none;
1608}
1609
1610:has(> [data-wf--utility-align--variant="stretch"]),
1611:has(> [data-wf--utility-align--variant="stretch"]) > .grid {
1612  align-items: stretch;
1613}
1614
1615:has(> [data-wf--utility-align--variant="top"]),
1616:has(> [data-wf--utility-align--variant="top"]) > .grid {
1617  align-items: start;
1618}
1619
1620:has(> [data-wf--utility-align--variant="center"]),
1621:has(> [data-wf--utility-align--variant="center"]) > .grid {
1622  align-items: center;
1623}
1624
1625:has(> [data-wf--utility-align--variant="bottom"]),
1626:has(> [data-wf--utility-align--variant="bottom"]) > .grid {
1627  align-items: end;
1628}
1629
1630:has(> [data-wf--utility-align--variant="baseline"]),
1631:has(> [data-wf--utility-align--variant="baseline"]) > .grid {
1632  align-items: baseline;
1633}
1634</style></div><div class="hide w-embed"><style>
1635/* ================================================
1636   UTILITY / ALIGN SELF
1637   ================================================ */
1638/* Desktop */
1639[data-wf--utility-align-self--variant] {
1640  display: none;
1641}
1642:has(> [data-wf--utility-align-self--variant="start"]) {
1643  justify-self: start;
1644}
1645:has(> [data-wf--utility-align-self--variant="center"]) {
1646  justify-self: center;
1647}
1648:has(> [data-wf--utility-align-self--variant="end"]) {
1649  justify-self: end;
1650}
1651:has(> [data-wf--utility-align-self--variant="stretch"]) {
1652  justify-self: stretch;
1653}
1654
1655/* Mobile Override */
1656[data-wf--utility-align-self-mobile--variant] {
1657  display: none;
1658}
1659
1660@media (max-width: 767px) {
1661  :has([data-wf--utility-align-self-mobile--variant="start"]) {
1662    justify-self: start;
1663  }
1664  :has([data-wf--utility-align-self-mobile--variant="center"]) {
1665    justify-self: center;
1666  }
1667  :has([data-wf--utility-align-self-mobile--variant="end"]) {
1668    justify-self: end;
1669  }
1670  :has([data-wf--utility-align-self-mobile--variant="stretch"]) {
1671    justify-self: stretch;
1672  }
1673}
1674</style></div><div class="hide w-embed"><style>
1675/* ================================================
1676   UTILITY / BLEND MODE
1677   ================================================ */
1678
1679[data-wf--utility-blend-mode--variant] {
1680  display: none;
1681}
1682
1683:has(> [data-wf--utility-blend-mode--variant="multiply"]) {
1684  mix-blend-mode: multiply;
1685}
1686:has(> [data-wf--utility-blend-mode--variant="screen"]) {
1687  mix-blend-mode: screen;
1688}
1689:has(> [data-wf--utility-blend-mode--variant="overlay"]) {
1690  mix-blend-mode: overlay;
1691}
1692:has(> [data-wf--utility-blend-mode--variant="darken"]) {
1693  mix-blend-mode: darken;
1694}
1695:has(> [data-wf--utility-blend-mode--variant="lighten"]) {
1696  mix-blend-mode: lighten;
1697}
1698:has(> [data-wf--utility-blend-mode--variant="color-dodge"]) {
1699  mix-blend-mode: color-dodge;
1700}
1701:has(> [data-wf--utility-blend-mode--variant="color-burn"]) {
1702  mix-blend-mode: color-burn;
1703}
1704:has(> [data-wf--utility-blend-mode--variant="soft-light"]) {
1705  mix-blend-mode: soft-light;
1706}
1707:has(> [data-wf--utility-blend-mode--variant="hard-light"]) {
1708  mix-blend-mode: hard-light;
1709}
1710</style></div><div class="hide w-embed"><style>
1711/* ================================================
1712   UTILITY / BORDER RADIUS
1713   Overrides the parent element's border-radius.
1714   Drop this component inside any element that
1715   needs a radius change from its default.
1716
1717   Variants:
1718   - Base (no override)
1719   - None (0)
1720   - Small
1721   - Medium
1722   - Large
1723   - XLarge
1724   - Full (pill)
1725   ================================================ */
1726
1727[data-wf--utility-border-radius--variant] {
1728  display: none;
1729}
1730
1731:has(> [data-wf--utility-border-radius--variant="none"]) {
1732  border-radius: 0 !important;
1733}
1734
1735:has(> [data-wf--utility-border-radius--variant="small"]) {
1736  border-radius: var(--_border-radius---small) !important;
1737  overflow: hidden;
1738}
1739
1740:has(> [data-wf--utility-border-radius--variant="medium"]) {
1741  border-radius: var(--_border-radius---medium) !important;
1742  overflow: hidden;
1743}
1744
1745:has(> [data-wf--utility-border-radius--variant="large"]) {
1746  border-radius: var(--_border-radius---large) !important;
1747  overflow: hidden;
1748}
1749
1750:has(> [data-wf--utility-border-radius--variant="xlarge"]) {
1751  border-radius: var(--_border-radius---xlarge) !important;
1752  overflow: hidden;
1753}
1754
1755:has(> [data-wf--utility-border-radius--variant="full"]) {
1756  border-radius: 9999px !important;
1757  overflow: hidden;
1758}
1759</style></div><div class="hide w-embed"><style>
1760/* ================================================
1761   UTILITY / FONT
1762   ================================================ */
1763
1764[data-wf--utility-font--variant] {
1765  display: none;
1766}
1767
1768:has(> [data-wf--utility-font--variant="display"]),
1769:has(> [data-wf--utility-font--variant="display"]) h1,
1770:has(> [data-wf--utility-font--variant="display"]) h2,
1771:has(> [data-wf--utility-font--variant="display"]) h3,
1772:has(> [data-wf--utility-font--variant="display"]) h4,
1773:has(> [data-wf--utility-font--variant="display"]) h5,
1774:has(> [data-wf--utility-font--variant="display"]) h6,
1775:has(> [data-wf--utility-font--variant="display"]) p {
1776  font-family: var(--_typography---font-families--display-font);
1777}
1778
1779:has(> [data-wf--utility-font--variant="heading"]),
1780:has(> [data-wf--utility-font--variant="heading"]) h1,
1781:has(> [data-wf--utility-font--variant="heading"]) h2,
1782:has(> [data-wf--utility-font--variant="heading"]) h3,
1783:has(> [data-wf--utility-font--variant="heading"]) h4,
1784:has(> [data-wf--utility-font--variant="heading"]) h5,
1785:has(> [data-wf--utility-font--variant="heading"]) h6,
1786:has(> [data-wf--utility-font--variant="heading"]) p {
1787  font-family: var(--_typography---font-families--heading-font);
1788}
1789
1790:has(> [data-wf--utility-font--variant="body"]),
1791:has(> [data-wf--utility-font--variant="body"]) h1,
1792:has(> [data-wf--utility-font--variant="body"]) h2,
1793:has(> [data-wf--utility-font--variant="body"]) h3,
1794:has(> [data-wf--utility-font--variant="body"]) h4,
1795:has(> [data-wf--utility-font--variant="body"]) h5,
1796:has(> [data-wf--utility-font--variant="body"]) h6,
1797:has(> [data-wf--utility-font--variant="body"]) p {
1798  font-family: var(--_typography---font-families--body-font);
1799}
1800
1801:has(> [data-wf--utility-font--variant="alt-body"]),
1802:has(> [data-wf--utility-font--variant="alt-body"]) h1,
1803:has(> [data-wf--utility-font--variant="alt-body"]) h2,
1804:has(> [data-wf--utility-font--variant="alt-body"]) h3,
1805:has(> [data-wf--utility-font--variant="alt-body"]) h4,
1806:has(> [data-wf--utility-font--variant="alt-body"]) h5,
1807:has(> [data-wf--utility-font--variant="alt-body"]) h6,
1808:has(> [data-wf--utility-font--variant="alt-body"]) p {
1809  font-family: var(--_typography---font-families--alt-body-font);
1810}
1811
1812/* ================================================
1813   UTILITY / TEXT SIZE
1814   ================================================ */
1815
1816[data-wf--utility-text-size--variant] {
1817  display: none;
1818}
1819
1820:has(> [data-wf--utility-text-size--variant="display"]),
1821:has(> [data-wf--utility-text-size--variant="display"]) h1,
1822:has(> [data-wf--utility-text-size--variant="display"]) h2,
1823:has(> [data-wf--utility-text-size--variant="display"]) h3,
1824:has(> [data-wf--utility-text-size--variant="display"]) h4,
1825:has(> [data-wf--utility-text-size--variant="display"]) h5,
1826:has(> [data-wf--utility-text-size--variant="display"]) h6,
1827:has(> [data-wf--utility-text-size--variant="display"]) p {
1828  font-size: var(--_typography---heading-sizes--display);
1829  line-height: var(--_typography---line-height--display);
1830  letter-spacing: var(--_typography---letter-spacing--display);
1831}
1832
1833:has(> [data-wf--utility-text-size--variant="h1"]),
1834:has(> [data-wf--utility-text-size--variant="h1"]) h1,
1835:has(> [data-wf--utility-text-size--variant="h1"]) h2,
1836:has(> [data-wf--utility-text-size--variant="h1"]) h3,
1837:has(> [data-wf--utility-text-size--variant="h1"]) h4,
1838:has(> [data-wf--utility-text-size--variant="h1"]) h5,
1839:has(> [data-wf--utility-text-size--variant="h1"]) h6,
1840:has(> [data-wf--utility-text-size--variant="h1"]) p {
1841  font-size: var(--_typography---heading-sizes--h1);
1842  line-height: var(--_typography---line-height--h1);
1843  letter-spacing: var(--_typography---letter-spacing--h1);
1844}
1845
1846:has(> [data-wf--utility-text-size--variant="h2"]),
1847:has(> [data-wf--utility-text-size--variant="h2"]) h1,
1848:has(> [data-wf--utility-text-size--variant="h2"]) h2,
1849:has(> [data-wf--utility-text-size--variant="h2"]) h3,
1850:has(> [data-wf--utility-text-size--variant="h2"]) h4,
1851:has(> [data-wf--utility-text-size--variant="h2"]) h5,
1852:has(> [data-wf--utility-text-size--variant="h2"]) h6,
1853:has(> [data-wf--utility-text-size--variant="h2"]) p {
1854  font-size: var(--_typography---heading-sizes--h2);
1855  line-height: var(--_typography---line-height--h2);
1856  letter-spacing: var(--_typography---letter-spacing--h2);
1857}
1858
1859:has(> [data-wf--utility-text-size--variant="h3"]),
1860:has(> [data-wf--utility-text-size--variant="h3"]) h1,
1861:has(> [data-wf--utility-text-size--variant="h3"]) h2,
1862:has(> [data-wf--utility-text-size--variant="h3"]) h3,
1863:has(> [data-wf--utility-text-size--variant="h3"]) h4,
1864:has(> [data-wf--utility-text-size--variant="h3"]) h5,
1865:has(> [data-wf--utility-text-size--variant="h3"]) h6,
1866:has(> [data-wf--utility-text-size--variant="h3"]) p {
1867  font-size: var(--_typography---heading-sizes--h3);
1868  line-height: var(--_typography---line-height--h3);
1869  letter-spacing: var(--_typography---letter-spacing--h3);
1870}
1871
1872:has(> [data-wf--utility-text-size--variant="h4"]),
1873:has(> [data-wf--utility-text-size--variant="h4"]) h1,
1874:has(> [data-wf--utility-text-size--variant="h4"]) h2,
1875:has(> [data-wf--utility-text-size--variant="h4"]) h3,
1876:has(> [data-wf--utility-text-size--variant="h4"]) h4,
1877:has(> [data-wf--utility-text-size--variant="h4"]) h5,
1878:has(> [data-wf--utility-text-size--variant="h4"]) h6,
1879:has(> [data-wf--utility-text-size--variant="h4"]) p {
1880  font-size: var(--_typography---heading-sizes--h4);
1881  line-height: var(--_typography---line-height--h4);
1882  letter-spacing: var(--_typography---letter-spacing--h4);
1883}
1884
1885:has(> [data-wf--utility-text-size--variant="h5"]),
1886:has(> [data-wf--utility-text-size--variant="h5"]) h1,
1887:has(> [data-wf--utility-text-size--variant="h5"]) h2,
1888:has(> [data-wf--utility-text-size--variant="h5"]) h3,
1889:has(> [data-wf--utility-text-size--variant="h5"]) h4,
1890:has(> [data-wf--utility-text-size--variant="h5"]) h5,
1891:has(> [data-wf--utility-text-size--variant="h5"]) h6,
1892:has(> [data-wf--utility-text-size--variant="h5"]) p {
1893  font-size: var(--_typography---heading-sizes--h5);
1894  line-height: var(--_typography---line-height--h5);
1895  letter-spacing: var(--_typography---letter-spacing--h5);
1896}
1897
1898:has(> [data-wf--utility-text-size--variant="h6"]),
1899:has(> [data-wf--utility-text-size--variant="h6"]) h1,
1900:has(> [data-wf--utility-text-size--variant="h6"]) h2,
1901:has(> [data-wf--utility-text-size--variant="h6"]) h3,
1902:has(> [data-wf--utility-text-size--variant="h6"]) h4,
1903:has(> [data-wf--utility-text-size--variant="h6"]) h5,
1904:has(> [data-wf--utility-text-size--variant="h6"]) h6,
1905:has(> [data-wf--utility-text-size--variant="h6"]) p {
1906  font-size: var(--_typography---heading-sizes--h6);
1907  line-height: var(--_typography---line-height--h6);
1908  letter-spacing: var(--_typography---letter-spacing--h6);
1909}
1910
1911:has(> [data-wf--utility-text-size--variant="text-large"]),
1912:has(> [data-wf--utility-text-size--variant="text-large"]) h1,
1913:has(> [data-wf--utility-text-size--variant="text-large"]) h2,
1914:has(> [data-wf--utility-text-size--variant="text-large"]) h3,
1915:has(> [data-wf--utility-text-size--variant="text-large"]) h4,
1916:has(> [data-wf--utility-text-size--variant="text-large"]) h5,
1917:has(> [data-wf--utility-text-size--variant="text-large"]) h6,
1918:has(> [data-wf--utility-text-size--variant="text-large"]) p {
1919  font-size: var(--_typography---body-sizes--text-large);
1920  line-height: var(--_typography---line-height--paragraph);
1921  letter-spacing: var(--_typography---letter-spacing--paragraph);
1922}
1923
1924:has(> [data-wf--utility-text-size--variant="text-medium"]),
1925:has(> [data-wf--utility-text-size--variant="text-medium"]) h1,
1926:has(> [data-wf--utility-text-size--variant="text-medium"]) h2,
1927:has(> [data-wf--utility-text-size--variant="text-medium"]) h3,
1928:has(> [data-wf--utility-text-size--variant="text-medium"]) h4,
1929:has(> [data-wf--utility-text-size--variant="text-medium"]) h5,
1930:has(> [data-wf--utility-text-size--variant="text-medium"]) h6,
1931:has(> [data-wf--utility-text-size--variant="text-medium"]) p {
1932  font-size: var(--_typography---body-sizes--text-medium);
1933  line-height: var(--_typography---line-height--paragraph);
1934  letter-spacing: var(--_typography---letter-spacing--paragraph);
1935}
1936
1937:has(> [data-wf--utility-text-size--variant="text-regular"]),
1938:has(> [data-wf--utility-text-size--variant="text-regular"]) h1,
1939:has(> [data-wf--utility-text-size--variant="text-regular"]) h2,
1940:has(> [data-wf--utility-text-size--variant="text-regular"]) h3,
1941:has(> [data-wf--utility-text-size--variant="text-regular"]) h4,
1942:has(> [data-wf--utility-text-size--variant="text-regular"]) h5,
1943:has(> [data-wf--utility-text-size--variant="text-regular"]) h6,
1944:has(> [data-wf--utility-text-size--variant="text-regular"]) p {
1945  font-size: var(--_typography---body-sizes--text-regular);
1946  line-height: var(--_typography---line-height--paragraph);
1947  letter-spacing: var(--_typography---letter-spacing--paragraph);
1948}
1949
1950:has(> [data-wf--utility-text-size--variant="text-small"]),
1951:has(> [data-wf--utility-text-size--variant="text-small"]) h1,
1952:has(> [data-wf--utility-text-size--variant="text-small"]) h2,
1953:has(> [data-wf--utility-text-size--variant="text-small"]) h3,
1954:has(> [data-wf--utility-text-size--variant="text-small"]) h4,
1955:has(> [data-wf--utility-text-size--variant="text-small"]) h5,
1956:has(> [data-wf--utility-text-size--variant="text-small"]) h6,
1957:has(> [data-wf--utility-text-size--variant="text-small"]) p {
1958  font-size: var(--_typography---body-sizes--text-small);
1959  line-height: var(--_typography---line-height--paragraph);
1960  letter-spacing: var(--_typography---letter-spacing--paragraph);
1961}
1962
1963:has(> [data-wf--utility-text-size--variant="text-tiny"]),
1964:has(> [data-wf--utility-text-size--variant="text-tiny"]) h1,
1965:has(> [data-wf--utility-text-size--variant="text-tiny"]) h2,
1966:has(> [data-wf--utility-text-size--variant="text-tiny"]) h3,
1967:has(> [data-wf--utility-text-size--variant="text-tiny"]) h4,
1968:has(> [data-wf--utility-text-size--variant="text-tiny"]) h5,
1969:has(> [data-wf--utility-text-size--variant="text-tiny"]) h6,
1970:has(> [data-wf--utility-text-size--variant="text-tiny"]) p {
1971  font-size: var(--_typography---body-sizes--text-tiny);
1972  line-height: var(--_typography---line-height--paragraph);
1973  letter-spacing: var(--_typography---letter-spacing--paragraph);
1974}
1975</style></div><div class="hide w-embed"><style>
1976/* ================================================
1977   UTILITY / GAP
1978   ================================================ */
1979[data-wf--utility-gap--variant] {
1980  display: none;
1981}
1982:has(> [data-wf--utility-gap--variant="none"]),
1983:has(> [data-wf--utility-gap--variant="none"]) > .grid {
1984  gap: 0rem !important;
1985}
1986:has(> [data-wf--utility-gap--variant="tiny"]),
1987:has(> [data-wf--utility-gap--variant="tiny"]) > .grid {
1988  gap: var(--_spacing---tiny) !important;
1989}
1990:has(> [data-wf--utility-gap--variant="xxsmall"]),
1991:has(> [data-wf--utility-gap--variant="xxsmall"]) > .grid {
1992  gap: var(--_spacing---xxsmall) !important;
1993}
1994:has(> [data-wf--utility-gap--variant="xsmall"]),
1995:has(> [data-wf--utility-gap--variant="xsmall"]) > .grid {
1996  gap: var(--_spacing---xsmall) !important;
1997}
1998:has(> [data-wf--utility-gap--variant="small"]),
1999:has(> [data-wf--utility-gap--variant="small"]) > .grid {
2000  gap: var(--_spacing---small) !important;
2001}
2002:has(> [data-wf--utility-gap--variant="medium"]),
2003:has(> [data-wf--utility-gap--variant="medium"]) > .grid {
2004  gap: var(--_spacing---medium) !important;
2005}
2006:has(> [data-wf--utility-gap--variant="large"]),
2007:has(> [data-wf--utility-gap--variant="large"]) > .grid {
2008  gap: var(--_spacing---large) !important;
2009}
2010:has(> [data-wf--utility-gap--variant="xlarge"]),
2011:has(> [data-wf--utility-gap--variant="xlarge"]) > .grid {
2012  gap: var(--_spacing---xlarge) !important;
2013}
2014:has(> [data-wf--utility-gap--variant="xxlarge"]),
2015:has(> [data-wf--utility-gap--variant="xxlarge"]) > .grid {
2016  gap: var(--_spacing---xxlarge) !important;
2017}
2018:has(> [data-wf--utility-gap--variant="huge"]),
2019:has(> [data-wf--utility-gap--variant="huge"]) > .grid {
2020  gap: var(--_spacing---huge) !important;
2021}
2022:has(> [data-wf--utility-gap--variant="xhuge"]),
2023:has(> [data-wf--utility-gap--variant="xhuge"]) > .grid {
2024  gap: var(--_spacing---xhuge) !important;
2025}
2026:has(> [data-wf--utility-gap--variant="xxhuge"]),
2027:has(> [data-wf--utility-gap--variant="xxhuge"]) > .grid {
2028  gap: var(--_spacing---xxhuge) !important;
2029}
2030
2031/* ================================================
2032   UTILITY / GAP (MOBILE)
2033   Overrides gap spacing at 767px and below.
2034   Place as a direct child of the component wrapper.
2035   ================================================ */
2036
2037[data-wf--utility-gap-mobile--variant] {
2038  display: none;
2039}
2040
2041@media (max-width: 767px) {
2042  :has(> [data-wf--utility-gap-mobile--variant="none"]),
2043  :has(> [data-wf--utility-gap-mobile--variant="none"]) > .grid {
2044    gap: 0rem !important;
2045  }
2046  :has(> [data-wf--utility-gap-mobile--variant="tiny"]),
2047  :has(> [data-wf--utility-gap-mobile--variant="tiny"]) > .grid {
2048    gap: var(--_spacing---tiny) !important;
2049  }
2050  :has(> [data-wf--utility-gap-mobile--variant="xxsmall"]),
2051  :has(> [data-wf--utility-gap-mobile--variant="xxsmall"]) > .grid {
2052    gap: var(--_spacing---xxsmall) !important;
2053  }
2054  :has(> [data-wf--utility-gap-mobile--variant="xsmall"]),
2055  :has(> [data-wf--utility-gap-mobile--variant="xsmall"]) > .grid {
2056    gap: var(--_spacing---xsmall) !important;
2057  }
2058  :has(> [data-wf--utility-gap-mobile--variant="small"]),
2059  :has(> [data-wf--utility-gap-mobile--variant="small"]) > .grid {
2060    gap: var(--_spacing---small) !important;
2061  }
2062  :has(> [data-wf--utility-gap-mobile--variant="medium"]),
2063  :has(> [data-wf--utility-gap-mobile--variant="medium"]) > .grid {
2064    gap: var(--_spacing---medium) !important;
2065  }
2066  :has(> [data-wf--utility-gap-mobile--variant="large"]),
2067  :has(> [data-wf--utility-gap-mobile--variant="large"]) > .grid {
2068    gap: var(--_spacing---large) !important;
2069  }
2070  :has(> [data-wf--utility-gap-mobile--variant="xlarge"]),
2071  :has(> [data-wf--utility-gap-mobile--variant="xlarge"]) > .grid {
2072    gap: var(--_spacing---xlarge) !important;
2073  }
2074  :has(> [data-wf--utility-gap-mobile--variant="xxlarge"]),
2075  :has(> [data-wf--utility-gap-mobile--variant="xxlarge"]) > .grid {
2076    gap: var(--_spacing---xxlarge) !important;
2077  }
2078  :has(> [data-wf--utility-gap-mobile--variant="huge"]),
2079  :has(> [data-wf--utility-gap-mobile--variant="huge"]) > .grid {
2080    gap: var(--_spacing---huge) !important;
2081  }
2082  :has(> [data-wf--utility-gap-mobile--variant="xhuge"]),
2083  :has(> [data-wf--utility-gap-mobile--variant="xhuge"]) > .grid {
2084    gap: var(--_spacing---xhuge) !important;
2085  }
2086  :has(> [data-wf--utility-gap-mobile--variant="xxhuge"]),
2087  :has(> [data-wf--utility-gap-mobile--variant="xxhuge"]) > .grid {
2088    gap: var(--_spacing---xxhuge) !important;
2089  }
2090}
2091</style></div><div class="hide w-embed"><style>
2092/* ================================================
2093   UTILITY / HEIGHT
2094   ================================================ */
2095
2096[data-wf--utility-height--variant] {
2097  display: none;
2098}
2099
2100:has(> [data-wf--utility-height--variant="full"]),
2101:has(> [data-wf--utility-height--variant="full"]) > .grid {
2102  height: 100%;
2103}
2104
2105:has(> [data-wf--utility-height--variant="screen"]),
2106:has(> [data-wf--utility-height--variant="screen"]) > .grid {
2107  height: 100vh;
2108}
2109
2110:has(> [data-wf--utility-height--variant="auto"]),
2111:has(> [data-wf--utility-height--variant="auto"]) > .grid {
2112  height: auto;
2113}
2114
2115/* ================================================
2116   UTILITY / HEIGHT
2117   ================================================ */
2118[data-wf--utility-height--variant] {
2119  display: none;
2120}
2121:has(> [data-wf--utility-height--variant="10"]) {
2122  height: 10%;
2123}
2124:has(> [data-wf--utility-height--variant="20"]) {
2125  height: 20%;
2126}
2127:has(> [data-wf--utility-height--variant="30"]) {
2128  height: 30%;
2129}
2130:has(> [data-wf--utility-height--variant="40"]) {
2131  height: 40%;
2132}
2133:has(> [data-wf--utility-height--variant="50"]) {
2134  height: 50%;
2135}
2136:has(> [data-wf--utility-height--variant="60"]) {
2137  height: 60%;
2138}
2139:has(> [data-wf--utility-height--variant="70"]) {
2140  height: 70%;
2141}
2142:has(> [data-wf--utility-height--variant="80"]) {
2143  height: 80%;
2144}
2145:has(> [data-wf--utility-height--variant="90"]) {
2146  height: 90%;
2147}
2148:has(> [data-wf--utility-height--variant="100"]) {
2149  height: 100%;
2150}
2151
2152</style></div><div class="hide w-embed"><style>
2153/* ================================================
2154   UTILITY / JUSTIFY
2155   ================================================ */
2156
2157[data-wf--utility-justify--variant] {
2158  display: none;
2159}
2160
2161:has(> [data-wf--utility-justify--variant="start"]),
2162:has(> [data-wf--utility-justify--variant="start"]) > .grid {
2163  justify-content: flex-start;
2164}
2165
2166:has(> [data-wf--utility-justify--variant="center"]),
2167:has(> [data-wf--utility-justify--variant="center"]) > .grid {
2168  justify-content: center;
2169}
2170
2171:has(> [data-wf--utility-justify--variant="end"]),
2172:has(> [data-wf--utility-justify--variant="end"]) > .grid {
2173  justify-content: flex-end;
2174}
2175
2176:has(> [data-wf--utility-justify--variant="between"]),
2177:has(> [data-wf--utility-justify--variant="between"]) > .grid {
2178  justify-content: space-between;
2179}
2180
2181:has(> [data-wf--utility-justify--variant="around"]),
2182:has(> [data-wf--utility-justify--variant="around"]) > .grid {
2183  justify-content: space-around;
2184}
2185
2186:has(> [data-wf--utility-justify--variant="evenly"]),
2187:has(> [data-wf--utility-justify--variant="evenly"]) > .grid {
2188  justify-content: space-evenly;
2189}
2190
2191/* ================================================
2192   UTILITY / JUSTIFY (vertical distribution)
2193   ================================================ */
2194
2195[data-wf--utility-justify--variant] {
2196  display: none;
2197}
2198
2199:has(> [data-wf--utility-justify--variant="start"]),
2200:has(> [data-wf--utility-justify--variant="start"]) > .grid {
2201  align-content: start;
2202}
2203
2204:has(> [data-wf--utility-justify--variant="center"]),
2205:has(> [data-wf--utility-justify--variant="center"]) > .grid {
2206  align-content: center;
2207}
2208
2209:has(> [data-wf--utility-justify--variant="end"]),
2210:has(> [data-wf--utility-justify--variant="end"]) > .grid {
2211  align-content: end;
2212}
2213
2214:has(> [data-wf--utility-justify--variant="between"]),
2215:has(> [data-wf--utility-justify--variant="between"]) > .grid {
2216  align-content: space-between;
2217}
2218
2219:has(> [data-wf--utility-justify--variant="around"]),
2220:has(> [data-wf--utility-justify--variant="around"]) > .grid {
2221  align-content: space-around;
2222}
2223
2224:has(> [data-wf--utility-justify--variant="evenly"]),
2225:has(> [data-wf--utility-justify--variant="evenly"]) > .grid {
2226  align-content: space-evenly;
2227}
2228
2229:has(> [data-wf--utility-justify--variant="stretch"]),
2230:has(> [data-wf--utility-justify--variant="stretch"]) > .grid {
2231  align-content: stretch;
2232}
2233</style></div><div class="hide w-embed"><style>
2234
2235</style></div><div class="hide w-embed"><style>
2236/* ================================================
2237   UTILITY / MAX WIDTH
2238   ===========
2238===================================== */
2239
2240[data-wf--utility-max-width--variant] {
2241  display: none;
2242}
2243
2244:has(> [data-wf--utility-max-width--variant="full"]) {
2245  max-width: var(--_max-widths---full);
2246}
2247
2248:has(> [data-wf--utility-max-width--variant="xxsmall"]) {
2249  max-width: var(--_max-widths---xxsmall);
2250}
2251
2252:has(> [data-wf--utility-max-width--variant="xsmall"]) {
2253  max-width: var(--_max-widths---xsmall);
2254}
2255
2256:has(> [data-wf--utility-max-width--variant="small"]) {
2257  max-width: var(--_max-widths---small);
2258}
2259
2260:has(> [data-wf--utility-max-width--variant="medium"]) {
2261  max-width: var(--_max-widths---medium);
2262}
2263
2264:has(> [data-wf--utility-max-width--variant="large"]) {
2265  max-width: var(--_max-widths---large);
2266}
2267
2268:has(> [data-wf--utility-max-width--variant="xlarge"]) {
2269  max-width: var(--_max-widths---xlarge);
2270}
2271
2272:has(> [data-wf--utility-max-width--variant="xxlarge"]) {
2273  max-width: var(--_max-widths---xxlarge);
2274}
2275</style></div><div class="hide w-embed"><style>
2276/* ================================================
2277   UTILITY / OPACITY
2278   ================================================ */
2279
2280/* Utility / Opacity */
2281[data-wf--utility-opacity--variant] {
2282  display: none;
2283}
2284
2285:has(> [data-wf--utility-opacity--variant="90"]) {
2286  opacity: 0.9;
2287}
2288:has(> [data-wf--utility-opacity--variant="80"]) {
2289  opacity: 0.8;
2290}
2291:has(> [data-wf--utility-opacity--variant="70"]) {
2292  opacity: 0.7;
2293}
2294:has(> [data-wf--utility-opacity--variant="60"]) {
2295  opacity: 0.6;
2296}
2297:has(> [data-wf--utility-opacity--variant="50"]) {
2298  opacity: 0.5;
2299}
2300:has(> [data-wf--utility-opacity--variant="40"]) {
2301  opacity: 0.4;
2302}
2303:has(> [data-wf--utility-opacity--variant="30"]) {
2304  opacity: 0.3;
2305}
2306:has(> [data-wf--utility-opacity--variant="20"]) {
2307  opacity: 0.2;
2308}
2309:has(> [data-wf--utility-opacity--variant="10"]) {
2310  opacity: 0.1;
2311}
2312</style></div><div class="hide w-embed"><style>
2313[data-wf--utility-order-mobile--variant] {
2314  display: none;
2315}
2316@media (max-width: 767px) {
2317  :has(> [data-wf--utility-order-mobile--variant="1"]),
2318  :has(> * > [data-wf--utility-order-mobile--variant="1"]) {
2319    order: 1 !important;
2320  }
2321  :has(> [data-wf--utility-order-mobile--variant="2"]),
2322  :has(> * > [data-wf--utility-order-mobile--variant="2"]) {
2323    order: 2 !important;
2324  }
2325  :has(> [data-wf--utility-order-mobile--variant="3"]),
2326  :has(> * > [data-wf--utility-order-mobile--variant="3"]) {
2327    order: 3 !important;
2328  }
2329  :has(> [data-wf--utility-order-mobile--variant="4"]),
2330  :has(> * > [data-wf--utility-order-mobile--variant="4"]) {
2331    order: 4 !important;
2332  }
2333}
2334</style></div><div class="hide w-embed"><style>
2335/* ================================================
2336   UTILITY / TEXT ALIGN
2337   ================================================ */
2338
2339[data-wf--utility-text-align--variant] {
2340  display: none;
2341}
2342
2343:has(> [data-wf--utility-text-align--variant="left"]),
2344:has(> [data-wf--utility-text-align--variant="left"]) h1,
2345:has(> [data-wf--utility-text-align--variant="left"]) h2,
2346:has(> [data-wf--utility-text-align--variant="left"]) h3,
2347:has(> [data-wf--utility-text-align--variant="left"]) h4,
2348:has(> [data-wf--utility-text-align--variant="left"]) h5,
2349:has(> [data-wf--utility-text-align--variant="left"]) h6,
2350:has(> [data-wf--utility-text-align--variant="left"]) p {
2351  text-align: left;
2352}
2353
2354:has(> [data-wf--utility-text-align--variant="center"]),
2355:has(> [data-wf--utility-text-align--variant="center"]) h1,
2356:has(> [data-wf--utility-text-align--variant="center"]) h2,
2357:has(> [data-wf--utility-text-align--variant="center"]) h3,
2358:has(> [data-wf--utility-text-align--variant="center"]) h4,
2359:has(> [data-wf--utility-text-align--variant="center"]) h5,
2360:has(> [data-wf--utility-text-align--variant="center"]) h6,
2361:has(> [data-wf--utility-text-align--variant="center"]) p {
2362  text-align: center;
2363}
2364
2365:has(> [data-wf--utility-text-align--variant="right"]),
2366:has(> [data-wf--utility-text-align--variant="right"]) h1,
2367:has(> [data-wf--utility-text-align--variant="right"]) h2,
2368:has(> [data-wf--utility-text-align--variant="right"]) h3,
2369:has(> [data-wf--utility-text-align--variant="right"]) h4,
2370:has(> [data-wf--utility-text-align--variant="right"]) h5,
2371:has(> [data-wf--utility-text-align--variant="right"]) h6,
2372:has(> [data-wf--utility-text-align--variant="right"]) p {
2373  text-align: right;
2374}
2375
2376/* ================================================
2377   UTILITY / TEXT ALIGN (MOBILE)
2378   Overrides text alignment at 767px and below.
2379   Place as a direct child of the component wrapper.
2380   ================================================ */
2381
2382[data-wf--utility-text-align-mobile--variant] {
2383  display: none;
2384}
2385
2386@media (max-width: 767px) {
2387  :has(> [data-wf--utility-text-align-mobile--variant="left"]),
2388  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h1,
2389  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h2,
2390  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h3,
2391  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h4,
2392  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h5,
2393  :has(> [data-wf--utility-text-align-mobile--variant="left"]) h6,
2394  :has(> [data-wf--utility-text-align-mobile--variant="left"]) p {
2395    text-align: left;
2396  }
2397
2398  :has(> [data-wf--utility-text-align-mobile--variant="center"]),
2399  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h1,
2400  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h2,
2401  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h3,
2402  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h4,
2403  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h5,
2404  :has(> [data-wf--utility-text-align-mobile--variant="center"]) h6,
2405  :has(> [data-wf--utility-text-align-mobile--variant="center"]) p {
2406    text-align: center;
2407  }
2408
2409  :has(> [data-wf--utility-text-align-mobile--variant="right"]),
2410  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h1,
2411  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h2,
2412  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h3,
2413  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h4,
2414  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h5,
2415  :has(> [data-wf--utility-text-align-mobile--variant="right"]) h6,
2416  :has(> [data-wf--utility-text-align-mobile--variant="right"]) p {
2417    text-align: right;
2418  }
2419}
2420</style></div><div class="hide w-embed"><style>
2421/* ================================================
2422   UTILITY / TEXT COLOR
2423   ================================================ */
2424
2425[data-wf--utility-text-color--variant] {
2426  display: none;
2427}
2428
2429:has(> [data-wf--utility-text-color--variant="scheme"]) h1,
2430:has(> [data-wf--utility-text-color--variant="scheme"]) h2,
2431:has(> [data-wf--utility-text-color--variant="scheme"]) h3,
2432:has(> [data-wf--utility-text-color--variant="scheme"]) h4,
2433:has(> [data-wf--utility-text-color--variant="scheme"]) h5,
2434:has(> [data-wf--utility-text-color--variant="scheme"]) h6 {
2435  color: var(--scheme-heading);
2436}
2437
2438:has(> [data-wf--utility-text-color--variant="scheme"]) p,
2439:has(> [data-wf--utility-text-color--variant="scheme"]) li,
2440:has(> [data-wf--utility-text-color--variant="scheme"]) span,
2441:has(> [data-wf--utility-text-color--variant="scheme"]) label {
2442  color: var(--scheme-paragraph);
2443}
2444
2445:has(> [data-wf--utility-text-color--variant="inverse"]),
2446:has(> [data-wf--utility-text-color--variant="inverse"]) h1,
2447:has(> [data-wf--utility-text-color--variant="inverse"]) h2,
2448:has(> [data-wf--utility-text-color--variant="inverse"]) h3,
2449:has(> [data-wf--utility-text-color--variant="inverse"]) h4,
2450:has(> [data-wf--utility-text-color--variant="inverse"]) h5,
2451:has(> [data-wf--utility-text-color--variant="inverse"]) h6,
2452:has(> [data-wf--utility-text-color--variant="inverse"]) p {
2453  color: var(--_semantic-tokens---text--text-inverse);
2454}
2455
2456:has(> [data-wf--utility-text-color--variant="primary"]),
2457:has(> [data-wf--utility-text-color--variant="primary"]) h1,
2458:has(> [data-wf--utility-text-color--variant="primary"]) h2,
2459:has(> [data-wf--utility-text-color--variant="primary"]) h3,
2460:has(> [data-wf--utility-text-color--variant="primary"]) h4,
2461:has(> [data-wf--utility-text-color--variant="primary"]) h5,
2462:has(> [data-wf--utility-text-color--variant="primary"]) h6,
2463:has(> [data-wf--utility-text-color--variant="primary"]) p {
2464  color: var(--_semantic-tokens---text--text-primary);
2465}
2466
2467:has(> [data-wf--utility-text-color--variant="secondary"]),
2468:has(> [data-wf--utility-text-color--variant="secondary"]) h1,
2469:has(> [data-wf--utility-text-color--variant="secondary"]) h2,
2470:has(> [data-wf--utility-text-color--variant="secondary"]) h3,
2471:has(> [data-wf--utility-text-color--variant="secondary"]) h4,
2472:has(> [data-wf--utility-text-color--variant="secondary"]) h5,
2473:has(> [data-wf--utility-text-color--variant="secondary"]) h6,
2474:has(> [data-wf--utility-text-color--variant="secondary"]) p {
2475  color: var(--_semantic-tokens---text--text-secondary);
2476}
2477
2478:has(> [data-wf--utility-text-color--variant="tertiary"]),
2479:has(> [data-wf--utility-text-color--variant="tertiary"]) h1,
2480:has(> [data-wf--utility-text-color--variant="tertiary"]) h2,
2481:has(> [data-wf--utility-text-color--variant="tertiary"]) h3,
2482:has(> [data-wf--utility-text-color--variant="tertiary"]) h4,
2483:has(> [data-wf--utility-text-color--variant="tertiary"]) h5,
2484:has(> [data-wf--utility-text-color--variant="tertiary"]) h6,
2485:has(> [data-wf--utility-text-color--variant="tertiary"]) p {
2486  color: var(--_semantic-tokens---text--text-tertiary);
2487}
2488
2489:has(> [data-wf--utility-text-color--variant="brand"]),
2490:has(> [data-wf--utility-text-color--variant="brand"]) h1,
2491:has(> [data-wf--utility-text-color--variant="brand"]) h2,
2492:has(> [data-wf--utility-text-color--variant="brand"]) h3,
2493:has(> [data-wf--utility-text-color--variant="brand"]) h4,
2494:has(> [data-wf--utility-text-color--variant="brand"]) h5,
2495:has(> [data-wf--utility-text-color--variant="brand"]) h6,
2496:has(> [data-wf--utility-text-color--variant="brand"]) p {
2497  color: var(--_semantic-tokens---text--text-brand);
2498}
2499</style></div><div class="hide w-embed"><style>
2500/* ================================================
2501   UTILITY / TEXT SIZE
2502   ================================================ */
2503
2504[data-wf--utility-text-size--variant] {
2505  display: none;
2506}
2507
2508:has(> [data-wf--utility-text-size--variant="display"]),
2509:has(> [data-wf--utility-text-size--variant="display"]) h1,
2510:has(> [data-wf--utility-text-size--variant="display"]) h2,
2511:has(> [data-wf--utility-text-size--variant="display"]) h3,
2512:has(> [data-wf--utility-text-size--variant="display"]) h4,
2513:has(> [data-wf--utility-text-size--variant="display"]) h5,
2514:has(> [data-wf--utility-text-size--variant="display"]) h6,
2515:has(> [data-wf--utility-text-size--variant="display"]) p {
2516  font-size: var(--_typography---heading-sizes--display);
2517  line-height: var(--_typography---line-height--display);
2518  letter-spacing: var(--_typography---letter-spacing--display);
2519}
2520
2521:has(> [data-wf--utility-text-size--variant="h1"]),
2522:has(> [data-wf--utility-text-size--variant="h1"]) h1,
2523:has(> [data-wf--utility-text-size--variant="h1"]) h2,
2524:has(> [data-wf--utility-text-size--variant="h1"]) h3,
2525:has(> [data-wf--utility-text-size--variant="h1"]) h4,
2526:has(> [data-wf--utility-text-size--variant="h1"]) h5,
2527:has(> [data-wf--utility-text-size--variant="h1"]) h6,
2528:has(> [data-wf--utility-text-size--variant="h1"]) p {
2529  font-size: var(--_typography---heading-sizes--h1);
2530  line-height: var(--_typography---line-height--h1);
2531  letter-spacing: var(--_typography---letter-spacing--h1);
2532}
2533
2534:has(> [data-wf--utility-text-size--variant="h2"]),
2535:has(> [data-wf--utility-text-size--variant="h2"]) h1,
2536:has(> [data-wf--utility-text-size--variant="h2"]) h2,
2537:has(> [data-wf--utility-text-size--variant="h2"]) h3,
2538:has(> [data-wf--utility-text-size--variant="h2"]) h4,
2539:has(> [data-wf--utility-text-size--variant="h2"]) h5,
2540:has(> [data-wf--utility-text-size--variant="h2"]) h6,
2541:has(> [data-wf--utility-text-size--variant="h2"]) p {
2542  font-size: var(--_typography---heading-sizes--h2);
2543  line-height: var(--_typography---line-height--h2);
2544  letter-spacing: var(--_typography---letter-spacing--h2);
2545}
2546
2547:has(> [data-wf--utility-text-size--variant="h3"]),
2548:has(> [data-wf--utility-text-size--variant="h3"]) h1,
2549:has(> [data-wf--utility-text-size--variant="h3"]) h2,
2550:has(> [data-wf--utility-text-size--variant="h3"]) h3,
2551:has(> [data-wf--utility-text-size--variant="h3"]) h4,
2552:has(> [data-wf--utility-text-size--variant="h3"]) h5,
2553:has(> [data-wf--utility-text-size--variant="h3"]) h6,
2554:has(> [data-wf--utility-text-size--variant="h3"]) p {
2555  font-size: var(--_typography---heading-sizes--h3);
2556  line-height: var(--_typography---line-height--h3);
2557  letter-spacing: var(--_typography---letter-spacing--h3);
2558}
2559
2560:has(> [data-wf--utility-text-size--variant="h4"]),
2561:has(> [data-wf--utility-text-size--variant="h4"]) h1,
2562:has(> [data-wf--utility-text-size--variant="h4"]) h2,
2563:has(> [data-wf--utility-text-size--variant="h4"]) h3,
2564:has(> [data-wf--utility-text-size--variant="h4"]) h4,
2565:has(> [data-wf--utility-text-size--variant="h4"]) h5,
2566:has(> [data-wf--utility-text-size--variant="h4"]) h6,
2567:has(> [data-wf--utility-text-size--variant="h4"]) p {
2568  font-size: var(--_typography---heading-sizes--h4);
2569  line-height: var(--_typography---line-height--h4);
2570  letter-spacing: var(--_typography---letter-spacing--h4);
2571}
2572
2573:has(> [data-wf--utility-text-size--variant="h5"]),
2574:has(> [data-wf--utility-text-size--variant="h5"]) h1,
2575:has(> [data-wf--utility-text-size--variant="h5"]) h2,
2576:has(> [data-wf--utility-text-size--variant="h5"]) h3,
2577:has(> [data-wf--utility-text-size--variant="h5"]) h4,
2578:has(>
2578 [data-wf--utility-text-size--variant="h5"]) h5,
2579:has(> [data-wf--utility-text-size--variant="h5"]) h6,
2580:has(> [data-wf--utility-text-size--variant="h5"]) p {
2581  font-size: var(--_typography---heading-sizes--h5);
2582  line-height: var(--_typography---line-height--h5);
2583  letter-spacing: var(--_typography---letter-spacing--h5);
2584}
2585
2586:has(> [data-wf--utility-text-size--variant="h6"]),
2587:has(> [data-wf--utility-text-size--variant="h6"]) h1,
2588:has(> [data-wf--utility-text-size--variant="h6"]) h2,
2589:has(> [data-wf--utility-text-size--variant="h6"]) h3,
2590:has(> [data-wf--utility-text-size--variant="h6"]) h4,
2591:has(> [data-wf--utility-text-size--variant="h6"]) h5,
2592:has(> [data-wf--utility-text-size--variant="h6"]) h6,
2593:has(> [data-wf--utility-text-size--variant="h6"]) p {
2594  font-size: var(--_typography---heading-sizes--h6);
2595  line-height: var(--_typography---line-height--h6);
2596  letter-spacing: var(--_typography---letter-spacing--h6);
2597}
2598
2599:has(> [data-wf--utility-text-size--variant="text-large"]),
2600:has(> [data-wf--utility-text-size--variant="text-large"]) h1,
2601:has(> [data-wf--utility-text-size--variant="text-large"]) h2,
2602:has(> [data-wf--utility-text-size--variant="text-large"]) h3,
2603:has(> [data-wf--utility-text-size--variant="text-large"]) h4,
2604:has(> [data-wf--utility-text-size--variant="text-large"]) h5,
2605:has(> [data-wf--utility-text-size--variant="text-large"]) h6,
2606:has(> [data-wf--utility-text-size--variant="text-large"]) p {
2607  font-size: var(--_typography---body-sizes--text-large);
2608  line-height: var(--_typography---line-height--paragraph);
2609  letter-spacing: var(--_typography---letter-spacing--paragraph);
2610}
2611
2612:has(> [data-wf--utility-text-size--variant="text-medium"]),
2613:has(> [data-wf--utility-text-size--variant="text-medium"]) h1,
2614:has(> [data-wf--utility-text-size--variant="text-medium"]) h2,
2615:has(> [data-wf--utility-text-size--variant="text-medium"]) h3,
2616:has(> [data-wf--utility-text-size--variant="text-medium"]) h4,
2617:has(> [data-wf--utility-text-size--variant="text-medium"]) h5,
2618:has(> [data-wf--utility-text-size--variant="text-medium"]) h6,
2619:has(> [data-wf--utility-text-size--variant="text-medium"]) p {
2620  font-size: var(--_typography---body-sizes--text-medium);
2621  line-height: var(--_typography---line-height--paragraph);
2622  letter-spacing: var(--_typography---letter-spacing--paragraph);
2623}
2624
2625:has(> [data-wf--utility-text-size--variant="text-regular"]),
2626:has(> [data-wf--utility-text-size--variant="text-regular"]) h1,
2627:has(> [data-wf--utility-text-size--variant="text-regular"]) h2,
2628:has(> [data-wf--utility-text-size--variant="text-regular"]) h3,
2629:has(> [data-wf--utility-text-size--variant="text-regular"]) h4,
2630:has(> [data-wf--utility-text-size--variant="text-regular"]) h5,
2631:has(> [data-wf--utility-text-size--variant="text-regular"]) h6,
2632:has(> [data-wf--utility-text-size--variant="text-regular"]) p {
2633  font-size: var(--_typography---body-sizes--text-regular);
2634  line-height: var(--_typography---line-height--paragraph);
2635  letter-spacing: var(--_typography---letter-spacing--paragraph);
2636}
2637
2638:has(> [data-wf--utility-text-size--variant="text-small"]),
2639:has(> [data-wf--utility-text-size--variant="text-small"]) h1,
2640:has(> [data-wf--utility-text-size--variant="text-small"]) h2,
2641:has(> [data-wf--utility-text-size--variant="text-small"]) h3,
2642:has(> [data-wf--utility-text-size--variant="text-small"]) h4,
2643:has(> [data-wf--utility-text-size--variant="text-small"]) h5,
2644:has(> [data-wf--utility-text-size--variant="text-small"]) h6,
2645:has(> [data-wf--utility-text-size--variant="text-small"]) p {
2646  font-size: var(--_typography---body-sizes--text-small);
2647  line-height: var(--_typography---line-height--paragraph);
2648  letter-spacing: var(--_typography---letter-spacing--paragraph);
2649}
2650
2651:has(> [data-wf--utility-text-size--variant="text-tiny"]),
2652:has(> [data-wf--utility-text-size--variant="text-tiny"]) h1,
2653:has(> [data-wf--utility-text-size--variant="text-tiny"]) h2,
2654:has(> [data-wf--utility-text-size--variant="text-tiny"]) h3,
2655:has(> [data-wf--utility-text-size--variant="text-tiny"]) h4,
2656:has(> [data-wf--utility-text-size--variant="text-tiny"]) h5,
2657:has(> [data-wf--utility-text-size--variant="text-tiny"]) h6,
2658:has(> [data-wf--utility-text-size--variant="text-tiny"]) p {
2659  font-size: var(--_typography---body-sizes--text-tiny);
2660  line-height: var(--_typography---line-height--paragraph);
2661  letter-spacing: var(--_typography---letter-spacing--paragraph);
2662}
2663
2664/* ================================================
2665   UTILITY / TEXT SIZE (MOBILE)
2666   Overrides font size, line height, and letter
2667   spacing at 767px and below. Place as a direct
2668   child of the component wrapper.
2669   ================================================ */
2670
2671[data-wf--utility-text-size-mobile--variant] {
2672  display: none;
2673}
2674
2675@media (max-width: 767px) {
2676  /* --- Display --- */
2677  :has(> [data-wf--utility-text-size-mobile--variant="display"]),
2678  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h1,
2679  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h2,
2680  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h3,
2681  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h4,
2682  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h5,
2683  :has(> [data-wf--utility-text-size-mobile--variant="display"]) h6,
2684  :has(> [data-wf--utility-text-size-mobile--variant="display"]) p {
2685    font-size: var(--_typography---heading-sizes--display);
2686    line-height: var(--_typography---line-height--display);
2687    letter-spacing: var(--_typography---letter-spacing--display);
2688  }
2689
2690  /* --- H1 --- */
2691  :has(> [data-wf--utility-text-size-mobile--variant="h1"]),
2692  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h1,
2693  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h2,
2694  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h3,
2695  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h4,
2696  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h5,
2697  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) h6,
2698  :has(> [data-wf--utility-text-size-mobile--variant="h1"]) p {
2699    font-size: var(--_typography---heading-sizes--h1);
2700    line-height: var(--_typography---line-height--h1);
2701    letter-spacing: var(--_typography---letter-spacing--h1);
2702  }
2703
2704  /* --- H2 --- */
2705  :has(> [data-wf--utility-text-size-mobile--variant="h2"]),
2706  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h1,
2707  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h2,
2708  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h3,
2709  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h4,
2710  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h5,
2711  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) h6,
2712  :has(> [data-wf--utility-text-size-mobile--variant="h2"]) p {
2713    font-size: var(--_typography---heading-sizes--h2);
2714    line-height: var(--_typography---line-height--h2);
2715    letter-spacing: var(--_typography---letter-spacing--h2);
2716  }
2717
2718  /* --- H3 --- */
2719  :has(> [data-wf--utility-text-size-mobile--variant="h3"]),
2720  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h1,
2721  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h2,
2722  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h3,
2723  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h4,
2724  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h5,
2725  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) h6,
2726  :has(> [data-wf--utility-text-size-mobile--variant="h3"]) p {
2727    font-size: var(--_typography---heading-sizes--h3);
2728    line-height: var(--_typography---line-height--h3);
2729    letter-spacing: var(--_typography---letter-spacing--h3);
2730  }
2731
2732  /* --- H4 --- */
2733  :has(> [data-wf--utility-text-size-mobile--variant="h4"]),
2734  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h1,
2735  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h2,
2736  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h3,
2737  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h4,
2738  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h5,
2739  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) h6,
2740  :has(> [data-wf--utility-text-size-mobile--variant="h4"]) p {
2741    font-size: var(--_typography---heading-sizes--h4);
2742    line-height: var(--_typography---line-height--h4);
2743    letter-spacing: var(--_typography---letter-spacing--h4);
2744  }
2745
2746  /* --- H5 --- */
2747  :has(> [data-wf--utility-text-size-mobile--variant="h5"]),
2748  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h1,
2749  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h2,
2750  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h3,
2751  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h4,
2752  :has(>
2752 [data-wf--utility-text-size-mobile--variant="h5"]) h5,
2753  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) h6,
2754  :has(> [data-wf--utility-text-size-mobile--variant="h5"]) p {
2755    font-size: var(--_typography---heading-sizes--h5);
2756    line-height: var(--_typography---line-height--h5);
2757    letter-spacing: var(--_typography---letter-spacing--h5);
2758  }
2759
2760  /* --- H6 --- */
2761  :has(> [data-wf--utility-text-size-mobile--variant="h6"]),
2762  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h1,
2763  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h2,
2764  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h3,
2765  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h4,
2766  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h5,
2767  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) h6,
2768  :has(> [data-wf--utility-text-size-mobile--variant="h6"]) p {
2769    font-size: var(--_typography---heading-sizes--h6);
2770    line-height: var(--_typography---line-height--h6);
2771    letter-spacing: var(--_typography---letter-spacing--h6);
2772  }
2773
2774  /* --- Large --- */
2775  :has(> [data-wf--utility-text-size-mobile--variant="large"]),
2776  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h1,
2777  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h2,
2778  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h3,
2779  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h4,
2780  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h5,
2781  :has(> [data-wf--utility-text-size-mobile--variant="large"]) h6,
2782  :has(> [data-wf--utility-text-size-mobile--variant="large"]) p {
2783    font-size: var(--_typography---body-sizes--text-large);
2784    line-height: var(--_typography---line-height--paragraph);
2785    letter-spacing: var(--_typography---letter-spacing--paragraph);
2786  }
2787
2788  /* --- Medium --- */
2789  :has(> [data-wf--utility-text-size-mobile--variant="medium"]),
2790  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h1,
2791  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h2,
2792  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h3,
2793  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h4,
2794  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h5,
2795  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) h6,
2796  :has(> [data-wf--utility-text-size-mobile--variant="medium"]) p {
2797    font-size: var(--_typography---body-sizes--text-medium);
2798    line-height: var(--_typography---line-height--paragraph);
2799    letter-spacing: var(--_typography---letter-spacing--paragraph);
2800  }
2801
2802  /* --- Small --- */
2803  :has(> [data-wf--utility-text-size-mobile--variant="small"]),
2804  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h1,
2805  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h2,
2806  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h3,
2807  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h4,
2808  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h5,
2809  :has(> [data-wf--utility-text-size-mobile--variant="small"]) h6,
2810  :has(> [data-wf--utility-text-size-mobile--variant="small"]) p {
2811    font-size: var(--_typography---body-sizes--text-small);
2812    line-height: var(--_typography---line-height--paragraph);
2813    letter-spacing: var(--_typography---letter-spacing--paragraph);
2814  }
2815
2816  /* --- Tiny --- */
2817  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]),
2818  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h1,
2819  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h2,
2820  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h3,
2821  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h4,
2822  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h5,
2823  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) h6,
2824  :has(> [data-wf--utility-text-size-mobile--variant="tiny"]) p {
2825    font-size: var(--_typography---body-sizes--text-tiny);
2826    line-height: var(--_typography---line-height--paragraph);
2827    letter-spacing: var(--_typography---letter-spacing--paragraph);
2828  }
2829}
2830</style></div><div class="hide w-embed"><style>
2831/* ================================================
2832   UTILITY / TEXT TRANSFORM
2833   ================================================ */
2834[data-wf--utility-text-transform--variant] {
2835  display: none;
2836}
2837:has(> [data-wf--utility-text-transform--variant="uppercase"]),
2838:has(> [data-wf--utility-text-transform--variant="uppercase"]) h1,
2839:has(> [data-wf--utility-text-transform--variant="uppercase"]) h2,
2840:has(> [data-wf--utility-text-transform--variant="uppercase"]) h3,
2841:has(> [data-wf--utility-text-transform--variant="uppercase"]) h4,
2842:has(> [data-wf--utility-text-transform--variant="uppercase"]) h5,
2843:has(> [data-wf--utility-text-transform--variant="uppercase"]) h6,
2844:has(> [data-wf--utility-text-transform--variant="uppercase"]) p {
2845  text-transform: uppercase;
2846}
2847:has(> [data-wf--utility-text-transform--variant="lowercase"]),
2848:has(> [data-wf--utility-text-transform--variant="lowercase"]) h1,
2849:has(> [data-wf--utility-text-transform--variant="lowercase"]) h2,
2850:has(> [data-wf--utility-text-transform--variant="lowercase"]) h3,
2851:has(> [data-wf--utility-text-transform--variant="lowercase"]) h4,
2852:has(> [data-wf--utility-text-transform--variant="lowercase"]) h5,
2853:has(> [data-wf--utility-text-transform--variant="lowercase"]) h6,
2854:has(> [data-wf--utility-text-transform--variant="lowercase"]) p {
2855  text-transform: lowercase;
2856}
2857:has(> [data-wf--utility-text-transform--variant="capitalize"]),
2858:has(> [data-wf--utility-text-transform--variant="capitalize"]) h1,
2859:has(> [data-wf--utility-text-transform--variant="capitalize"]) h2,
2860:has(> [data-wf--utility-text-transform--variant="capitalize"]) h3,
2861:has(> [data-wf--utility-text-transform--variant="capitalize"]) h4,
2862:has(> [data-wf--utility-text-transform--variant="capitalize"]) h5,
2863:has(> [data-wf--utility-text-transform--variant="capitalize"]) h6,
2864:has(> [data-wf--utility-text-transform--variant="capitalize"]) p {
2865  text-transform: capitalize;
2866}
2867:has(> [data-wf--utility-text-transform--variant="none"]),
2868:has(> [data-wf--utility-text-transform--variant="none"]) h1,
2869:has(> [data-wf--utility-text-transform--variant="none"]) h2,
2870:has(> [data-wf--utility-text-transform--variant="none"]) h3,
2871:has(> [data-wf--utility-text-transform--variant="none"]) h4,
2872:has(> [data-wf--utility-text-transform--variant="none"]) h5,
2873:has(> [data-wf--utility-text-transform--variant="none"]) h6,
2874:has(> [data-wf--utility-text-transform--variant="none"]) p {
2875  text-transform: none;
2876}
2877</style></div><div class="hide w-embed"><style>
2878/* ================================================
2879   UTILITY / TEXT WEIGHT
2880   ================================================ */
2881
2882[data-wf--utility-text-weight--variant] {
2883  display: none;
2884}
2885
2886:has(> [data-wf--utility-text-weight--variant="light"]),
2887:has(> [data-wf--utility-text-weight--variant="light"]) h1,
2888:has(> [data-wf--utility-text-weight--variant="light"]) h2,
2889:has(> [data-wf--utility-text-weight--variant="light"]) h3,
2890:has(> [data-wf--utility-text-weight--variant="light"]) h4,
2891:has(> [data-wf--utility-text-weight--variant="light"]) h5,
2892:has(> [data-wf--utility-text-weight--variant="light"]) h6,
2893:has(> [data-wf--utility-text-weight--variant="light"]) p {
2894  font-weight: var(--_typography---font-weights--light);
2895}
2896
2897:has(> [data-wf--utility-text-weight--variant="regular"]),
2898:has(> [data-wf--utility-text-weight--variant="regular"]) h1,
2899:has(> [data-wf--utility-text-weight--variant="regular"]) h2,
2900:has(> [data-wf--utility-text-weight--variant="regular"]) h3,
2901:has(> [data-wf--utility-text-weight--variant="regular"]) h4,
2902:has(> [data-wf--utility-text-weight--variant="regular"]) h5,
2903:has(> [data-wf--utility-text-weight--variant="regular"]) h6,
2904:has(> [data-wf--utility-text-weight--variant="regular"]) p {
2905  font-weight: var(--_typography---font-weights--regular);
2906}
2907
2908:has(> [data-wf--utility-text-weight--variant="medium"]),
2909:has(> [data-wf--utility-text-weight--variant="medium"]) h1,
2910:has(> [data-wf--utility-text-weight--variant="medium"]) h2,
2911:has(> [data-wf--utility-text-weight--variant="medium"]) h3,
2912:has(> [data-wf--utility-text-weight--variant="medium"]) h4,
2913:has(> [data-wf--utility-text-weight--variant="medium"]) h5,
2914:has(> [data-wf--utility-text-weight--variant="medium"]) h6,
2915:has(> [data-wf--utility-text-weight--variant="medium"]) p {
2916  font-weight: var(--_typography---font-weights--medium);
2917}
2918
2919:has(> [data-wf--utility-text-weight--variant="semibold"]),
2920:has(> [data-wf--utility-text-weight--variant="semibold"]) h1,
2921:has(> [data-wf--utility-text-weight--variant="semibold"]) h2,
2922:has(> [data-wf--utility-text-weight--variant="semibold"]) h3,
2923:has(> [data-wf--utility-text-weight--variant="semibold"]) h4,
2924:has(> [data-wf--utility-text-weight--variant="semibold"]) h5,
2925:has(> [data-wf--utility-text-weight--variant="semibold"]) h6,
2926:has(> [data-wf--utility-text-weight--variant="semibold"]) p {
2927  font-weight: var(--_typography---font-weights--semibold);
2928}
2929
2930:has(> [data-wf--utility-text-weight--variant="bold"]),
2931:has(> [data-wf--utility-text-weight--variant="bold"]) h1,
2932:has(> [data-wf--utility-text-weight--variant="bold"]) h2,
2933:has(> [data-wf--utility-text-weight--variant="bold"]) h3,
2934:has(> [data-wf--utility-text-weight--variant="bold"]) h4,
2935:has(> [data-wf--utility-text-weight--variant="bold"]) h5,
2936:has(> [data-wf--utility-text-weight--variant="bold"]) h6,
2937:has(> [data-wf--utility-text-weight--variant="bold"]) p {
2938  font-weight: var(--_typography---font-weights--bold);
2939}
2940</style></div><div class="hide w-embed"><style>
2941/* ================================================
2942   UTILITY / VISIBILITY
2943   Controls whether the parent element is visible
2944   at desktop or mobile breakpoints. Drop this
2945   component inside any element.
2946
2947   Variants:
2948   - Base (always visible)
2949   - Hide Tablet (hidden at 991px and below)
2950   - Hide Mobile (hidden at 767px and below)
2951   - Show Tablet (hidden on desktop, visible at 991px and below)
2952   - Show Mobile (hidden on desktop, visible at 767px and below)
2953   ================================================ */
2954
2955[data-wf--utility-visibility--variant] {
2956  display: none;
2957}
2958
2959/* Hide Tablet: visible on desktop, hidden at 991px and below */
2960@media (max-width: 991px) {
2961  :has(> [data-wf--utility-visibility--variant="hide-tablet"]) {
2962    display: none !important;
2963  }
2964}
2965
2966/* Hide Mobile: visible on desktop, hidden at 767px and below */
2967@media (max-width: 767px) {
2968  :has(> [data-wf--utility-visibility--variant="hide-mobile"]) {
2969    display: none !important;
2970  }
2971}
2972
2973/* Show Tablet: hidden on desktop, visible at 991px and below */
2974:has(> [data-wf--utility-visibility--variant="show-tablet"]) {
2975  display: none !important;
2976}
2977
2978@media (max-width: 991px) {
2979  :has(> [data-wf--utility-visibility--variant="show-tablet"]) {
2980    display: revert !important;
2981  }
2982}
2983
2984/* Show Mobile: hidden on desktop, visible at 767px and below */
2985:has(> [data-wf--utility-visibility--variant="show-mobile"]) {
2986  display: none !important;
2987}
2988
2989@media (max-width: 767px) {
2990  :has(> [data-wf--utility-visibility--variant="show-mobile"]) {
2991    display: revert !important;
2992  }
2993}
2994</style></div><div class="hide w-embed"><style>
2995/* ================================================
2996   UTILITY / WIDTH
2997   ================================================ */
2998[data-wf--utility-width--variant] {
2999  display: none;
3000}
3001:has(> [data-wf--utility-width--variant="10"]) {
3002  width: 10%;
3003}
3004:has(> [data-wf--utility-width--variant="20"]) {
3005  width: 20%;
3006}
3007:has(> [data-wf--utility-width--variant="30"]) {
3008  width: 30%;
3009}
3010:has(> [data-wf--utility-width--variant="40"]) {
3011  width: 40%;
3012}
3013:has(> [data-wf--utility-width--variant="50"]) {
3014  width: 50%;
3015}
3016:has(> [data-wf--utility-width--variant="60"]) {
3017  width: 60%;
3018}
3019:has(> [data-wf--utility-width--variant="70"]) {
3020  width: 70%;
3021}
3022:has(> [data-wf--utility-width--variant="80"]) {
3023  width: 80%;
3024}
3025:has(> [data-wf--utility-width--variant="90"]) {
3026  width: 90%;
3027}
3028:has(> [data-wf--utility-width--variant="100"]) {
3029  width: 100%;
3030}
3031</style></div><div class="hide w-embed"><style>
3032/* ================================================
3033   UTILITY / Z-INDEX
3034   ================================================ */
3035
3036[data-wf--utility-z-index--variant] {
3037  display: none;
3038}
3039
3040:has(> [data-wf--utility-z-index--variant="-1"]) {
3041  z-index: -1;
3042}
3043:has(> [data-wf--utility-z-index--variant="0"]) {
3044  z-index: 0;
3045}
3046:has(> [data-wf--utility-z-index--variant="1"]) {
3047  z-index: 1;
3048}
3049:has(> [data-wf--utility-z-index--variant="2"]) {
3050  z-index: 2;
3051}
3052</style></div></div></div><div class="page-styles w-embed"><style>
3053  #overflow-hidden {
3054    overflow: hidden;
3055  }
3056</style></div><main 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="large" class="section-padding"></div><div class="component_slot"><div class="breadcrumb-link"><a href="/resources/blog" class="breadcrumb_link-block w-inline-block"><div class="icon-1x1-xsmall"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 512 512" fill="none" class="icon"><g clip-path="url(#clip0_9_1348)"><path d="M390.627 54.6271L189.255 256L390.627 457.373C393.628 460.338 396.013 463.867 397.646 467.757C399.278 471.647 400.125 475.822 400.137 480.04C400.15 484.259 399.329 488.438 397.72 492.338C396.112 496.238 393.748 499.782 390.765 502.765C387.782 505.748 384.238 508.112 380.339 509.72C376.439 511.329 372.259 512.15 368.04 512.137C363.822 512.124 359.647 511.278 355.757 509.646C351.867 508.013 348.338 505.628 345.373 502.627L121.373 278.627C115.372 272.626 112.001 264.487 112.001 256C112.001 247.513 115.372 239.374 121.373 233.373L345.373 9.37308C351.387 3.43211 359.507 0.111939 367.96 0.137599C376.413 
30560.163259 384.513 3.53267 390.49 9.51003C396.468 15.4874 399.837 23.5871 399.863 32.0403C399.888 40.4935 396.568 48.6135 390.627 54.6271Z" fill="currentColor"></path></g><defs><clippath id="clip0_9_1348"><rect width="512" height="512" fill="currentColor"></rect></clippath></defs></svg></div><div><p>Blog</p><div data-wf--utility-text-weight--variant="medium" 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="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></a></div><div data-wf--spacer--variant="x-small" class="spacer w-variant-5e2de7c4-f42e-e357-d40b-231a3438f32c"></div><div data-wf--line-divider--direction="base" class="divider"></div><div data-wf--spacer--variant="medium" class="spacer w-variant-b83557a4-0cfd-2735-cea0-374489a03346"></div><div data-wf--layout-grid--variant="2-column---50-50" 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="center" 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"><div data-wf--content-wrapper--variant="align-content-left" class="content-wrapper"><div class="content-wrapper_slot w-variant-5922f0bc-0444-7a20-7a06-7555e97d1e4e"><div data-wf--eyebrow-pill--variant="align-left" class="eyebrow-pill_wrapper w-variant-0fb5ea0b-9aab-8ad1-3c2a-8cb926b93ca5"><div class="eyebrow-pill">Blog</div></div><div data-wf--spacer--variant="small" class="spacer"></div><div><h2>The 2026 State of Vulnerability Management &amp; Remediation | Container Security Edition</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 data-wf--spacer--variant="medium" class="spacer w-variant-b83557a4-0cfd-2735-cea0-374489a03346"></div><div><p>Jonny Rivera</p><div data-wf--utility-text-weight--variant="semibold" 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="tiny" class="spacer w-variant-46f35bc5-fb79-b0da-747d-2377747f4166"></div><div><p>January 6, 2026</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 data-wf--spacer--variant="medium" class="spacer w-variant-b83557a4-0cfd-2735-cea0-374489a03346"></div><div class="share_component"><div><p>Share post:</p><div data-wf--utility-text-weight--variant="medium" class="hide"></div><div data-wf--utility-text-color--variant="secondary" class="hide"></div><div data-wf--utility-text-align--variant="left" 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><a fs-socialshare-element="twitter" href="#" class="share_icon w-inline-block">
3056<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 512 512" fill="none"><path d="M512 97.248C492.96 105.6 472.672 111.136 451.52 113.824C473.28 100.832 489.888 80.416 497.696 55.808C477.408 67.904 455.008 76.448 431.136 81.216C411.872 60.704 384.416 48 354.464 48C296.352 48 249.568 95.168 249.568 152.992C249.568 161.312 250.272 169.312 252 176.928C164.736 172.672 87.52 130.848 35.648 67.136C26.592 82.848 21.28 100.832 21.28 120.192C21.28 156.544 40 188.768 67.904 207.424C51.04 207.104 34.496 202.208 20.48 194.496C20.48 194.816 20.48 195.232 20.48 195.648C20.48 246.656 56.864 289.024 104.576 298.784C96.032 301.12 86.72 302.24 77.056 302.24C70.336 302.24 63.552 301.856 57.184 300.448C70.784 342.016 109.376 372.576 155.264 373.568C119.552 401.504 74.208 418.336 25.12 418.336C16.512 418.336 8.256 417.952 0 416.896C46.496 446.88 101.6 464 161.024 464C354.176 464 459.776 304 459.776 165.312C459.776 160.672 459.616 156.192 459.392 151.744C480.224 136.96 497.728 118.496 512 97.248Z" fill="currentColor"></path></svg></a><a fs-socialshare-element="linkedin" href="#" class="share_icon w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 512 512" fill="none"><path d="M460.8 460.8V310.784C460.8 237.056 444.928 180.736 358.912 180.736C317.44 180.736 289.792 203.264 278.528 224.768H277.504V187.392H196.096V460.8H281.088V325.12C281.088 289.28 287.744 254.976 331.776 254.976C375.296 254.976 375.808 295.424 375.808 327.168V460.288H460.8V460.8Z" fill="currentColor"></path><path d="M57.8555 187.393H142.847V460.801H57.8555V187.393Z" fill="currentColor"></path><path d="M100.351 51.2002C73.2152 51.2002 51.1992 73.2162 51.1992 100.352C51.1992 127.488 73.2152 150.016 100.351 150.016C127.487 150.016 149.503 127.488 149.503 100.352C149.503 73.2162 127.487 51.2002 100.351 51.2002Z" fill="currentColor"></path></svg></a><a fs-socialshare-element="facebook" href="#" class="share_icon w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 156 156" fill="none"><g clip-path="url(#clip0_17_2210)"><path d="M89.5831 155.139V84.378H113.325L116.887 56.793H89.5831V39.184C89.5831 3
30561.2 91.7911 25.759 103.253 25.759L117.848 25.753V1.08C115.324 0.752 106.66 0 96.5761 0C75.5191 0 61.1031 12.853 61.1031 36.452V56.793H37.2891V84.378H61.1031V155.139H89.5831Z" fill="currentColor"></path></g><defs><clippath id="clip0_17_2210"><rect width="155.139" height="155.139" fill="currentColor"></rect></clippath></defs></svg></a></div></div></div><div data-wf--image-holder--variant="inner-component-border" class="img_wrapper"><div class="img_inner-wrap w-variant-56141160-31fc-e681-5a09-adf4f03a1b50"><div data-wf--image--image-height="base" class="image_wrapper"><div data-reveal="" class="image-wrapper"><img src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6a19f1c2c8b195de4b35a3c1_Title-Option-2-1200x675.png" loading="lazy" alt=""/><div data-wf--image-fit--variant="fit" class="hide"></div><div data-wf--image-size--variant="full" class="hide"></div><div data-wf--image-ratio--variant="auto" class="hide"></div><div data-wf--image-align--variant="left" class="hide"></div><div class="hide w-embed w-script"><style>
3057  .image-wrapper.clip-ready {
3058    clip-path: inset(50% 0);
3059    transform: scale(1.05);
3060    transition: clip-path 1.4s cubic-bezier(0.16, 1, 0.3, 1),
3061                transform 1.8s cubic-bezier(0.16, 1, 0.3, 1);
3062  }
3063
3064  .image-wrapper.is-revealed {
3065    clip-path: inset(0% 0) !important;
3066    transform: scale(1) !important;
3067  }
3068</style>
3069
3070<script>
3071(function () {
3072  var images = document.querySelectorAll('.image-wrapper[data-reveal="true"]');
3073  if (!images.length) return;
3074
3075  images.forEach(function (img) {
3076    img.classList.add('clip-ready');
3077  });
3078
3079  var observer = new IntersectionObserver(
3080    function (entries) {
3081      entries.forEach(function (entry) {
3082        if (entry.isIntersecting) {
3083          entry.target.classList.add('is-revealed');
3084          observer.unobserve(entry.target);
3085        }
3086      });
3087    },
3088    {
3089      threshold: 0,
3090      rootMargin: '0px 0px -200px 0px'
3091    }
3092  );
3093
3094  images.forEach(function (img) {
3095    observer.observe(img);
3096  });
3097})();
3098</script>
3098</div><div data-wf--image-ratio-mobile--variant="base" class="hide"></div></div><div data-wf--utility-order-mobile--variant="2" class="hide"></div></div></div></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><div data-wf--line-divider--direction="base" class="divider"></div><section id="overflow-hidden" 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="small" class="container-width_wrapper"><div class="container w-variant-587e57b5-707b-042b-6bd5-6e8fb30889e1"><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 fs-toc-element="contents"><div class="course-details_rich-text w-richtext"><h2>More Containers, More Problems</h2><p>Containers have become foundational to modern software development. They power CI/CD pipelines, enable cloud-native architectures, and accelerate deployment cycles. But as container adoption reaches near universal scale, a troubling pattern has emerged: <strong>container adoption has outpaced container security.</strong></p><p>Today, we’re excited to announce the release of our 2026 State of Vulnerability Management and Remediation Report: Container Security Edition. In this report we surveyed 250 DevSecOps leaders across North America to understand how organizations manage container security, where the biggest gaps exist, and what strategies teams are adopting to close them.</p><p>The findings reveal a stark disconnect between strategic intent and operational execution. While 100% of respondents told us that containerization was critical to their production strategy, 82% of them also admit that they’ve likely suffered at least one container-related security breach in the past 12 months. <strong>In short, containers represent a significant risk factor and attack vector.</strong> Organizations have good intentions to secure them, but they don’t always have the processes, tools, and best practices in place to efficiently remediate CVEs.</p><figure class="w-richtext-figure-type-image"><div><img alt="The State of Vulnerability Management &amp; Remediation Report -graphic for breach likelihood " src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6a19f1c1c8b195de4b35a37d_The-2026-State-of-Vulnerability-2-1200x508.png" loading="lazy"/></div></figure><h2>Visibility Gaps Create Hidden Attack Surfaces</h2><p>Perhaps the most striking insight from the report is how visibility problems compound container security challenges. While 95% of DevSecOps respondents say container workloads account for half or more of their production footprint, 91% identify limited visibility into container components as their biggest security blind spot.</p><h2>Teams Prioritize Convenience Over Security</h2><p>Another key finding centers on trust versus practice. Although 77% of DevSecOps respondents trust curated catalogs of open-source and container images more than public registries, 90% still use lightly modified public images with little to no hardening. This gap exposes a fundamental challenge in container security: when platform engineering teams attempt to manually curate “golden images” these catalogs quickly become bottlenecks. Frustrated developers bypass the controls entirely, pulling packages directly from public registries and introducing unmonitored risk into production.</p><h2>The Remediation Gap</h2><p>Current approaches to container security have created what we call the remediation gap. Despite 98% of DevSecOps respondents ranking hardened container images as a high strategic priority, execution consistently falls short. The problem isn’t intent or investment momentum. The problem is that manual curation and the engineering challenges that come with it simply don’t scale.</p><p>[DOWNLOAD &quot;The 2026 State of Vulnerability Management &amp; Remediation Report&quot;]</p><h2>AI and Automation Point to a Better Path</h2><p>Despite these challenges, the report does reveal strong optimism about the future of container security. 100% of DevSecOps respondents are likely to use AI or automation to prioritize vulnerabilities, and 95% expect intelligent remediation to become standard practice by 2026. The appeal of AI-driven remediation is clear: rapid and targeted vulnerability response, operational consistency, improved accuracy, and significant reductions in both labor and business risk.</p><figure class="w-richtext-figure-type-image"><div><img alt="The State of Vulnerability Management &amp; Remediation Report -graphic for AI usage " src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6a19f1c1c8b195de4b35a37a_The-2026-State-of-Vulnerability-4-1200x548.png" loading="lazy"/></div></figure><h2>The Path Forward</h2><p>Container adoption has outpaced security maturity across the industry. The good news is that DevSecOps leaders recognize the problem and are actively seeking solutions. The next 12 months will likely see widespread adoption of AI-driven remediation, policy-enforced runtimes, and curated container catalogs that eliminate the friction between speed and security.</p><p>[DOWNLOAD &quot;Get the Full Report&quot;]</p><p>For teams still relying on manual curation or lightly modified public images, the time to act is now. The risks are real, the costs are measurable, and the solutions are available. Container security doesn’t have to be a bottleneck. With the right tools and partners, it can become an enabler of both innovation and compliance.</p><p>The solution requires shifting from reactive scanning to proactive security. This means standardizing base image creation and approval workflows, partnering with providers who specialize in secure open source delivery, and implementing automated remediation pipelines that keep pace with the speed of modern development.</p><h2>Read the Full Report</h2><p>The ActiveState 2026 State of Vulnerability Management and Remediation Report delivers the complete picture of container security in 2026. Inside, you’ll find detailed data on container security trends, comprehensive analysis of AI-driven remediation strategies, and actionable best practices for closing the compliance gap in your organization.</p><p>Download the full report to discover:</p><ul role="list"><li>How leading organizations are addressing the visibility crisis in container security</li><li>Specific strategies for moving from manual to automated remediation</li><li>The role of AI in modern container security programs</li><li>Practical steps for implementing custom container images that meet compliance requirements</li><li>Industry benchmarks and data to help you assess your own security posture</li></ul><p>Whether you’re a DevSecOps leader looking to reduce breach risk or an engineering manager trying to eliminate security bottlenecks, this report provides the insights you need to build a more secure container strategy.</p><p><a href="https://5262266.fs1.hubspotusercontent-na1.net/hubfs/5262266/2025%20Assets/Datasheets/The%202026%20State%2
30980of%20Vulnerability%20Management%20&amp;%20Remediation%20%20Container%20Edition.pdf" target="_blank"><strong>Download the 2026 State of Vulnerability Management &amp; Remediation Report</strong></a></p></div><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="body" class="hide"></div><div data-wf--utility-max-width--variant="base" class="hide"></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><div data-wf--line-divider--direction="base" class="divider"></div><section class="section_base"><div class="padding-global"><div class="container-small"><div class="faq_component"><div><h2>Frequently Asked Questions</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="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 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>What is the biggest container security finding from the 2026 report?</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>The most striking finding is the gap between strategic intent and operational execution. While 100% of DevSecOps leaders surveyed said containerization was critical to their production strategy, 82% admitted they had likely suffered at least one container-related security breach in the past 12 months. The data shows that organizations have the motivation to secure containers but lack the processes, tools, and automation to do so efficiently — particularly around CVE remediation at scale.</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 are organizations still getting breached despite prioritizing container security?</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">
3098<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>The report identifies two compounding problems. First, 91% of respondents cite limited visibility into container components as their biggest security blind spot — you cannot remediate what you cannot see. Second, there is a trust-versus-practice gap: 77% of teams trust curated catalogs over public registries, yet 90% still use lightly modified public images with little to no hardening. When platform teams attempt to manually maintain &quot;golden images,&quot; the process becomes a bottleneck and developers bypass controls entirely, pulling directly from public registries and introducing unmonitored risk into production.</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 role will AI play in container vulnerability management going forward?</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>The report shows strong consensus on AI-driven remediation: 100% of DevSecOps respondents said they are likely to use AI or automation to prioritize vulnerabilities, and 95% expect intelligent remediation to become standard practice. The appeal is concrete — rapid and targeted vulnerability response, operational consistency, improved accuracy, and significant reductions in both labor and business risk. The organizations moving fastest are pairing curated, pre-hardened container images with automated remediation pipelines that eliminate the manual curation bottleneck entirely.</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 practical steps does the report recommend for closing the container security gap?</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>The report points to three shifts that leading teams are making. First, moving to curated container catalogs and hardened images that minimize attack surface by stripping unused components — shells, package managers, and non-essential libraries — rather than patching bloated public base images. Second, countering AI-accelerated threats with AI-driven defense, using automation to keep pace with the speed at which new vulnerabilities are disclosed and exploited. Third, offloading the undifferentiated engineering work of container maintenance and CVE remediation to a vendor operating under contractual SLAs, freeing engineering capacity for product work rather than patch management.</p></div></div></div></div></div></div><div class="hide w-embed w-script">
3098<script>
3099window.Webflow ||= [];
3100window.Webflow.push(function () {
3101  var items = document.querySelectorAll('.faqs_item');
3102  if (!items.length) return;
3103
3104  items.forEach(function (item) {
3105    var card = item.querySelector('.faq-item_card');
3106    var answer = item.querySelector('.faq-item_answer');
3107    var icon = item.querySelector('.faq-item_icon');
3108    if (!card || !answer) return;
3109
3110    answer.style.overflow = 'hidden';
3111    answer.style.height = '0px';
3112    answer.style.transition = 'height 0.35s ease';
3113    card.style.cursor = 'pointer';
3114
3115    if (icon) {
3116      icon.style.transition = 'transform 0.35s ease';
3117      icon.style.transformOrigin = 'center';
3118    }
3119
3120    var isOpen = false;
3121
3122    card.addEventListener('click', function () {
3123      if (!isOpen) {
3124        answer.style.height = answer.scrollHeight + 'px';
3125        if (icon) icon.style.transform = 'rotate(-45deg)';
3126        isOpen = true;
3127      } else {
3128        // If currently at 'auto', snap to a pixel value so the transition to 0 has something to animate from.
3129        answer.style.height = answer.scrollHeight + 'px';
3130        answer.offsetHeight; // force reflow
3131        answer.style.height = '0px';
3132        if (icon) icon.style.transform = 'rotate(0deg)';
3133        isOpen = false;
3134      }
3135    });
3136
3137    answer.addEventListener('transitionend', function (e) {
3138      if (e.propertyName === 'height' && isOpen) {
3139        answer.style.height = 'auto';
3140      }
3141    });
3142  });
3143});
3144</script>
3144</div></div></div></div></section><section class="section_base"><div class="padding-global"><div class="container-large"><div class="related_component"><h2 class="heading-style-h3 text-align-center">View more</h2><div class="w-dyn-list"><div role="list" class="blog-posts_list w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/blog/nobody-is-governing-the-dependencies-your-ai-assistant-picks-thats-the-actual-risk" class="featured-post_card w-inline-block"><div class="featured-post_card-img-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6ab187fb5708631688ab9017_Velocity%20(27).png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6ab187fb5708631688ab9017_Velocity%20(27)-p-500.png 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6ab187fb5708631688ab9017_Velocity%20(27)-p-800.png 800w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6ab187fb5708631688ab9017_Velocity%20(27)-p-1080.png 1080w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6ab187fb5708631688ab9017_Velocity%20(27).png 1200w" class="featured-card_main-img"/></div><div class="blog-card_meta"><div><p>Blog</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-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>|</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-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>September 22, 2026</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-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><div class="featured-card_main-heading"><div><h3>Nobody Is Governing the Dependencies Your AI Assistant Picks. That&#x27;s the Actual Risk.</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="h6" 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="hidden-values"><div fs-cmsfilter-field="name">Nobody Is Governing the Dependencies Your AI Assistant Picks. That&#x27;s the Actual Risk.</div><div fs-cmsfilter-field="topic">AI Coding Security</div></div></div><div class="featured-card_main-bottom"><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-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 class="icon-1x1-normal">
3144<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 role="listitem" class="w-dyn-item"><a href="/blog/building-reproducible-software-environments-a-practical-guide-2" class="featured-post_card w-inline-block"><div class="featured-post_card-img-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aac3c702ed0dcd467564c95_Velocity%20(26).png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aac3c702ed0dcd467564c95_Velocity%20(26)-p-500.png 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aac3c702ed0dcd467564c95_Velocity%20(26)-p-800.png 800w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aac3c702ed0dcd467564c95_Velocity%20(26)-p-1080.png 1080w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aac3c702ed0dcd467564c95_Velocity%20(26).png 1200w" class="featured-card_main-img"/></div><div class="blog-card_meta"><div><p>Blog</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-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>|</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-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>September 18, 2026</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-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><div class="featured-card_main-heading"><div><h3>Building Reproducible Software Environments: A Practical Guide</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="h6" 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="hidden-values"><div fs-cmsfilter-field="name">Building Reproducible Software Environments: A Practical Guide</div><div fs-cmsfilter-field="topic">Software Supply Chain Security</div></div></div><div class="featured-card_main-bottom"><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-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 class="icon-1x1-normal">
3144<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 role="listitem" class="w-dyn-item"><a href="/blog/15-best-open-source-devsecops-tools-for-enhancing-application-security" class="featured-post_card w-inline-block"><div class="featured-post_card-img-wrapper"><img loading="lazy" src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aa86241f178da85eefaf04a_Velocity%20(25).png" alt="" sizes="100vw" srcset="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aa86241f178da85eefaf04a_Velocity%20(25)-p-500.png 500w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aa86241f178da85eefaf04a_Velocity%20(25)-p-800.png 800w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aa86241f178da85eefaf04a_Velocity%20(25)-p-1080.png 1080w, https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6aa86241f178da85eefaf04a_Velocity%20(25).png 1200w" class="featured-card_main-img"/></div><div class="blog-card_meta"><div><p>Blog</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-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>|</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-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>September 15, 2026</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-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><div class="featured-card_main-heading"><div><h3>15 Best Open Source DevSecOps Tools for Enhancing Application Security</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="h6" 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="hidden-values"><div fs-cmsfilter-field="name">15 Best Open Source DevSecOps Tools for Enhancing Application Security</div><div fs-cmsfilter-field="topic">Software Supply Chain Security</div></div></div><div class="featured-card_main-bottom"><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-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 class="icon-1x1-normal">
3144<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></div><div class="download_card is-template"><div><h2>Heading</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><a href="/company/contact-us" class="button w-inline-block"><div class="button_text">Download now</div><div data-wf--button-style--variant="primary-alt" 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></section></main><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
3144072 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">
3144<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">
3144© 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>
3144<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>
3144<script src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/js/webflow.schunk.f2efb3c5440a81cf.js" type="text/javascript" integrity="sha384-VK02VJvMib7ytrF5M2joPWNtDQs366FZgEQ5B+Iwnjx0WBnwQXfootyziSYxdrmS" crossorigin="anonymous"></script>
3144<script src="https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb1/js/webflow.4cc304e8.1524c9732310d729.js" type="text/javascript" integrity="sha384-rpcvZe38EeDL9DMIqNElNp61kz9Isa5DTnn8qR3+LakG299l2gtjXNncf0sec65V" crossorigin="anonymous"></script>
3144
3145
3146<script>
3147  // Get the element with id "year" and set it to the current year
3148document.getElementById('year').textContent = new Date().getFullYear();
3149</script>
3149
3150
3151<script>
3152window.Webflow.push(function () {
3153  var icon = document.querySelector('.navbar-banner_icon');
3154  var wrapper = document.querySelector('.navbar_banner-wrapper');
3155  var hero = document.querySelector('[data-wf--padding-vertical--variant="hero"]');
3156
3157  if (!icon || !wrapper) return;
3158
3159  // Banner already hidden from a previous visit — nothing to wire up
3160  if (localStorage.getItem('bannerClosed') === '1') return;
3161
3162  // Allow height to animate smoothly
3163  wrapper.style.overflow = 'hidden';
3164  wrapper.style.transition = 'height 0.4s ease';
3165
3166  // Prep the hero padding transition to sync with the banner collapse
3167  if (hero) {
3168    var currentPadding = parseFloat(window.getComputedStyle(hero).paddingTop);
3169    hero.style.paddingTop = currentPadding + 'px'; // pin computed value so transition works
3170    hero.style.transition = 'padding-top 0.4s ease';
3171  }
3172
3173  icon.addEventListener('click', function () {
3174    // Pin the current height so the browser has a concrete value to transition from
3175    wrapper.style.height = wrapper.offsetHeight + 'px';
3176
3177    // Double rAF ensures the pinned height is committed before we animate to 0
3178    requestAnimationFrame(function () {
3179      requestAnimationFrame(function () {
3180        wrapper.style.height = '0px';
3181
3182        // Decrease hero top padding by 3.25rem in sync with the banner collapsing
3183        if (hero) {
3184          var rootFontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize);
3185          hero.style.paddingTop = (currentPadding - (3.25 * rootFontSize)) + 'px';
3186        }
3187
3188        // After the animation finishes, remove from layout and save the closed state
3189        wrapper.addEventListener('transitionend', function () {
3190          wrapper.style.display = 'none';
3191        }, { once: true });
3192
3193        localStorage.setItem('bannerClosed', '1');
3194      });
3195    });
3196  });
3197});
3198</script>
3198<script>
3199document.addEventListener('DOMContentLoaded', function () {
3200  var PATTERN = /\[DOWNLOAD\s+["\u201C\u201D]([^"\u201C\u201D]*)["\u201C\u201D]\]/g;
3201  var richText = document.querySelector('.course-details_rich-text');
3202  var template = document.querySelector('.download_card.is-template');
3203  var fileURL = "https://cdn.prod.website-files.com/6a0dc648b0f944cab4dc0cb3/6a29f3e4edf9be06c305bb8a_2026%20State%20of%20Vulnerabity%20Management%20%26%20Remediation%20Report%20by%20Activestate.pdf";
3204  if (!richText) { console.warn('[download] rich text not found'); return; }
3205  if (!template) { console.warn('[download] card template not found'); return; }
3206  if (!fileURL) { console.warn('[download] no file URL bound'); return; }
3207
3208 function buildCard(heading) {
3209  var card = template.cloneNode(true);
3210  card.classList.remove('is-template');
3211  card.style.display = '';
3212  card.style.height = 'auto';
3213  card.style.margin = '2.5rem 0';
3214
3215var h = card.querySelector('h2');
3216if (h) {
3217  h.textContent = heading;
3218  h.style.textAlign = 'center';
3219}
3220  var btn = card.querySelector('a');
3221  if (btn) {
3222    btn.href = fileURL;
3223    btn.target = '_blank';
3224    btn.rel = 'noopener';
3225  }
3226  return card;
3227}
3228  
3229  var walker = document.createTreeWalker(richText, NodeFilter.SHOW_TEXT, null);
3230  var hits = [];
3231  while (walker.nextNode()) {
3232    PATTERN.lastIndex = 0;
3233    if (PATTERN.test(walker.currentNode.nodeValue)) hits.push(walker.currentNode);
3234  }
3235
3236  hits.forEach(function (node) {
3237    var text = node.nodeValue;
3238    var parent = node.parentNode;
3239    PATTERN.lastIndex = 0;
3240    var matches = text.match(PATTERN);
3241    if (matches && matches.length === 1 &&
3242        parent !== richText && parent.textContent.trim() === matches[0]) {
3243      PATTERN.lastIndex = 0;
3244      var solo = PATTERN.exec(text);
3245      parent.parentNode.replaceChild(buildCard(solo[1]), parent);
3246      return;
3247    }
3248    var frag = document.createDocumentFragment();
3249    var last = 0, m;
3250    PATTERN.lastIndex = 0;
3251    while ((m = PATTERN.exec(text)) !== null) {
3252      if (m.index > last) frag.appendChild(document.createTextNode(text.slice(last, m.index)));
3253      frag.appendChild(buildCard(m[1]));
3254      last = m.index + m[0].length;
3255    }
3256    if (last < text.length) frag.appendChild(document.createTextNode(text.slice(last)));
3257    parent.replaceChild(frag, node);
3258  });
3259});
3260</script>
3260</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.