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 & 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 & 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 & 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 & 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 & 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 &Â 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 & 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 & 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 & 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 "The 2026 State of Vulnerability Management &Â Remediation Report"]</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 & 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 "Get the Full Report"]</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&%20Remediation%20%20Container%20Edition.pdf" target="_blank"><strong>Download the 2026 State of Vulnerability Management & 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 "golden images," 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'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'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 & 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.