1<!DOCTYPE html><html lang="en-US" data-theme="light"> <head><meta name="sentry-trace" content="751ac49c3d2d4d4b2cf268c9fc6c9fdb-d6e340f2edad66ba"/> 2<meta name="baggage" content="sentry-environment=production,sentry-release=247a098bf374f7ad9be9db1aadc6c2fc36fc4047,sentry-public_key=1b9394b538e2db677f594cb2eefe129d,sentry-trace_id=751ac49c3d2d4d4b2cf268c9fc6c9fdb,sentry-org_id=7749"/> 3<meta name="sentry-route-name" content="%2Fpricing"/><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><title>Pricing For The UpGuard CRPM Platform | UpGuard</title><link rel="canonical" href="https://www.upguard.com/pricing"><link rel="alternate" type="text/markdown" href="/pricing.md"><link rel="icon" href="/favicon.svg" type="image/svg+xml" sizes="any"><link rel="preload" href="/fonts/HW-Cigars-Light.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/inter-tight-v9-latin-regular.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/inter-v20-latin-regular.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/inter-v20-latin-italic.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="/fonts/inter-v20-latin-600.woff2" as="font" type="font/woff2" crossorigin><meta property="og:site_name" content="UpGuard"><meta property="og:type" content="website"><meta property="og:title" content="Pricing For The UpGuard CRPM Platform | UpGuard"><meta property="og:image" content="https://www.upguard.com/.netlify/images?url=https%3A%2F%2Fcontent.upguard.com%2Fhubfs%2Fopen-graph%2Fpricing.png&fm=jpg&w=1200&h=630&q=85&dpl=6ab4a3cbb36e820008e2ae9c"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Pricing For The UpGuard CRPM Platform | UpGuard"><meta name="twitter:image" content="https://www.upguard.com/.netlify/images?url=https%3A%2F%2Fcontent.upguard.com%2Fhubfs%2Fopen-graph%2Fpricing.png&fm=jpg&w=1200&h=630&q=85&dpl=6ab4a3cbb36e820008e2ae9c"><!-- start:tracking-scripts --> 4<!-- 5ââ ââ 6ââ ââ 7 ââ 8 9We're hiring! 10Go to upguard.com/careers 11-->
12<script> 13 // load Segment API 14!function(){var i="analytics",analytics=window[i]=window[i]||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","screen","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware","register"];analytics.factory=function(e){return function(){if(window[i].initialized)return window[i][e].apply(window[i],arguments);var n=Array.prototype.slice.call(arguments);if(["track","screen","alias","group","page","identify"].indexOf(e)>-1){var c=document.querySelector("link[rel='canonical']");n.push({__t:"bpc",c:c&&c.getAttribute("href")||void 0,p:location.pathname,u:location.href,s:location.search,t:document.title,r:document.referrer})}n.unshift(e);analytics.push(n);return analytics}};for(var n=0;n<analytics.methods.length;n++){var key=analytics.methods[n];analytics[key]=analytics.factory(key)}analytics.load=function(key,n){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.setAttribute("data-global-segment-analytics-key",i);t.src="https://cdn.segment.com/analytics.js/v1/" + key + "/analytics.min.js";var r=document.getElementsByTagName("script")[0];r.parentNode.insertBefore(t,r);analytics._loadOptions=n};analytics._writeKey="IM4gZZObNPxWwjdMucSbgVCvYGDBHHmu";;analytics.SNIPPET_VERSION="5.2.0"; 15// analytics.load(window.location.host == "www.upguard.com" ? "GAG8dK4Ra4de1G0AV7ah50u36nBVTYCt" : "IM4gZZObNPxWwjdMucSbgVCvYGDBHHmu"); 16}}(); 17</script>
17 18 19<!-- UC changes additions -->
20<script> 21 // UC Toggle 22 window.ug_usercentrics_on = true; 23 // Testing mode: flag if UC managing script consent based on param or localStorage 24 const params_uc1q = new URLSearchParams(window.location.search); 25 26 (() => { 27 28 if (params_uc1q.has("ug_usercentrics_on")) { 29 window.ug_usercentrics_on = true; 30 } 31 32 const segmentKey = window.location.host === "www.upguard.com" ? "GAG8dK4Ra4de1G0AV7ah50u36nBVTYCt" : "IM4gZZObNPxWwjdMucSbgVCvYGDBHHmu"; 33 34 if (!window.ug_usercentrics_on) { 35 analytics.load(segmentKey); 36 trackPageWithProperties() 37 } else { 38 // Inject UserCentrics script 39 40 let rulsetId = params_uc1q.has("ug_uc_ruleset_id") ? params_uc1q.get('ug_uc_ruleset_id') : false 41 let settingsId = params_uc1q.has("ug_uc_settings_id") ? params_uc1q.get('ug_uc_settings_id') : false 42 43 const s = document.createElement("script"); 44 s.src = "https://web.cmp.usercentrics.eu/ui/loader.js"; 45 s.id = "usercentrics-cmp"; 46 if(params_uc1q.has('ug_debug')) s.setAttribute("data-draft", "true"); 47 if(rulsetId){ 48 s.setAttribute("data-ruleset-id", rulsetId) 49 } else if (settingsId){ 50 s.setAttribute("data-settings-id", settingsId) 51 } else { 52 s.setAttribute("data-ruleset-id", "lb71OJJrwIzYng") 53 } 54 s.async = true; 55 document.head.appendChild(s); 56 57 58 window.addEventListener("usercentrics_load_scripts_implicitly", (event) => { 59 if (event.detail.event === "consent_status" && event.detail.type === "IMPLICIT"){ 60 ugSegmentAnalytics(event) 61 } 62 }) 63 64 65 // explicit consent 66 window.addEventListener("usercentrics_update", (event) => { 67 if (event.detail.event === "consent_status" && event.detail.type === "EXPLICIT"){ 68 ugSegmentAnalytics(event) 69 }; 70 }) 71 72 function ugSegmentAnalytics(event) { 73 74 if (analytics.initialized) return 75 76 const hasConsent = (str) => event.detail.hasOwnProperty(str) && event.detail[str] === true; 77 78 const options = { 79 integrations: { 80 // Integrations 81 All: false, 82 "Mixpanel (Actions)": hasConsent("Mixpanel"), 83 "Clearbit Reveal": hasConsent("Clearbit"), 84 "Webhooks (Actions)": hasConsent("HubSpot"), 85 "Hubspot Web (Actions)": hasConsent("HubSpot"), 86 "Google AdWords New": hasConsent("Google Ads"), 87 "Facebook Pixel": hasConsent("Facebook Pixel"), 88 "Facebook Conversions API (Actions)": hasConsent("Facebook Pixel"), 89 "Google Analytics 4 Web": hasConsent("Google Analytics"), 90 "PERSONAS - Google AdWords": hasConsent("Google Ads"), 91 "Hotjar": hasConsent("Hotjar"), 92 "LinkedIn Insight Tag": hasConsent("LinkedIn Insight Tag"), 93 "LinkedIn Conversions API": hasConsent("LinkedIn Insight Tag"), 94 "Linkedin Audiences": hasConsent("LinkedIn Insight Tag"), 95 "Postgres": hasConsent("UpGuard Marketing Events Database"), 96 "Segment.io": hasConsent("Segment") 97 } 98 } 99 100 analytics.load(segmentKey, options) 101 102 trackPageWithProperties() 103 104 if(params_uc1q.has("ug_debug_uesercentrics")) console.table(options.integrations) 105 106 }; 107 } 108 109 // To send data on page calls on either path 110 function trackPageWithProperties() { 111 if (document.readyState === "loading") { 112 document.addEventListener("DOMContentLoaded", () => onLoad()) 113 } else { 114 onLoad() 115 } 116 117 function onLoad () { 118 const properties = {} 119 120 // These page overrides are really important because otherwise Segment reads and passes anu canonical URL instead of the actual page that was viewed. 121 const pageOverrides = { 122 url: window.location.origin + window.location.pathname + window.location.search, 123 path: window.location.pathname, 124 } 125 126 const $pageProperties = document.querySelector('[data-el="page-properties"]') 127 if ($pageProperties) { 128 if ($pageProperties.getAttribute("data-journey-stage")) { 129 properties.contentStage = $pageProperties.getAttribute("data-journey-stage") 130 } 131 132 // In the markup, we have data-intent="Vendor Risk" etc... 133 $pageProperties.querySelectorAll("[class^='intent']").forEach($el => { 134 if ($el.getAttribute("data-intent-breachrisk")) { 135 properties.productIntentBreachRisk = $el.getAttribute("data-intent-breachrisk") 136 } 137 if ($el.getAttribute("data-intent-vendorrisk")) { 138 properties.productIntentVendorRisk = $el.getAttribute("data-intent-vendorrisk") 139 } 140 if ($el.getAttribute("data-intent-userrisk")) { 141 properties.productIntentVendorRisk = $el.getAttribute("data-intent-vendorrisk") 142 } 143 if ($el.getAttribute("data-intent-trustexchange")) { 144 properties.productIntentVendorRisk = $el.getAttribute("data-intent-vendorrisk") 145 } 146 } 147 ) 148 149 analytics.page(pageOverrides) 150 //analytics.track("Content_Viewed", properties) 151 152 } else { 153 analytics.page(pageOverrides) 154 } 155 } 156 } 157 })(); 158 159 function ug_appendScriptForUsercentrics(attr={ 160 'data-usercentrics': '' 161 }, opts={ 162 scriptContent: '' 163 }) { 164 var scriptElement = document.createElement("script"); 165 if (window.ug_usercentrics_on) { 166 scriptElement.type = "text/plain"; 167 scriptElement.setAttribute("data-usercentrics", attr['data-usercentrics']); 168 } 169 if (opts.scriptContent) { 170 scriptElement.textContent = opts.scriptContent; 171 } 172 for (const [key,value] of Object.entries(attr)) { 173 scriptElement.setAttribute(key, value) 174 } 175 document.head.appendChild(scriptElement); 176 } 177</script>
177 178<!-- clearbits -->
179<script> 180 ug_appendScriptForUsercentrics({ 181 'data-usercentrics': 'Clearbit', 182 id: 'clearbit-script', 183 src: 'https://tag.clearbitscripts.com/v1/pk_d41aedf21ada3e0149ba231e594ac35f/tags.js' 184 }) 185</script>
185 186<!-- G2.com -->
187<script> 188 ug_appendScriptForUsercentrics({ 189 'data-usercentrics': 'G2.com', 190 id: 'g2-script' 191 }, { 192 scriptContent: ` 193 (function (c, p, d, u, id, i) { 194 id = ''; // Optional Custom ID for user in your system 195 u = 'https://tracking.g2crowd.com/attribution_tracking/conversions/' + c + '.js?p=' + encodeURI(p) + '&e=' + id; 196 i = document.createElement('script'); 197 i.type = 'application/javascript'; 198 i.async = true; 199 i.src = u; 200 d.getElementsByTagName('head')[0].appendChild(i); 201 }("1006704", document.location.href, document))` 202 }) 203</script>
203 204 205 206<!-- end UC additions --> 207 208<!-- Waits a specified period of time before calling a function -->
209<script> 210 window.waitBeforeCalling = (fn, ms=3000) => (...args) => { 211 window.addEventListener("scroll", () => setTimeout( () => 'requestIdleCallback'in window ? requestIdleCallback( () => fn(...args)) : fn(...args), ms), { 212 once: true 213 }); 214 } 215 ; 216</script>
vendor: 1 bytes, line 216
216
217<script> 218 function loadScript(callback, src) { 219 var script; 220 script = document.createElement('script'); 221 script.onload = callback; 222 script.src = src; 223 document.body.appendChild(script); 224 } 225</script>
225 226<!-- Custom Webflow header scripts --> 227<link rel="preload" href="https://assets.upguard.com/wf/header.js" as="script"/>
228<script src="https://assets.upguard.com/wf/header.js"></script>
228 229<style> 230 body { 231 text-rendering: optimizeLegibility; 232 -webkit-font-smoothing: antialiased; 233 -moz-font-smoothing: antialiased; 234 -o-font-smoothing: antialiased; 235 -moz-osx-font-smoothing: grayscale; 236 } 237</style> 238<!-- mob menu no scroll --> 239<style> 240 .no-scroll { 241 overflow: hidden; 242 } 243</style> 244<style> 245 #shape { 246 -webkit-filter: drop-shadow(24px 48px 16px rgba(64, 70, 104, 0.2)); 247 filter: drop-shadow(24px 48px 16px rgba(64, 70, 104, 0.2)); 248 pointer-events: none; 249 } 250</style> 251<style> 252 ::selection { 253 color: currentColor; 254 background: #E8EEF9; 255 } 256</style> 257<link rel="stylesheet" href="https://assets.upguard.com/apollo-hs-forms.css"> 258<meta name="ahrefs-site-verification" content="6cddbf7c67efe322c864dfb433bd13cd9c5ce14298f88382a2111586ce4c9433"> 259<!-- dynamic filters -->
260<script id="jetboost-script" type="text/javascript"> 261 window.JETBOOST_SITE_ID = "ckcu36rvzeeld078130pdnjt5"; 262 (function(d) { 263 var s = d.createElement("script"); 264 s.src = "https://cdn.jetboost.io/jetboost.js"; 265 s.async = 1; 266 d.getElementsByTagName("head")[0].appendChild(s); 267 } 268 )(document); 269</script>
269 270
271<script> 272 273if(params_uc1q.has("ug_debug_uesercentrics")){ 274 document.addEventListener("DOMContentLoaded", () => { 275 const resetBtn = document.createElement("button"); 276 resetBtn.textContent = "Reset UC"; 277 resetBtn.style = `position: fixed; z-index: 999; top: 0;right: 0; margin: 15px;`; 278 resetBtn.onclick = () => { 279 UC_UI.clearStorage(); 280 analytics.reset() 281 location.reload(); 282 }; 283 document.body.appendChild(resetBtn); 284 __ucCmp.getConsentDetails().then(i => console.log(`settings: ${i.consent.setting.id}, type: ${i.consent.setting.type}`)) 285 }); 286} 287</script>
287 288
289<script>void 0===window.navatticQueue&&(window.navatticQueue=[],window.navattic=new Proxy({},{get:function n(t,u,e){return function(){for(var n=arguments.length,t=Array(n),e=0;e<n;e++)t[e]=arguments[e];return navatticQueue.push({function:u,arguments:t})}}}));</script>
vendor: 1 bytes, line 289
289
290<script async src="https://js.navattic.com/sdk.js?key=pkey_cm34l0cd402yzrs3b9pwhgzju"></script>
290 291 292<!--
292<script src="https://app.optibase.io/script.js" public-api-key="clwps3f3u01s0rt5wkpqi8d9k"></script>
292--> 293
294<script> 295// Unify 296!function(){ 297 if (!window.location.pathname.startsWith("/blog/")) { 298 var e=["identify","page","startAutoPage","stopAutoPage","startAutoIdentify","stopAutoIdentify"];function t(o){return Object.assign([],e.reduce(function(r,n){return r[n]=function(){return o.push([n,[].slice.call(arguments)]),o},r},{}))}window.unify||(window.unify=t(window.unify)),window.unifyBrowser||(window.unifyBrowser=t(window.unifyBrowser));var n=document.createElement("script");n.async=!0,n.setAttribute("src","https://tag.unifyintent.com/v1/DyNnwQhXEmkzwuoYiAFSzd/script.js"),n.setAttribute("data-api-key","wk_6TbocVR9_3DUs6kCuhDxQWrtzSfESr3SEKa5QZpBn"),n.setAttribute("id","unifytag"),(document.body||document.head).appendChild(n) 299 } 300}();</script>
300 301 302
303<script> 304 // Microsoft Advertising UET Javascript tag 305 ug_appendScriptForUsercentrics({ 306 'data-usercentrics': 'Microsoft Advertising Remarketing', 307 id: 'bing-script' 308 }, { 309 scriptContent: `(function (w, d, t, r, u) { var f, n, i; w[u] = w[u] || [], f = function () { var o = { ti: "97226555" }; o.q = w[u], w[u] = new UET(o), w[u].push("pageLoad") }, n = d.createElement(t), n.src = r, n.async = 1, n.onload = n.onreadystatechange = function () { var s = this.readyState; s && s !== "loaded" && s !== "complete" || (f(), n.onload = n.onreadystatechange = null) }, i = d.getElementsByTagName(t)[0], i.parentNode.insertBefore(n, i) })(window, document, "script", "//bat.bing.com/bat.js", "uetq");` 310 }) 311</script>
vendor: 1 bytes, line 311
311
312<script> 313// Microsoft Advertising UET Javascript tag 314function uet_report_conversion(eventName) { window.uetq = window.uetq || []; window.uetq.push('event', eventName, {}); } 315</script>
315 316<!-- Vector -->
317<script> 318 ug_appendScriptForUsercentrics({ 319 'data-usercentrics': 'Vector', 320 id: 'vector-script' 321 }, { 322 scriptContent: `!function(e,r){try{if(e.vector)return void console.log("Vector snippet included more than once.");var t={};t.q=t.q||[];for(var o=["load","identify","on"],n=function(e){return function(){var r=Array.prototype.slice.call(arguments);t.q.push([e,r])}},c=0;c<o.length;c++){var a=o[c];t[a]=n(a)}if(e.vector=t,!t.loaded){var i=r.createElement("script");i.type="text/javascript",i.async=!0,i.src="https://cdn.vector.co/pixel.js";var l=r.getElementsByTagName("script")[0];l.parentNode.insertBefore(i,l),t.loaded=!0}}catch(e){console.error("Error loading Vector:",e)}}(window,document); 323 vector.load("9b68faf6-6b48-4ffa-9b22-4a4bade0c0f4");` 324 }) 325</script>
325 326 327<!-- AISeller (Docket chat widget). Rolled out to a percentage of consenting visitors: each browser draws a bucket once, keeps it in localStorage, and stays in or out across visits. -->
328<script> 329 ug_appendScriptForUsercentrics({ 330 'data-usercentrics': 'Docket', 331 id: 'docket-script' 332 }, { 333 scriptContent: `var docketRolloutPercentage = 10 334 335 window.AISellerSettings = { 336 agent_id: "0aa48313-4fd4-44a5-865e-8825c930320f", 337 } 338 339 function initDocket () { 340 var w = window 341 var ew = w.AISeller 342 if (typeof ew === "function") { 343 ew("update", w.AISellerSettings) 344 } else { 345 var d = document 346 var i = function () { 347 i.q.push(arguments) 348 } 349 i.q = [] 350 i.q.push(["update", w.AISellerSettings]) 351 w.AISeller = i 352 var l = function () { 353 var s = d.createElement("script") 354 s.type = "text/javascript" 355 s.async = true 356 s.src = "https://d33t2173eag6fx.cloudfront.net/script/app/inbound-se-script/ai-seller.js" 357 var x = d.getElementsByTagName("script")[0] 358 x.parentNode.insertBefore(s, x) 359 } 360 if (document.readyState === "complete") { 361 l() 362 } else if (w.attachEvent) { 363 w.attachEvent("onload", l) 364 } else { 365 w.addEventListener("load", l, false) 366 } 367 } 368 } 369 370 function inDocketRollout () { 371 try { 372 var bucket = Number(localStorage.getItem("ug_docket_bucket")) 373 if (!bucket) { 374 bucket = Math.floor(Math.random() * 100) + 1 // 1 to 100 375 localStorage.setItem("ug_docket_bucket", bucket) 376 } 377 return bucket <= docketRolloutPercentage 378 } catch (error) { 379 // localStorage is blocked, so there is no stable bucket. Stay out of the rollout. 380 return false 381 } 382 } 383 384 if (inDocketRollout()) initDocket() 385`}) 386</script>
386 387 388<!-- end:tracking-scripts --> 389<link rel="alternate" type="text/markdown" href="/pricing.md">
389<script type="module" src="/_astro/Layout.astro_astro_type_script_index_0_lang.Dmf9t3zF.js?dpl=6ab4a3cbb36e820008e2ae9c"></script>
389<style>.richtext-excerpt[data-astro-cid-zouxod32]>*:not(.not-prose):first-child{margin-top:0}.richtext-excerpt[data-astro-cid-zouxod32]>*:not(.not-prose):last-child{margin-bottom:0}.richtext-excerpt[data-astro-cid-zouxod32]>p:not(.not-prose){margin-top:var(--spacing-12);margin-bottom:var(--spacing-12)}.richtext-excerpt[data-astro-cid-zouxod32]>h1:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h2:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h3:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h4:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h5:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h6:not(.not-prose){font-size:var(--text-16);line-height:var(--text-16--line-height);color:var(--color-heading);margin-top:var(--spacing-24);margin-bottom:var(--spacing-8)}.richtext-excerpt[data-astro-cid-zouxod32]>p:not(.not-prose) a,.richtext-excerpt[data-astro-cid-zouxod32]>ul:not(.not-prose) a{color:var(--color-heading);text-decoration:underline}.richtext-excerpt[data-astro-cid-zouxod32]>h1+p:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h2+p:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h3+p:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h4+p:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h5+p:not(.not-prose),.richtext-excerpt[data-astro-cid-zouxod32]>h6+p:not(.not-prose){margin-top:0}.richtext-excerpt[data-astro-cid-zouxod32]>ul:not(.not-prose){list-style:none;margin-top:var(--spacing-12);margin-bottom:var(--spacing-12)}.richtext-excerpt[data-astro-cid-zouxod32]>ol:not(.not-prose){margin-top:var(--spacing-12);margin-bottom:var(--spacing-12);padding-left:1.6em}.richtext-excerpt[data-astro-cid-zouxod32]>ul:not(.not-prose) li{position:relative;padding-left:1.6em}.richtext-excerpt[data-astro-cid-zouxod32]>ul:not(.not-prose) li:before{content:"â";position:absolute;margin-top:0;left:0} 390</style> 391<link rel="stylesheet" href="/_astro/global.DcZDXE-n.css?dpl=6ab4a3cbb36e820008e2ae9c"> 392<style>html:has([data-modal][open]){overflow:hidden}[data-modal]{opacity:0;transform:translateY(100%);transition:display .3s,overlay .3s,opacity .3s,transform .3s;transition-behavior:allow-discrete}[data-modal][open]{opacity:1;transform:translateY(0)}@starting-style{[data-modal][open]{opacity:0;transform:translateY(100%)}}[data-modal]::backdrop{background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:display .3s,overlay .3s,opacity .3s;transition-behavior:allow-discrete}[data-modal][open]::backdrop{opacity:1}@starting-style{[data-modal][open]::backdrop{opacity:0}
392}@media(min-width:48rem){[data-modal]{transform:none}[data-modal][data-columns]{width:calc((var(--modal-columns) * 100% - (var(--modal-columns) + 12) * var(--gap)) / 12)}@starting-style{[data-modal][open]{transform:none}}}@media(min-width:62rem){[data-modal][data-columns]{width:calc((var(--modal-columns) * min(88.5rem,calc(100% - 4 * var(--gap))) + (var(--modal-columns) - 12) * var(--gap)) / 12)}}@media(prefers-reduced-motion:reduce){[data-modal],[data-modal]::backdrop{transition-duration:.01ms}[data-modal],[data-modal][open]{transform:none}} 393@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}} 394#pricing-gate-dialog[open] [data-dialog-content]{padding-block:4rem}#pricing-gate-form{margin-top:1.5rem}#pricing-gate-form form fieldset{max-width:30rem;margin-inline:auto}#pricing-gate-form form .hs-input:not([type=checkbox]):not([type=radio]){width:100%}#pricing-gate-form form .hs-form-field>.input{margin-right:0}@media(max-width:768px),(max-height:800px){#pricing-gate-dialog[open] [data-dialog-content]{padding-block:2rem}#pricing-gate-form{margin-top:1rem}}#pricing-gate-form form{height:600px;overflow:hidden;opacity:0;padding:1px;transition:height .5s ease,opacity .5s}#pricing-gate-form form.mounted{height:auto;opacity:1}#pricing-gate-form .hs-submit{justify-content:center}#pricing-gate-form .hs-form-field{margin-bottom:.25rem!important}#pricing-gate-form .hs-form-field input,#pricing-gate-form .hs-form-field select,#pricing-gate-form .hs-form-field textarea{margin:.1875rem 0!important}#pricing-gate-form .loader-pg{width:32px;height:32px;border:3px solid hsl(0 0% 90%);border-top-color:#666;border-radius:50%;margin:2rem auto;animation:loader-pg-spin .8s linear infinite}#pricing-gate-form .pricing-gate-fallback{text-align:center;padding:1.5rem .5rem;color:#4d4d4d;font-size:.875rem;line-height:1.5}#pricing-gate-form .pricing-gate-fallback a{color:inherit;text-decoration:underline}@keyframes loader-pg-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){#pricing-gate-form form{transition:none}#pricing-gate-form .loader-pg{animation:none}} 395.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-old(pricing-tabs-underline),::view-transition-new(pricing-tabs-underline){animation-duration:.22s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}@media(prefers-reduced-motion:reduce){::view-transition-old(pricing-tabs-underline),::view-transition-new(pricing-tabs-underline){animation-duration:0ms}} 396</style>
396<script type="module" src="/_astro/page.D_Wrw9N8.js?dpl=6ab4a3cbb36e820008e2ae9c"></script>
396<style>[data-astro-transition-scope="astro-ncjwhpoc-1"] { view-transition-name: pricing-tabs-underline; }@layer astro { ::view-transition-old(pricing-tabs-underline) { 397 animation-duration: 180ms; 398 animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1); 399 animation-fill-mode: both; 400 animation-name: astroFadeOut; }::view-transition-new(pricing-tabs-underline) { 401 animation-duration: 180ms; 402 animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1); 403 animation-fill-mode: both; 404 animation-name: astroFadeIn; }[data-astro-transition=back]::view-transition-old(pricing-tabs-underline) { 405 animation-duration: 180ms; 406 animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1); 407 animation-fill-mode: both; 408 animation-name: astroFadeOut; }[data-astro-transition=back]::view-transition-new(pricing-tabs-underline) { 409 animation-duration: 180ms; 410 animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1); 411 animation-fill-mode: both; 412 animation-name: astroFadeIn; } }[data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ncjwhpoc-1"], 413 [data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ncjwhpoc-1"] { 414 animation-duration: 180ms; 415 animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1); 416 animation-fill-mode: both; 417 animation-name: astroFadeOut; }[data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ncjwhpoc-1"], 418 [data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ncjwhpoc-1"] { 419 animation-duration: 180ms; 420 animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1); 421 animation-fill-mode: both; 422 animation-name: astroFadeIn; }[data-astro-transition=back][data-astro-transition-fallback="old"] [data-astro-transition-scope="astro-ncjwhpoc-1"], 423 [data-astro-transition=back][data-astro-transition-fallback="old"][data-astro-transition-scope="astro-ncjwhpoc-1"] { 424 animation-duration: 180ms; 425 animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1); 426 animation-fill-mode: both; 427 animation-name: astroFadeOut; }[data-astro-transition=back][data-astro-transition-fallback="new"] [data-astro-transition-scope="astro-ncjwhpoc-1"], 428 [data-astro-transition=back][data-astro-transition-fallback="new"][data-astro-transition-scope="astro-ncjwhpoc-1"] { 429 animation-duration: 180ms; 430 animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1); 431 animation-fill-mode: both; 432 animation-name: astroFadeIn; }</style></head> <body> <div data-astro-transition-persist="astro-tuo6gwqu-2"> <style> 433 /* Scoped marquee banner â no Tailwind, unique prefix banner-wd40 */ 434 435 @keyframes banner-wd40-run { 436 0% { 437 transform: translateX(0); 438 } 439 100% { 440 transform: translateX(-100%); 441 } 442 } 443 444 .banner-wd40 { 445 position: relative; 446 z-index: 2000; 447 overflow: hidden; 448 background-color: var(--banner-wd40-bg); 449 font-size: 0.875rem; 450 line-height: 157.143%; 451 } 452 453 .banner-wd40, 454 .theme-light .banner-wd40, 455 [data-theme="light"] .banner-wd40 { 456 --banner-wd40-bg: #ededed; 457 --banner-wd40-text: inherit; 458 --banner-wd40-text-headings: #0a0a0a; 459 --banner-wd40-divider: #c9c7c7; 460 --banner-wd40-btn-bg: #fff; 461 } 462 .theme-dark .banner-wd40, 463 [data-theme="dark"] .banner-wd40 { 464 --banner-wd40-bg: #252525; 465 --banner-wd40-text: inherit; 466 --banner-wd40-text-headings: #fff; 467 --banner-wd40-divider: #3a3a3a; 468 --banner-wd40-btn-bg: #0a0a0a; 469 } 470 471 .banner-wd40__inner { 472 display: flex; 473 justify-content: flex-start; 474 align-items: center; 475 gap: 0; 476 } 477 478 .banner-wd40__scroller { 479 flex: none; 480 display: flex; 481 gap: 1.5rem; 482 padding-left: 1.5rem; 483 animation: 40s linear infinite banner-wd40-run; 484 } 485 486 .banner-wd40__item { 487 flex: none; 488 display: flex; 489 justify-content: flex-start; 490 align-items: center; 491 gap: 1.5rem; 492 } 493 494 .banner-wd40__pixel { 495 width: 0.375rem; 496 height: 0.375rem; 497 background-color: var(--banner-wd40-divider); 498 flex-shrink: 0; 499 } 500 501 .banner-wd40__link { 502 display: flex; 503 justify-content: flex-start; 504 align-items: center; 505 gap: 1rem; 506 padding-top: 0.5rem; 507 padding-bottom: 0.5rem; 508 color: var(--banner-wd40-text); 509 text-decoration: none; 510 transition: color 0.2s; 511 } 512 513 a.banner-wd40__link:hover, 514 a.banner-wd40__link:focus-visible { 515 color: var(--banner-wd40-text-headings); 516 } 517 518 .banner-wd40__text { 519 white-space: nowrap; 520 } 521 522 .banner-wd40__btn { 523 background-color: var(--banner-wd40-btn-bg); 524 border-radius: 1rem; 525 padding: 0.125rem 0.75rem; 526 font-size: 0.75rem; 527 white-space: nowrap; 528 } 529</style><aside class="banner-wd40" data-component="Top page banner" data-el="topbanners" data-event-cta-location="top_banner" data-e-location="top_banner"> <div class="banner-wd40__inner"> <ul class="banner-wd40__scroller"> <li class="banner-wd40__item" data-live-date="2026-09-23T01:54:00.000Z" data-expiry-date="2026-11-01T01:54:00.000Z"> <div class="banner-wd40__pixel" aria-hidden="true"></div> <a href="/idc" class="banner-wd40__link" data-event="CTA Clicked" data-e
529="CTA Clicked"> <span class="banner-wd40__text">UpGuard was named a Leader in the IDC MarketScape 2026</span> <span class="banner-wd40__btn">Find out more</span> </a> </li><li class="banner-wd40__item" data-live-date="2026-09-06T00:45:00.000Z" data-expiry-date="2026-09-26T00:45:00.000Z"> <div class="banner-wd40__pixel" aria-hidden="true"></div> <a href="https://www.upguard.com/summit/september-2026" class="banner-wd40__link" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="banner-wd40__text">See the new Breach Risk Threat Posture and User Risk Action Center in action</span> <span class="banner-wd40__btn">Watch Summit On-Demand</span> </a> </li><li class="banner-wd40__item" data-live-date="2026-08-08T21:00:00.000Z" data-expiry-date="2099-07-01T21:00:00.000Z"> <div class="banner-wd40__pixel" aria-hidden="true"></div> <a href="/solutions/ai-security" class="banner-wd40__link" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="banner-wd40__text">Your workforce is already using AI. Govern it.</span> <span class="banner-wd40__btn">Explore the AI Security Center</span> </a> </li><li class="banner-wd40__item" data-live-date="2026-07-08T21:00:00.000Z" data-expiry-date="2099-07-08T21:00:00.000Z"> <div class="banner-wd40__pixel" aria-hidden="true"></div> <a href="/tools/ai-policy-generator" class="banner-wd40__link" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="banner-wd40__text">Generate a tailored AI policy in 5 minutes</span> <span class="banner-wd40__btn">Start now</span> </a> </li> </ul> </div> </aside>
529<script>(function(){const pixelsPerSecond = 24; 530 531 ;(() => { 532 // CONFIG 533 const ROOT_SEL = ".banner-wd40" 534 const DATE_ITEMS_SEL = "[data-expiry-date], [data-live-date]" 535 const SCROLLER_PARENT_SEL = ".banner-wd40__inner" 536 const SCROLLER_SEL = ".banner-wd40__scroller" 537 const DATA_EXPIRY_SEL = "data-expiry-date" 538 const DATA_LIVE_SEL = "data-live-date" 539 540 const CLONE_COUNT = 6 541 const PIXELS_PER_SECOND = 542 typeof pixelsPerSecond === "number" ? pixelsPerSecond : 24 543 544 // GET DOM ELEMENTS 545 const root = document.querySelector(ROOT_SEL) 546 if (!(root instanceof HTMLElement)) return 547 548 const dateItems = root.querySelectorAll(DATE_ITEMS_SEL) 549 if (dateItems.length === 0) { 550 root.style.display = "none" 551 return 552 } 553 554 // HIDE ITEMS IF THEY ARE EXPIRED OR NOT LIVE 555 const now = Date.now() 556 dateItems.forEach((el) => { 557 if (!(el instanceof HTMLElement)) return 558 559 const expiryStr = el.getAttribute(DATA_EXPIRY_SEL) 560 if (expiryStr) { 561 const expiryTime = new Date(expiryStr).getTime() 562 if (!Number.isNaN(expiryTime) && now > expiryTime) { 563 el.style.display = "none" 564 return 565 } 566 } 567 568 const liveStr = el.getAttribute(DATA_LIVE_SEL) 569 if (liveStr) { 570 const liveTime = new Date(liveStr).getTime() 571 if (!Number.isNaN(liveTime) && now < liveTime) { 572 el.style.display = "none" 573 } 574 } 575 }) 576 577 const hasVisibleItem = Array.from(dateItems).some( 578 (el) => el instanceof HTMLElement && el.style.display !== "none", 579 ) 580 if (!hasVisibleItem) { 581 root.style.display = "none" 582 return 583 } 584 585 // DUPLICATE SCROLLERS 586 const scroller = root.querySelector(SCROLLER_SEL) 587 const inner = root.querySelector(SCROLLER_PARENT_SEL) 588 if (!scroller || !inner) return 589 590 for (let i = 0; i < CLONE_COUNT; i++) { 591 const clone = scroller.cloneNode(true) 592 clone.setAttribute("aria-hidden", "true") 593 clone 594 .querySelectorAll("a") 595 .forEach((a) => a.setAttribute("tabindex", "-1")) 596 inner.appendChild(clone) 597 } 598 599 // SET SCROLLER ANIMATION 600 const scrollers = inner.querySelectorAll(SCROLLER_SEL) 601 602 function setScrollingSpeed() { 603 const duration = scroller.scrollWidth / PIXELS_PER_SECOND 604 scrollers.forEach((s) => { 605 s.style.animation = `${duration}s linear infinite banner-wd40-run` 606 }) 607 } 608 609 setScrollingSpeed() 610 window.addEventListener("resize", setScrollingSpeed) 611 })() 612})();</script>
612 </div> <div class="contents" data-astro-transition-persist="astro-7budsuu6-3"> <style> 613 /* Reset styles */ 614 :where(.nav-fd76 .nav-fd76__menu-toggle, .nav-fd76 .nav-fd76__item--button) { 615 background: none; 616 border: none; 617 padding: 0; 618 margin: 0; 619 font: inherit; 620 color: inherit; 621 cursor: pointer; 622 text-align: inherit; 623 } 624 .nav-fd76 svg { 625 /* @todo reset SVG styles */ 626 } 627 628 /* Screen is the blurry background that appears when the menu is open */ 629 630 .screen-fd76 { 631 --anim-ease: ease-in-out; 632 --anim-duration: 0.2s; 633 z-index: 1000; 634 position: fixed; 635 inset: 0; 636 pointer-events: none; 637 -webkit-backdrop-filter: blur(0.3125rem); 638 backdrop-filter: blur(0.3125rem); 639 background-color: #0000001a; 640 opacity: 0; 641 transition: 642 opacity var(--anim-duration) var(--anim-ease), 643 height var(--anim-duration) var(--anim-ease); 644 } 645 .screen-fd76.is-active { 646 opacity: 1; 647 pointer-events: auto; 648 } 649 650 /* Theme styles */ 651 .nav-fd76 { 652 --gap: 1.25rem; 653 --anim-ease: ease-in-out; 654 --anim-duration: 0.2s; 655 --container-max-width: 88.5rem; 656 --container-width: calc(100% - 2 * var(--gap)); 657 658 /* Theme variables */ 659 --background: #fff; 660 --layer-soft: #f9f9f9; 661 --layer-strong: #ededed; 662 --text-headings: #0a0a0a; 663 --text-body: #6b6b6b; 664 --divider: #c9c7c7; 665 } 666 [data-theme="dark"] .nav-fd76, 667 .theme-dark .nav-fd76 { 668 /* Theme variables */ 669 --background: #0a0a0a; 670 --layer-soft: #1a1a1a; 671 --layer-strong: #252525; 672 --text-headings: #fff; 673 --text-body: #bababa; 674 --divider: #3a3a3a; 675 } 676 @media (min-width: 480px) { 677 .nav-fd76 { 678 --gap: clamp(0.969rem, -0rem + 3.229vw, 1.55rem); 679 } 680 } 681 @media (min-width: 768px) { 682 .nav-fd76 { 683 --gap: clamp(1.55rem, 0rem + 3.229vw, 2rem); 684 } 685 } 686 @media (min-width: 992px) { 687 .nav-fd76 { 688 --gap: clamp(0.984rem, 0.001rem + 1.587vw, 1.5rem); 689 --container-width: calc(100% - 4 * var(--gap)); 690 } 691 } 692 693 /* Nav styles */ 694 .nav-fd76 { 695 font-size: 0.875rem; 696 line-height: 1.5rem; 697 color: var(--text-body); 698 position: relative; 699 top: 0; 700 z-index: 1100; 701 background-color: var(--background); 702 } 703 704 .nav-fd76--bg-soft, 705 .nav-fd76--bg-soft .nav-fd76__bd { 706 background-color: var(--layer-soft); 707 } 708 709 .nav-fd76__bd { 710 position: relative; 711 } 712 713 .nav-fd76__bd-inner { 714 margin-left: auto; 715 margin-right: auto; 716 max-width: var(--container-max-width); 717 width: var(--container-width); 718 min-height: 2.4375rem; /* Prevent contents movigin vertically while loading */ 719 } 720 721 .nav-fd76__brand { 722 display: block; 723 max-width: 9.375rem; 724 color: var(--text-headings); 725 } 726 .nav-fd76__brand-text { 727 position: absolute !important; 728 height: 1px; 729 width: 1px; 730 overflow: hidden; 731 clip: rect(1px, 1px, 1px, 1px); 732 white-space: nowrap; 733 border: 0; 734 padding: 0; 735 margin: -1px; 736 } 737 .nav-fd76__item svg { 738 transition: transform var(--anim-duration) var(--anim-ease); 739 } 740 .nav-fd76__item[aria-expanded="true"] svg { 741 transform: rotate(180deg); 742 } 743 744 /* Mini components */ 745 746 .nav-fd76__cta--solid { 747 background-color: var(--layer-strong); 748 color: var(--text-headings); 749 border-radius: 999px; 750 padding: 0.375rem 0.875rem; 751 transition: 752 background-color 0.2s, 753 color 0.2s; 754 } 755 .nav-fd76__cta--solid:hover, 756 .nav-fd76__cta--solid:focus-visible { 757 color: #fff; 758 background-color: #3a3a3a; 759 } 760 .nav-fd76__cta--text { 761 color: var(--text-headings); 762 border-radius: 999px; 763 padding: 0.375rem 0.875rem; 764 transition: 765 background-color 0.2s, 766 color 0.2s; 767 text-decoration: underline; 768 } 769 .nav-fd76__cta--text:hover, 770 .nav-fd76__cta--text:focus-visible { 771 background-color: var(--layer-strong); 772 } 773 774 /* Desktop styles */ 775 @media screen and (min-width: 1200px) { 776 .nav-fd76 { 777 height: 4.5rem; 778 } 779 .nav-fd76--sticky { 780 position: sticky; 781 } 782 783 .nav-fd76__bd { 784 height: 4.5rem; 785 padding-top: 1.1rem; 786 overflow: hidden; 787 background-color: var(--background); 788 box-shadow: 2px 12px 15px -3px transparent;
789 /* Transition height to match height of active submenu, clipping content */ 790 transition: 791 height var(--anim-duration) var(--anim-ease), 792 box-shadow var(--anim-duration) var(--anim-ease); 793 } 794 .nav-fd76__bd.has-active-submenu { 795 box-shadow: 2px 12px 15px -3px transparent; 796 } 797 798 .nav-fd76__bd-inner { 799 display: flex; 800 justify-content: space-between; 801 align-items: center; 802 gap: 1rem; 803 } 804 .nav-fd76__menu { 805 display: block !important; /* Override [hidden] to prevent flash of missing styles while JS inits */ 806 flex-grow: 1; 807 } 808 .nav-fd76__menu-toggle { 809 display: none; 810 } 811 .nav-fd76__menu-inner { 812 display: flex; 813 justify-content: flex-end; 814 align-items: center; 815 } 816 .nav-fd76__actions { 817 display: flex; 818 justify-content: flex-end; 819 align-items: center; 820 gap: 0.25rem; 821 padding-left: 0.5rem; 822 } 823 824 .nav-fd76__submenu { 825 position: absolute; 826 top: 4.5rem; /* nav height */ 827 left: 0; 828 width: 100%; 829 display: block; 830 } 831 832 .nav-fd76__submenu--inner { 833 margin-left: auto; 834 margin-right: auto; 835 max-width: var(--container-max-width); 836 width: var(--container-width); 837 } 838 839 .nav-fd76__items { 840 display: flex; 841 } 842 .nav-fd76__item { 843 background: none; 844 padding: 0.46875rem 0.875rem; 845 display: flex; 846 align-items: center; 847 gap: 0.5rem; 848 border-radius: 999px; 849 transition: 850 color var(--anim-duration) var(--anim-ease), 851 background-color var(--anim-duration) var(--anim-ease); 852 } 853 .nav-fd76__item:hover, 854 .nav-fd76__item:focus-visible { 855 color: var(--text-headings); 856 } 857 .nav-fd76__item[aria-expanded="true"] { 858 color: var(--text-headings); 859 background-color: var(--layer-strong); 860 } 861 } 862 863 /* Mobile styles */ 864 @media screen and (max-width: 1199px) { 865 .nav-fd76__actions { 866 padding-top: 2rem; 867 } 868 .nav-fd76__cta--text { 869 background-color: var(--layer-strong); 870 color: var(--text-headings); 871 border-radius: 999px; 872 padding: 0.375rem 0.875rem; 873 text-decoration: none; 874 text-align: center; 875 transition: opacity var(--anim-duration) var(--anim-ease); 876 } 877 .nav-fd76__cta--text:hover, 878 .nav-fd76__cta--text:focus-visible { 879 opacity: 0.75; 880 } 881 .nav-fd76__cta--solid { 882 background-color: var(--text-headings); 883 color: var(--background); 884 text-align: center; 885 } 886 887 .nav-fd76 { 888 --nav-bar-height: 3.75rem; 889 } 890 .nav-fd76__brand { 891 max-width: 7.5rem; 892 } 893 .nav-fd76__menu { 894 position: absolute; 895 top: 100%; 896 left: 0; 897 width: 100%; 898 background-color: var(--background); 899 overflow: hidden; 900 } 901 .nav-fd76__menu-inner { 902 margin-left: auto; 903 margin-right: auto; 904 max-width: var(--container-max-width); 905 width: var(--container-width); 906 padding-bottom: 2rem; 907 } 908 .nav-fd76__bd-inner { 909 height: var(--nav-bar-height); 910 display: flex; 911 justify-content: space-between; 912 align-items: center; 913 } 914 .nav-fd76__menu-toggle { 915 padding: 1.4rem 0 1.4rem 1.4rem; 916 } 917 .nav-fd76__items { 918 display: flex; 919 flex-direction: column; 920 } 921 .nav-fd76__actions { 922 display: flex; 923 flex-direction: column; 924 gap: 1rem; 925 } 926 .nav-fd76__item { 927 display: flex; 928 justify-content: space-between; 929 align-items: center; 930 padding: 1rem 0; 931 border-bottom: 1px solid var(--divider); 932 } 933 .nav-fd76__submenu { 934 overflow: hidden; 935 } 936 } 937</style><div class="screen-fd76" data-component="interop-nav-screen"></div>
937 <nav data-component="interop-nav" class="nav-fd76 nav-fd76--sticky " data-event-cta-location="main_nav" data-e-location="main_nav"> <div class="nav-fd76__bd"> <div class="nav-fd76__bd-inner"> <a class="nav-fd76__brand" href="/" data-event="CTA Clicked" data-e="CTA Clicked"> <svg aria-hidden="true" style="display:block; width:100%; height:auto;" xmlns="http://www.w3.org/2000/svg" width="150" height="32" fill="none" viewBox="0 0 150 32"> <path fill="currentColor" d="M58.3 4h3v13.2a6.8 6.8 0 0 1-3.8 6.2 9 9 0 0 1-4.1 1 9 9 0 0 1-4.2-1 6.8 6.8 0 0 1-3.8-6.2V4h3v13c0 .8.3 1.6.7 2.3.4.7 1 1.3 1.7 1.7.7.4 1.6.6 2.6.6s1.9-.2 2.6-.6c.8-.4 1.3-1 1.7-1.7.4-.7.6-1.5.6-2.4V4ZM64 29.6V9h2.8v2.5h.2l.8-1.1c.3-.4.8-.8 1.3-1.1.6-.3 1.3-.5 2.3-.5a5.8 5.8 0 0 1 5.4 3.6c.6 1.1.8 2.5.8 4.2 0 1.6-.2 3-.8 4.1a5.8 5.8 0 0 1-5.5 3.6c-.8 0-1.6-.1-2.1-.5-.6-.3-1-.6-1.4-1a9 9 0 0 1-.8-1.1H67v8h-3Zm6.7-7.8c1 0 1.6-.2 2.2-.7.6-.4 1-1 1.3-1.9.3-.8.5-1.7.5-2.7 0-1-.2-1.9-.4-2.6-.3-.8-.8-1.5-1.4-2-.5-.4-1.3-.6-2.2-.6-.8 0-1.5.2-2.1.7-.6.4-1 1-1.3 1.8-.3.8-.5 1.7-.5 2.7 0 1 .2 2 .5 2.8.3.8.7 1.4 1.3 1.9.6.4 1.3.6 2.1.6ZM88 24.3a8.5 8.5 0 0 1-8-4.8c-.6-1.5-1-3.4-1-5.5 0-2 .4-4 1.1-5.5A8.6 8.6 0 0 1 83.3 5a9.3 9.3 0 0 1 7.6-.8 8 8 0 0 1 4.4 3.5c.4.8.8 1.7 1 2.6h-3.1l-.8-1.6a5 5 0 0 0-2.6-2 6 6 0 0 0-4.9.7 6 6 0 0 0-2.1 2.5A9.6 9.6 0 0 0 82 14c0 1.6.2 3 .8 4.1.5 1.1 1.2 2 2.1 2.6 1 .5 2 .8 3.2.8 1 0 2-.2 2.8-.6.8-.5 1.4-1.1 1.9-2 .4-.7.7-1.7.7-2.8l.8.2h-5.8v-2.5h7.9V16c0 1.7-.4 3.1-1 4.3a7.3 7.3 0 0 1-3 2.9 9 9 0 0 1-4.3 1ZM108 17.8V9h3v15H108v-2.6h-.2a4.7 4.7 0 0 1-4.5 2.8 5 5 0 0 1-2.5-.6c-.7-.4-1.3-1-1.7-2a7 7 0 0 1-.7-3V9h3v9.2c0 1 .2 1.8.8 2.4.6.7 1.3 1 2.2 1a3.6 3.6 0 0 0 3-1.7c.4-.5.6-1.2.6-2ZM117.7 24.3c-1 0-1.8-.1-2.6-.5-.8-.3-1.4-.9-1.8-1.5-.5-.7-.7-1.6-.7-2.5 0-.9.2-1.6.5-2.1.3-.6.7-1 1.3-1.3.6-.3 1.2-.6 1.9-.7l2-.4a114 114 0 0 0 3.5-.6c.2-.2.3-.4.3-.8 0-.9-.2-1.5-.7-2-.5-.5-1.2-.7-2.1-.7-1 0-1.8.2-2.3.6-.6.5-1 1-1.2 1.5l-2.8-.7c.4-.9.9-1.6 1.5-2.2a6 6 0 0 1 2.2-1.2A8.5 8.5 0 0 1 121 9c.7.2 1.3.4 2 .8.5.4 1 .9 1.4 1.6.4.7.6 1.6.6 2.7v10h-2.9V22h-.1a4.5 4.5 0 0 1-2.3 2c-.6.2-1.3.3-2.1.3Zm.6-2.3c.8 0 1.5-.2 2-.5.6-.3 1-.7 1.4-1.2.3-.5.4-1.1.4-1.7v-2c0 .2-.3.3-.6.4a38.2 38.2 0 0 1-3 .5 8 8 0 0 0-1.5.3c-.5.2-.8.4-1.1.8-.3.3-.5.7-.5 1.2 0 .7.3 1.3.9 1.7.5.3 1.2.5 2 .5ZM127.5 24V9h2.8v2.4h.1a4.1 4.1 0 0 1 3.8-2.6 12 12 0 0 1 1.3 0v2.9l-.7-.2h-.9c-.
9376 0-1.3.1-1.8.4-.5.3-1 .7-1.3 1.2-.3.5-.4 1.1-.4 1.8V24h-3ZM142 24.3a5.8 5.8 0 0 1-5.6-3.6 9.8 9.8 0 0 1-.8-4.1c0-1.7.3-3 .9-4.2.5-1.2 1.3-2 2.2-2.7 1-.6 2-.9 3.2-.9 1 0 1.7.2 2.3.5.6.3 1 .7 1.3 1 .3.5.6.8.7 1.2h.2V4h3v20h-3v-2.3h-.2l-.7 1c-.3.5-.8.8-1.4 1.1-.5.4-1.3.5-2.2.5Zm.6-2.5c.8 0 1.5-.2 2-.6.7-.5 1.1-1.1 1.4-2 .3-.7.5-1.6.5-2.7 0-1-.2-2-.5-2.7a4 4 0 0 0-1.3-1.8c-.6-.5-1.3-.7-2.1-.7-.9 0-1.7.2-2.2.7-.6.4-1 1-1.3 1.9a7.8 7.8 0 0 0 0 5.4c.2.7.7 1.4 1.3 1.8.6.5 1.3.7 2.2.7ZM8 8V0H0v24h8V8ZM24 0v24h8V0h-8ZM8 24v8h16v-8H8Z"></path> </svg> <span class="nav-fd76__brand-text">UpGuard</span> </a> <button aria-controls="upguard-menu" aria-expanded="false" type="button" class="nav-fd76__menu-toggle" aria-label="Menu"> <svg aria-hidden="true" style="width:1.25rem; height:0.9375rem; display:block" width="20" height="15" viewBox="0 0 20 15" fill="none"> 938<rect width="20" height="1" fill="currentColor"></rect> 939<rect y="14" width="20" height="1" fill="currentColor"></rect> 940<rect y="7" width="20" height="1" fill="currentColor"></rect> 941</svg> </button> <div id="upguard-menu" hidden="until-found" class="nav-fd76__menu"> <div class="nav-fd76__menu-inner"> <div class="nav-fd76__items"> <button type="button" aria-controls="#submenu-platform" class="nav-fd76__item nav-fd76__item--button nav-fd76__item--platform"> Platform <svg aria-hidden="true" width="8" height="5" viewBox="0 0 8 5" fill="none"> 942 <path d="M7 1L4 4L1 1" stroke="currentColor" stroke-width="1.2" stroke-linecap="square" /> 943</svg> </button> <div class="nav-fd76__submenu nav-fd76__item--platform" hidden="until-found" id="submenu-platform"> <div class="nav-fd76__submenu--inner"> <div class="platform-pv4k" data-event-cta-location="main_nav_submenu_platform" data-e-location="main_nav_submenu_platform"> <div class="platform-pv4k__item"> <div class="platform-pv4k__header"> <div class="platform-pv4k__name"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 944 <g fill="currentColor"> 945 <path d="m14.9311 18.9999h3.9769v-4h-3.9769-3.977v4z"></path> 946 <path d="m6.97697 11h-3.97697v4h3.97697 3.97693v-4z"></path> 947 <path d="m6.97697 3h-3.97697v3.99999h3.97697 3.97693v-3.99999z"></path> 948 <path d="m18.908 11v-4.00004h-3.9769-3.977v4.00004h3.977z"></path> 949 </g> 950</svg> Vendor Risk </div> <p class="platform-pv4k__description">Take control of third-party vendor risk at AI speed.</p> <a data-event="CTA Clicked" data-e="CTA Clicked" class="platform-pv4k__learn-more" href="/product/vendor-risk"> 951Learn more 952<svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 953 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 954</svg> </a> </div> <ul class="platform-pv4k__capabilities"> <li> <a class="ipx" href="/product/vendor-risk/ai" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">AI-powered TPRM</span> </span> </a> <style> 955 .ipx { 956 --ipx-offset: 1.125rem; 957 display: inline-block; 958 position: relative; 959 padding-right: var(--ipx-offset); 960 color: var(--text-body); 961 transition: color 0.2s ease; 962 cursor: pointer; 963 } 964 965 .ipx:hover, 966 .ipx:focus-visible { 967 color: var(--text-headings); 968 } 969 970 .ipx__text { 971 display: inline-block; 972 transition: transform 0.2s ease; 973 } 974 975 .ipx__text::before { 976 content: ""; 977 position: absolute; 978 left: calc(-1 * var(--ipx-offset)); 979 top: 50%; 980 width: 0.625rem; 981 height: 0.625rem; 982 background-color: currentColor; 983 opacity: 0; 984 pointer-events: none; 985 transform: translateY(-50%); 986 transition: opacity 0.2s ease; 987 } 988 989 .ipx:hover .ipx__text, 990 .ipx:focus-visible .ipx__text { 991 transform: translateX(var(--ipx-offset)); 992 } 993 994 .ipx:hover .ipx__text::before, 995 .ipx:focus-visible .ipx__text::before { 996 opacity: 1; 997 } 998 999 .ipx__label { 1000 font-size: 0.875rem; 1001 line-height: 1.75rem; 1002 } 1003</style> </li><li> <a class="ipx" href="/product/vendor-risk/third-party-risk-assessments" data-event="CTA Clicked" data-e
1003="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Vendor Risk Assessments</span> </span> </a> <style> 1004 .ipx { 1005 --ipx-offset: 1.125rem; 1006 display: inline-block; 1007 position: relative; 1008 padding-right: var(--ipx-offset); 1009 color: var(--text-body); 1010 transition: color 0.2s ease; 1011 cursor: pointer; 1012 } 1013 1014 .ipx:hover, 1015 .ipx:focus-visible { 1016 color: var(--text-headings); 1017 } 1018 1019 .ipx__text { 1020 display: inline-block; 1021 transition: transform 0.2s ease; 1022 } 1023 1024 .ipx__text::before { 1025 content: ""; 1026 position: absolute; 1027 left: calc(-1 * var(--ipx-offset)); 1028 top: 50%; 1029 width: 0.625rem; 1030 height: 0.625rem; 1031 background-color: currentColor; 1032 opacity: 0; 1033 pointer-events: none; 1034 transform: translateY(-50%); 1035 transition: opacity 0.2s ease; 1036 } 1037 1038 .ipx:hover .ipx__text, 1039 .ipx:focus-visible .ipx__text { 1040 transform: translateX(var(--ipx-offset)); 1041 } 1042 1043 .ipx:hover .ipx__text::before, 1044 .ipx:focus-visible .ipx__text::before { 1045 opacity: 1; 1046 } 1047 1048 .ipx__label { 1049 font-size: 0.875rem; 1050 line-height: 1.75rem; 1051 } 1052</style> </li><li> <a class="ipx" href="/product/vendor-risk/vendor-discovery-onboarding" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Vendor Discovery & Onboarding</span> </span> </a> <style> 1053 .ipx { 1054 --ipx-offset: 1.125rem; 1055 display: inline-block; 1056 position: relative; 1057 padding-right: var(--ipx-offset); 1058 color: var(--text-body); 1059 transition: color 0.2s ease; 1060 cursor: pointer; 1061 } 1062 1063 .ipx:hover, 1064 .ipx:focus-visible { 1065 color: var(--text-headings); 1066 } 1067 1068 .ipx__text { 1069 display: inline-block; 1070 transition: transform 0.2s ease; 1071 } 1072 1073 .ipx__text::before { 1074 content: ""; 1075 position: absolute; 1076 left: calc(-1 * var(--ipx-offset)); 1077 top: 50%; 1078 width: 0.625rem; 1079 height: 0.625rem; 1080 background-color: currentColor; 1081 opacity: 0; 1082 pointer-events: none; 1083 transform: translateY(-50%); 1084 transition: opacity 0.2s ease; 1085 } 1086 1087 .ipx:hover .ipx__text, 1088 .ipx:focus-visible .ipx__text { 1089 transform: translateX(var(--ipx-offset)); 1090 } 1091 1092 .ipx:hover .ipx__text::before, 1093 .ipx:focus-visible .ipx__text::before { 1094 opacity: 1; 1095 } 1096 1097 .ipx__label { 1098 font-size: 0.875rem; 1099 line-height: 1.75rem; 1100 } 1101</style> </li><li> <a class="ipx" href="/product/vendor-risk/questionnaire-management" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Security Questionnaire Automation</span> </span> </a> <style> 1102 .ipx { 1103 --ipx-offset: 1.125rem; 1104 display: inline-block; 1105 position: relative; 1106 padding-right: var(--ipx-offset); 1107 color: var(--text-body); 1108 transition: color 0.2s ease; 1109 cursor: pointer; 1110 } 1111 1112 .ipx:hover, 1113 .ipx:focus-visible { 1114 color: var(--text-headings); 1115 } 1116 1117 .ipx__text { 1118 display: inline-block; 1119 transition: transform 0.2s ease; 1120 } 1121 1122 .ipx__text::before { 1123 content: ""; 1124 position: absolute; 1125 left: calc(-1 * var(--ipx-offset)); 1126 top: 50%; 1127 width: 0.625rem; 1128 height: 0.625rem; 1129 background-color: currentColor; 1130 opacity: 0; 1131 pointer-events: none; 1132 transform: translateY(-50%); 1133 transition: opacity 0.2s ease; 1134 } 1135 1136 .ipx:hover .ipx__text, 1137 .ipx:focus-visible .ipx__text { 1138 transform: translateX(var(--ipx-offset)); 1139 } 1140 1141 .ipx:hover .ipx__text::before, 1142 .ipx:focus-visible .ipx__text::before { 1143 opacity: 1; 1144 } 1145 1146 .ipx__label { 1147 font-size: 0.875rem; 1148 line-height: 1.75rem; 1149 } 1150</style> </li><li> <a class="ipx" href="/product/vendor-risk/risk-remediation" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Remediation & Exceptions</span> </span> </a> <style> 1151 .ipx { 1152 --ipx-offset: 1.125rem; 1153 display: inline-block; 1154 position: relative; 1155 padding-right: var(--ipx-offset); 1156 color: var(--text-body); 1157 transition: color 0.2s ease; 1158 cursor: pointer; 1159 } 1160 1161 .ipx:hover, 1162 .ipx:focus-visible { 1163 color: var(--text-headings); 1164 } 1165 1166 .ipx__text { 1167 display: inline-block; 1168 transition: transform 0.2s ease; 1169 } 1170 1171 .ipx__text::before { 1172 content: ""; 1173 position: absolute; 1174 left: calc(-1 * var(--ipx-offset)); 1175 top: 50%; 1176 width: 0.625rem; 1177 height: 0.625rem; 1178 background-color: currentColor; 1179 opacity: 0; 1180 pointer-events: none; 1181 transform: translateY(-50%); 1182 transition: opacity 0.2s ease; 1183 } 1184 1185 .ipx:hover .ipx__text, 1186 .ipx:focus-visible .ipx__text { 1187 transform: translateX(var(--ipx-offset)); 1188 } 1189 1190 .ipx:hover .ipx__text::before, 1191 .ipx:focus-visible .ipx__text::before { 1192 opacity: 1; 1193 } 1194 1195 .ipx__label { 1196 font-size: 0.875rem; 1197 line-height: 1.75rem; 1198 } 1199</style> </li><li> <a class="ipx" href="/product/vendor-risk/continuous-monitoring" data-event="CTA Clicked" data-e
1199="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Continuous Monitoring</span> </span> </a> <style> 1200 .ipx { 1201 --ipx-offset: 1.125rem; 1202 display: inline-block; 1203 position: relative; 1204 padding-right: var(--ipx-offset); 1205 color: var(--text-body); 1206 transition: color 0.2s ease; 1207 cursor: pointer; 1208 } 1209 1210 .ipx:hover, 1211 .ipx:focus-visible { 1212 color: var(--text-headings); 1213 } 1214 1215 .ipx__text { 1216 display: inline-block; 1217 transition: transform 0.2s ease; 1218 } 1219 1220 .ipx__text::before { 1221 content: ""; 1222 position: absolute; 1223 left: calc(-1 * var(--ipx-offset)); 1224 top: 50%; 1225 width: 0.625rem; 1226 height: 0.625rem; 1227 background-color: currentColor; 1228 opacity: 0; 1229 pointer-events: none; 1230 transform: translateY(-50%); 1231 transition: opacity 0.2s ease; 1232 } 1233 1234 .ipx:hover .ipx__text, 1235 .ipx:focus-visible .ipx__text { 1236 transform: translateX(var(--ipx-offset)); 1237 } 1238 1239 .ipx:hover .ipx__text::before, 1240 .ipx:focus-visible .ipx__text::before { 1241 opacity: 1; 1242 } 1243 1244 .ipx__label { 1245 font-size: 0.875rem; 1246 line-height: 1.75rem; 1247 } 1248</style> </li><li> <a class="ipx" href="/product/vendor-risk/risk-reporting" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Reporting & Program Oversight</span> </span> </a> <style> 1249 .ipx { 1250 --ipx-offset: 1.125rem; 1251 display: inline-block; 1252 position: relative; 1253 padding-right: var(--ipx-offset); 1254 color: var(--text-body); 1255 transition: color 0.2s ease; 1256 cursor: pointer; 1257 } 1258 1259 .ipx:hover, 1260 .ipx:focus-visible { 1261 color: var(--text-headings); 1262 } 1263 1264 .ipx__text { 1265 display: inline-block; 1266 transition: transform 0.2s ease; 1267 } 1268 1269 .ipx__text::before { 1270 content: ""; 1271 position: absolute; 1272 left: calc(-1 * var(--ipx-offset)); 1273 top: 50%; 1274 width: 0.625rem; 1275 height: 0.625rem; 1276 background-color: currentColor; 1277 opacity: 0; 1278 pointer-events: none; 1279 transform: translateY(-50%); 1280 transition: opacity 0.2s ease; 1281 } 1282 1283 .ipx:hover .ipx__text, 1284 .ipx:focus-visible .ipx__text { 1285 transform: translateX(var(--ipx-offset)); 1286 } 1287 1288 .ipx:hover .ipx__text::before, 1289 .ipx:focus-visible .ipx__text::before { 1290 opacity: 1; 1291 } 1292 1293 .ipx__label { 1294 font-size: 0.875rem; 1295 line-height: 1.75rem; 1296 } 1297</style> </li> </ul> </div><div class="platform-pv4k__item"> <div class="platform-pv4k__header"> <div class="platform-pv4k__name"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 1298 <g fill="currentColor"> 1299 <path d="m7 3h-4v3.99999h4z"></path> 1300 <path d="m11 7.00002h-4v3.99998h4z"></path> 1301 <path d="m7 11h-4v4h4z"></path> 1302 <path d="m15 3.00002h-4v3.99999h4z"></path> 1303 <path d="m15 7.00002v3.99998 4h-4-4v4h4 4 4v-4-4-3.99998z"></path> 1304 </g> 1305</svg> Breach Risk </div> <p class="platform-pv4k__description">Monitor your attack surface and AI threats before you get compromised.</p> <a data-event="CTA Clicked" data-e="CTA Clicked" class="platform-pv4k__learn-more" href="/product/breach-risk"> 1306Learn more 1307<svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 1308 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 1309</svg> </a> </div> <ul class="platform-pv4k__capabilities"> <li> <a class="ipx" href="/product/breach-risk/threat-monitoring" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">AI-powered Threat Monitoring</span> </span> </a> <style> 1310 .ipx { 1311 --ipx-offset: 1.125rem; 1312 display: inline-block; 1313 position: relative; 1314 padding-right: var(--ipx-offset); 1315 color: var(--text-body); 1316 transition: color 0.2s ease; 1317 cursor: pointer; 1318 } 1319 1320 .ipx:hover, 1321 .ipx:focus-visible { 1322 color: var(--text-headings); 1323 } 1324 1325 .ipx__text { 1326 display: inline-block; 1327 transition: transform 0.2s ease; 1328 } 1329 1330 .ipx__text::before { 1331 content: ""; 1332 position: absolute; 1333 left: calc(-1 * var(--ipx-offset)); 1334 top: 50%; 1335 width: 0.625rem; 1336 height: 0.625rem; 1337 background-color: currentColor; 1338 opacity: 0; 1339 pointer-events: none; 1340 transform: translateY(-50%); 1341 transition: opacity 0.2s ease; 1342 } 1343 1344 .ipx:hover .ipx__text, 1345 .ipx:focus-visible .ipx__text { 1346 transform: translateX(var(--ipx-offset)); 1347 } 1348 1349 .ipx:hover .ipx__text::before, 1350 .ipx:focus-visible .ipx__text::before { 1351 opacity: 1; 1352 } 1353 1354 .ipx__label { 1355 font-size: 0.875rem; 1356 line-height: 1.75rem; 1357 } 1358</style> </li><li> <a class="ipx" href="/product/breach-risk/attack-surface-management" data-event="CTA Clicked" data-e
1358="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Attack Surface Management</span> </span> </a> <style> 1359 .ipx { 1360 --ipx-offset: 1.125rem; 1361 display: inline-block; 1362 position: relative; 1363 padding-right: var(--ipx-offset); 1364 color: var(--text-body); 1365 transition: color 0.2s ease; 1366 cursor: pointer; 1367 } 1368 1369 .ipx:hover, 1370 .ipx:focus-visible { 1371 color: var(--text-headings); 1372 } 1373 1374 .ipx__text { 1375 display: inline-block; 1376 transition: transform 0.2s ease; 1377 } 1378 1379 .ipx__text::before { 1380 content: ""; 1381 position: absolute; 1382 left: calc(-1 * var(--ipx-offset)); 1383 top: 50%; 1384 width: 0.625rem; 1385 height: 0.625rem; 1386 background-color: currentColor; 1387 opacity: 0; 1388 pointer-events: none; 1389 transform: translateY(-50%); 1390 transition: opacity 0.2s ease; 1391 } 1392 1393 .ipx:hover .ipx__text, 1394 .ipx:focus-visible .ipx__text { 1395 transform: translateX(var(--ipx-offset)); 1396 } 1397 1398 .ipx:hover .ipx__text::before, 1399 .ipx:focus-visible .ipx__text::before { 1400 opacity: 1; 1401 } 1402 1403 .ipx__label { 1404 font-size: 0.875rem; 1405 line-height: 1.75rem; 1406 } 1407</style> </li><li> <a class="ipx" href="/product/breach-risk/brand-protection" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Brand Protection</span> </span> </a> <style> 1408 .ipx { 1409 --ipx-offset: 1.125rem; 1410 display: inline-block; 1411 position: relative; 1412 padding-right: var(--ipx-offset); 1413 color: var(--text-body); 1414 transition: color 0.2s ease; 1415 cursor: pointer; 1416 } 1417 1418 .ipx:hover, 1419 .ipx:focus-visible { 1420 color: var(--text-headings); 1421 } 1422 1423 .ipx__text { 1424 display: inline-block; 1425 transition: transform 0.2s ease; 1426 } 1427 1428 .ipx__text::before { 1429 content: ""; 1430 position: absolute; 1431 left: calc(-1 * var(--ipx-offset)); 1432 top: 50%; 1433 width: 0.625rem; 1434 height: 0.625rem; 1435 background-color: currentColor; 1436 opacity: 0; 1437 pointer-events: none; 1438 transform: translateY(-50%); 1439 transition: opacity 0.2s ease; 1440 } 1441 1442 .ipx:hover .ipx__text, 1443 .ipx:focus-visible .ipx__text { 1444 transform: translateX(var(--ipx-offset)); 1445 } 1446 1447 .ipx:hover .ipx__text::before, 1448 .ipx:focus-visible .ipx__text::before { 1449 opacity: 1; 1450 } 1451 1452 .ipx__label { 1453 font-size: 0.875rem; 1454 line-height: 1.75rem; 1455 } 1456</style> </li> </ul> </div><div class="platform-pv4k__item"> <div class="platform-pv4k__header"> <div class="platform-pv4k__name"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 1457 <g fill="currentColor"> 1458 <path d="m14.9653 11v-3.99999-3.99999h-3.9885-3.98852v3.99999 3.99999h3.98852z"></path> 1459 <path d="m10.9771 15h-3.98857-3.98853v4h3.98853 3.98857 3.9885 3.9885v-4h-3.9885z"></path> 1460 </g> 1461</svg> User Risk </div> <p class="platform-pv4k__description">Surface the shadow AI and human risk hiding inside your workforce.</p> <a data-event="CTA Clicked" data-e="CTA Clicked" class="platform-pv4k__learn-more" href="/product/user-risk"> 1462Learn more 1463<svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 1464 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 1465</svg> </a> </div> <ul class="platform-pv4k__capabilities"> <li> <a class="ipx" href="/product/user-risk/shadow-ai-monitoring" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Shadow AI Monitoring</span> </span> </a> <style> 1466 .ipx { 1467 --ipx-offset: 1.125rem; 1468 display: inline-block; 1469 position: relative; 1470 padding-right: var(--ipx-offset); 1471 color: var(--text-body); 1472 transition: color 0.2s ease; 1473 cursor: pointer; 1474 } 1475 1476 .ipx:hover, 1477 .ipx:focus-visible { 1478 color: var(--text-headings); 1479 } 1480 1481 .ipx__text { 1482 display: inline-block; 1483 transition: transform 0.2s ease; 1484 } 1485 1486 .ipx__text::before { 1487 content: ""; 1488 position: absolute; 1489 left: calc(-1 * var(--ipx-offset)); 1490 top: 50%; 1491 width: 0.625rem; 1492 height: 0.625rem; 1493 background-color: currentColor; 1494 opacity: 0; 1495 pointer-events: none; 1496 transform: translateY(-50%); 1497 transition: opacity 0.2s ease; 1498 } 1499 1500 .ipx:hover .ipx__text, 1501 .ipx:focus-visible .ipx__text { 1502 transform: translateX(var(--ipx-offset)); 1503 } 1504 1505 .ipx:hover .ipx__text::before, 1506 .ipx:focus-visible .ipx__text::before { 1507 opacity: 1; 1508 } 1509 1510 .ipx__label { 1511 font-size: 0.875rem; 1512 line-height: 1.75rem; 1513 } 1514</style> </li><li> <a class="ipx" href="/product/user-risk/policy-governance" data-event="CTA Clicked" data-e
1514="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Policy and Governance</span> </span> </a> <style> 1515 .ipx { 1516 --ipx-offset: 1.125rem; 1517 display: inline-block; 1518 position: relative; 1519 padding-right: var(--ipx-offset); 1520 color: var(--text-body); 1521 transition: color 0.2s ease; 1522 cursor: pointer; 1523 } 1524 1525 .ipx:hover, 1526 .ipx:focus-visible { 1527 color: var(--text-headings); 1528 } 1529 1530 .ipx__text { 1531 display: inline-block; 1532 transition: transform 0.2s ease; 1533 } 1534 1535 .ipx__text::before { 1536 content: ""; 1537 position: absolute; 1538 left: calc(-1 * var(--ipx-offset)); 1539 top: 50%; 1540 width: 0.625rem; 1541 height: 0.625rem; 1542 background-color: currentColor; 1543 opacity: 0; 1544 pointer-events: none; 1545 transform: translateY(-50%); 1546 transition: opacity 0.2s ease; 1547 } 1548 1549 .ipx:hover .ipx__text, 1550 .ipx:focus-visible .ipx__text { 1551 transform: translateX(var(--ipx-offset)); 1552 } 1553 1554 .ipx:hover .ipx__text::before, 1555 .ipx:focus-visible .ipx__text::before { 1556 opacity: 1; 1557 } 1558 1559 .ipx__label { 1560 font-size: 0.875rem; 1561 line-height: 1.75rem; 1562 } 1563</style> </li><li> <a class="ipx" href="/product/user-risk/contextual-guidance" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Contextual Guidance</span> </span> </a> <style> 1564 .ipx { 1565 --ipx-offset: 1.125rem; 1566 display: inline-block; 1567 position: relative; 1568 padding-right: var(--ipx-offset); 1569 color: var(--text-body); 1570 transition: color 0.2s ease; 1571 cursor: pointer; 1572 } 1573 1574 .ipx:hover, 1575 .ipx:focus-visible { 1576 color: var(--text-headings); 1577 } 1578 1579 .ipx__text { 1580 display: inline-block; 1581 transition: transform 0.2s ease; 1582 } 1583 1584 .ipx__text::before { 1585 content: ""; 1586 position: absolute; 1587 left: calc(-1 * var(--ipx-offset)); 1588 top: 50%; 1589 width: 0.625rem; 1590 height: 0.625rem; 1591 background-color: currentColor; 1592 opacity: 0; 1593 pointer-events: none; 1594 transform: translateY(-50%); 1595 transition: opacity 0.2s ease; 1596 } 1597 1598 .ipx:hover .ipx__text, 1599 .ipx:focus-visible .ipx__text { 1600 transform: translateX(var(--ipx-offset)); 1601 } 1602 1603 .ipx:hover .ipx__text::before, 1604 .ipx:focus-visible .ipx__text::before { 1605 opacity: 1; 1606 } 1607 1608 .ipx__label { 1609 font-size: 0.875rem; 1610 line-height: 1.75rem; 1611 } 1612</style> </li> </ul> </div><div class="platform-pv4k__item"> <div class="platform-pv4k__header"> <div class="platform-pv4k__name"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 1613 <g fill="currentColor"> 1614 <path d="m18.5279 14.6458h-3.8819v3.8819h3.8819z"></path> 1615 <path d="m6.88185 14.6458h-3.88185v3.8819h3.88185z"></path> 1616 <path d="m6.88185 3h-3.88185v3.88189h3.88185z"></path> 1617 <path d="m18.5279 3h-3.8819v3.88189h3.8819z"></path> 1618 <path d="m6.88232 6.88216v3.88194 3.8818h3.88188 3.8818v-3.8818-3.88194h-3.8818z"></path> 1619 </g> 1620</svg> Trust Exchange </div> <p class="platform-pv4k__description">Prove your security in minutes, not weeks. For free.</p> <a data-event="CTA Clicked" data-e="CTA Clicked" class="platform-pv4k__learn-more" href="/product/trust-exchange"> 1621Learn more 1622<svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 1623 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 1624</svg> </a> </div> <ul class="platform-pv4k__capabilities"> <li> <a class="ipx" href="/product/trust-exchange/questionnaire-ai" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Questionnaire AI</span> </span> </a> <style> 1625 .ipx { 1626 --ipx-offset: 1.125rem; 1627 display: inline-block; 1628 position: relative; 1629 padding-right: var(--ipx-offset); 1630 color: var(--text-body); 1631 transition: color 0.2s ease; 1632 cursor: pointer; 1633 } 1634 1635 .ipx:hover, 1636 .ipx:focus-visible { 1637 color: var(--text-headings); 1638 } 1639 1640 .ipx__text { 1641 display: inline-block; 1642 transition: transform 0.2s ease; 1643 } 1644 1645 .ipx__text::before { 1646 content: ""; 1647 position: absolute; 1648 left: calc(-1 * var(--ipx-offset)); 1649 top: 50%; 1650 width: 0.625rem; 1651 height: 0.625rem; 1652 background-color: currentColor; 1653 opacity: 0; 1654 pointer-events: none; 1655 transform: translateY(-50%); 1656 transition: opacity 0.2s ease; 1657 } 1658 1659 .ipx:hover .ipx__text, 1660 .ipx:focus-visible .ipx__text { 1661 transform: translateX(var(--ipx-offset)); 1662 } 1663 1664 .ipx:hover .ipx__text::before, 1665 .ipx:focus-visible .ipx__text::before { 1666 opacity: 1; 1667 } 1668 1669 .ipx__label { 1670 font-size: 0.875rem; 1671 line-height: 1.75rem; 1672 } 1673</style> </li><li> <a class="ipx" href="/product/trust-exchange/trust-center" data-event="CTA Clicked" data-e
1673="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Trust Center</span> </span> </a> <style> 1674 .ipx { 1675 --ipx-offset: 1.125rem; 1676 display: inline-block; 1677 position: relative; 1678 padding-right: var(--ipx-offset); 1679 color: var(--text-body); 1680 transition: color 0.2s ease; 1681 cursor: pointer; 1682 } 1683 1684 .ipx:hover, 1685 .ipx:focus-visible { 1686 color: var(--text-headings); 1687 } 1688 1689 .ipx__text { 1690 display: inline-block; 1691 transition: transform 0.2s ease; 1692 } 1693 1694 .ipx__text::before { 1695 content: ""; 1696 position: absolute; 1697 left: calc(-1 * var(--ipx-offset)); 1698 top: 50%; 1699 width: 0.625rem; 1700 height: 0.625rem; 1701 background-color: currentColor; 1702 opacity: 0; 1703 pointer-events: none; 1704 transform: translateY(-50%); 1705 transition: opacity 0.2s ease; 1706 } 1707 1708 .ipx:hover .ipx__text, 1709 .ipx:focus-visible .ipx__text { 1710 transform: translateX(var(--ipx-offset)); 1711 } 1712 1713 .ipx:hover .ipx__text::before, 1714 .ipx:focus-visible .ipx__text::before { 1715 opacity: 1; 1716 } 1717 1718 .ipx__label { 1719 font-size: 0.875rem; 1720 line-height: 1.75rem; 1721 } 1722</style> </li><li> <a class="ipx" href="/product/trust-exchange/paid" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Paid Plan</span> </span> </a> <style> 1723 .ipx { 1724 --ipx-offset: 1.125rem; 1725 display: inline-block; 1726 position: relative; 1727 padding-right: var(--ipx-offset); 1728 color: var(--text-body); 1729 transition: color 0.2s ease; 1730 cursor: pointer; 1731 } 1732 1733 .ipx:hover, 1734 .ipx:focus-visible { 1735 color: var(--text-headings); 1736 } 1737 1738 .ipx__text { 1739 display: inline-block; 1740 transition: transform 0.2s ease; 1741 } 1742 1743 .ipx__text::before { 1744 content: ""; 1745 position: absolute; 1746 left: calc(-1 * var(--ipx-offset)); 1747 top: 50%; 1748 width: 0.625rem; 1749 height: 0.625rem; 1750 background-color: currentColor; 1751 opacity: 0; 1752 pointer-events: none; 1753 transform: translateY(-50%); 1754 transition: opacity 0.2s ease; 1755 } 1756 1757 .ipx:hover .ipx__text, 1758 .ipx:focus-visible .ipx__text { 1759 transform: translateX(var(--ipx-offset)); 1760 } 1761 1762 .ipx:hover .ipx__text::before, 1763 .ipx:focus-visible .ipx__text::before { 1764 opacity: 1; 1765 } 1766 1767 .ipx__label { 1768 font-size: 0.875rem; 1769 line-height: 1.75rem; 1770 } 1771</style> </li> </ul> </div><div class="platform-pv4k__item"> <div class="platform-pv4k__header"> <div class="platform-pv4k__name"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 1772 <path d="m15 18.9952h4v-15.9952h-16v4h8v3.9968h-4v3.9984h-4v4h4v-3.9984h4v-3.9984h4z" fill="currentColor"></path> 1773</svg> Risk Automations </div> <p class="platform-pv4k__description">Triage every risk with AI, then resolve it automatically.</p> <a data-event="CTA Clicked" data-e="CTA Clicked" class="platform-pv4k__learn-more" href="/product/risk-automations"> 1774Learn more 1775<svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 1776 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 1777</svg> </a> </div> <ul class="platform-pv4k__capabilities"> <li> <a class="ipx" href="/product/risk-automations/integrations" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Integrations</span> </span> </a> <style> 1778 .ipx { 1779 --ipx-offset: 1.125rem; 1780 display: inline-block; 1781 position: relative; 1782 padding-right: var(--ipx-offset); 1783 color: var(--text-body); 1784 transition: color 0.2s ease; 1785 cursor: pointer; 1786 } 1787 1788 .ipx:hover, 1789 .ipx:focus-visible { 1790 color: var(--text-headings); 1791 } 1792 1793 .ipx__text { 1794 display: inline-block; 1795 transition: transform 0.2s ease; 1796 } 1797 1798 .ipx__text::before { 1799 content: ""; 1800 position: absolute; 1801 left: calc(-1 * var(--ipx-offset)); 1802 top: 50%; 1803 width: 0.625rem; 1804 height: 0.625rem; 1805 background-color: currentColor; 1806 opacity: 0; 1807 pointer-events: none; 1808 transform: translateY(-50%); 1809 transition: opacity 0.2s ease; 1810 } 1811 1812 .ipx:hover .ipx__text, 1813 .ipx:focus-visible .ipx__text { 1814 transform: translateX(var(--ipx-offset)); 1815 } 1816 1817 .ipx:hover .ipx__text::before, 1818 .ipx:focus-visible .ipx__text::before { 1819 opacity: 1; 1820 } 1821 1822 .ipx__label { 1823 font-size: 0.875rem; 1824 line-height: 1.75rem; 1825 } 1826</style> </li><li> <a class="ipx" href="/product/risk-automations/visibility" data-event="CTA Clicked" data-e
1826="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Visibility</span> </span> </a> <style> 1827 .ipx { 1828 --ipx-offset: 1.125rem; 1829 display: inline-block; 1830 position: relative; 1831 padding-right: var(--ipx-offset); 1832 color: var(--text-body); 1833 transition: color 0.2s ease; 1834 cursor: pointer; 1835 } 1836 1837 .ipx:hover, 1838 .ipx:focus-visible { 1839 color: var(--text-headings); 1840 } 1841 1842 .ipx__text { 1843 display: inline-block; 1844 transition: transform 0.2s ease; 1845 } 1846 1847 .ipx__text::before { 1848 content: ""; 1849 position: absolute; 1850 left: calc(-1 * var(--ipx-offset)); 1851 top: 50%; 1852 width: 0.625rem; 1853 height: 0.625rem; 1854 background-color: currentColor; 1855 opacity: 0; 1856 pointer-events: none; 1857 transform: translateY(-50%); 1858 transition: opacity 0.2s ease; 1859 } 1860 1861 .ipx:hover .ipx__text, 1862 .ipx:focus-visible .ipx__text { 1863 transform: translateX(var(--ipx-offset)); 1864 } 1865 1866 .ipx:hover .ipx__text::before, 1867 .ipx:focus-visible .ipx__text::before { 1868 opacity: 1; 1869 } 1870 1871 .ipx__label { 1872 font-size: 0.875rem; 1873 line-height: 1.75rem; 1874 } 1875</style> </li><li> <a class="ipx" href="/product/risk-automations/resolution" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Resolution</span> </span> </a> <style> 1876 .ipx { 1877 --ipx-offset: 1.125rem; 1878 display: inline-block; 1879 position: relative; 1880 padding-right: var(--ipx-offset); 1881 color: var(--text-body); 1882 transition: color 0.2s ease; 1883 cursor: pointer; 1884 } 1885 1886 .ipx:hover, 1887 .ipx:focus-visible { 1888 color: var(--text-headings); 1889 } 1890 1891 .ipx__text { 1892 display: inline-block; 1893 transition: transform 0.2s ease; 1894 } 1895 1896 .ipx__text::before { 1897 content: ""; 1898 position: absolute; 1899 left: calc(-1 * var(--ipx-offset)); 1900 top: 50%; 1901 width: 0.625rem; 1902 height: 0.625rem; 1903 background-color: currentColor; 1904 opacity: 0; 1905 pointer-events: none; 1906 transform: translateY(-50%); 1907 transition: opacity 0.2s ease; 1908 } 1909 1910 .ipx:hover .ipx__text, 1911 .ipx:focus-visible .ipx__text { 1912 transform: translateX(var(--ipx-offset)); 1913 } 1914 1915 .ipx:hover .ipx__text::before, 1916 .ipx:focus-visible .ipx__text::before { 1917 opacity: 1; 1918 } 1919 1920 .ipx__label { 1921 font-size: 0.875rem; 1922 line-height: 1.75rem; 1923 } 1924</style> </li> </ul> </div> <div class="platform-pv4k__footer"> <div class="footer-links-fl6b"> <div class="footer-links-fl6b__label">Platform</div> <a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/platform"> Platform overview </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/product/reporting"> Reporting </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/services"> Services </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/integrations"> Integrations </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/releases"> Release notes </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/product/security-ratings"> Security ratings </a> </div> <style> 1925 .footer-links-fl6b { 1926 border-top: 1px solid var(--divider); 1927 padding-top: 1.5rem; 1928 padding-bottom: 1.5rem; 1929 } 1930 .footer-links-fl6b__label { 1931 font-size: 0.875rem; 1932 line-height: 1.5rem; 1933 font-weight: 600; 1934 letter-spacing: -0.01em; 1935 color: var(--text-headings); 1936 } 1937 .footer-links-fl6b__link { 1938 font-size: 0.875rem; 1939 line-height: 1.5rem; 1940 color: var(--text-body); 1941 transition: color 0.2s ease; 1942 } 1943 .footer-links-fl6b__link:hover, 1944 .footer-links-fl6b__link:focus-visible { 1945 color: var(--text-headings); 1946 } 1947 1948 /* Mobile styles */ 1949 @media screen and (max-width: 991px) { 1950 .footer-links-fl6b { 1951 display: flex; 1952 flex-direction: column; 1953 align-items: end; 1954 gap: 0.5rem; 1955 } 1956 } 1957 1958 /* Desktop styles */ 1959 @media screen and (min-width: 992px) { 1960 .footer-links-fl6b { 1961 margin-top: 3rem; 1962 display: flex; 1963 gap: 2.5rem; 1964 justify-content: flex-end; 1965 } 1966 .footer-links-fl6b__label { 1967 margin-right: auto; 1968 } 1969 } 1970</style> </div> </div> <style> 1971 .platform-pv4k { 1972 font-size: 0.875rem; 1973 line-height: 1.5rem; 1974 color: var(--text-body); 1975 display: flex; 1976 flex-direction: column; 1977 gap: 2.4rem; 1978 padding-top: 2.4rem; 1979 } 1980 1981 .platform-pv4k__item { 1982 transition: opacity 0.2s ease; 1983 } 1984 .platform-pv4k:has(.platform-pv4k__item:hover) 1985 .platform-pv4k__item:not(.platform-pv4k__item:hover) { 1986 opacity: 0.25; 1987 } 1988 1989 .platform-pv4k__header { 1990 position: relative; 1991 } 1992 1993 .platform-pv4k__name { 1994 letter-spacing: -0.01em; 1995 display: flex; 1996 flex-direction: column; 1997 align-items: flex-start; 1998 gap: 0.9375rem; 1999 color: var(--text-headings); 2000 font-size: 1rem; 2001 font-weight: 600; 2002 } 2003 .platform-pv4k__name svg { 2004 display: block; 2005 overflow: visible; 2006 width: 1.375rem; 2007 height: 1.375rem; 2008 flex-shrink: 0; 2009 } 2010 2011 .platform-pv4k__description { 2012 margin-top: 1rem; 2013 } 2014 2015 .platform-pv4k__learn-more { 2016 display: inline-block; 2017 color: var(--text-headings); 2018 margin-top: 1rem; 2019 } 2020 .platform-pv4k__learn-more svg { 2021 float: right; 2022 overflow: visible; 2023 width: 1.25rem; 2024 height: 1.25rem; 2025 margin-left: 0.25rem; 2026 position: relative; 2027 top: 0.15rem; 2028 transition: transform 0.2s ease; 2029 } 2030 .platform-pv4k__learn-more::before { 2031 content: ""; 2032 position: absolute; 2033 inset: 0; 2034 } 2035 .platform-pv4k__learn-more:hover svg, 2036 .platform-pv4k__learn-more:focus-visible svg { 2037 transform: translateX(0.25rem); 2038 } 2039 2040 .platform-pv4k__capabilities { 2041 padding-top: 1rem; 2042 display: flex; 2043 flex-direction: column; 2044 gap: 0.5rem; 2045 list-style: none; 2046 } 2047 2048 /* Mobile styles */ 2049 @media screen and (max-width: 991px) { 2050 .platform-pv4k__capabilities .ipx__text { 2051 transform: translateX(1.125rem); 2052 color: var(--text-headings); 2053 } 2054 .platform-pv4k__capabilities .ipx__text::before { 2055 opacity: 1; 2056 } 2057 } 2058 2059 /* Desktop styles */ 2060 @media screen and (min-width: 992px) { 2061 .platform-pv4k { 2062 padding-top: 2rem; 2063 display: grid; 2064 grid-template-columns: repeat(5, 1fr); 2065 } 2066 .platform-pv4k__item { 2067 transition: opacity 0.2s ease; 2068 width: calc(100% + 2 * 1.25rem); 2069 padding-left: calc(0.5 * 1.25rem); 2070 padding-right: calc(0.5 * 1.25rem); 2071 margin-left: calc(-0.5 * 1.25rem); 2072 margin-right: calc(-0.5 * 1.25rem); 2073 } 2074 .platform-pv4k__description { 2075 margin-top: 1rem; 2076 } 2077 .platform-pv4k__header { 2078 min-height: 12.7rem; 2079 display: flex; 2080 flex-direction: column; 2081 margin-bottom: 1rem; 2082 } 2083 .platform-pv4k__learn-more { 2084 margin-top: auto; 2085 align-self: flex-start; 2086 } 2087 .platform-pv4k__capabilities {
2088 border-top: 1px solid var(--divider); 2089 } 2090 .platform-pv4k__footer { 2091 grid-column: span 5; 2092 } 2093 } 2094</style> </div> </div> <button type="button" aria-controls="#submenu-solutions" class="nav-fd76__item nav-fd76__item--button nav-fd76__item--solutions"> Solutions <svg aria-hidden="true" width="8" height="5" viewBox="0 0 8 5" fill="none"> 2095 <path d="M7 1L4 4L1 1" stroke="currentColor" stroke-width="1.2" stroke-linecap="square" /> 2096</svg> </button> <div class="nav-fd76__submenu nav-fd76__item--solutions" hidden="until-found" id="submenu-solutions"> <div class="nav-fd76__submenu--inner"> <div class="solutions-r6s2" data-event-cta-location="main_nav_submenu_solutions" data-e-location="main_nav_submenu_solutions"> <div class="solutions-r6s2__promo"> <aside class="nav-promo-hud63__promo"> <p class="nav-promo-hud63__promo-title">AI Security Center</p> <p class="nav-promo-hud63__promo-description">Your workforce is already using AI. See where it's moving, set rules people can use, and secure workforce AI in three steps.</p> <a class="nav-promo-hud63__promo-button" href="/solutions/ai-security" data-event="CTA Clicked" data-e="CTA Clicked">Explore the AI Security Center <svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 2097 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 2098</svg> </a> </aside> <style> 2099 .nav-promo-hud63__promo { 2100 position: relative; 2101 font-size: 0.875rem; 2102 line-height: 1.5rem; 2103 } 2104 .nav-promo-hud63__image { 2105 display: block; 2106 width: 100%; 2107 height: auto; 2108 object-fit: cover; 2109 margin-bottom: 1.5rem; 2110 } 2111 .nav-promo-hud63__promo-title { 2112 font-size: 1rem; 2113 line-height: 1.4; 2114 letter-spacing: -0.01em; 2115 font-weight: 600; 2116 color: var(--text-headings); 2117 margin-top: 0; 2118 margin-bottom: 0.5rem; 2119 } 2120 .nav-promo-hud63__promo-description { 2121 margin: 0; 2122 } 2123 .nav-promo-hud63__promo-button { 2124 display: inline-block; 2125 color: var(--text-headings); 2126 margin-top: 0.75rem; 2127 } 2128 .nav-promo-hud63__promo-button svg { 2129 float: right; 2130 overflow: visible; 2131 width: 1.25rem; 2132 height: 1.25rem; 2133 margin-left: 0.25rem; 2134 position: relative; 2135 top: 0.15rem; 2136 transition: transform 0.2s ease; 2137 } 2138 .nav-promo-hud63__promo-button::before { 2139 content: ""; 2140 position: absolute; 2141 inset: 0; 2142 } 2143 .nav-promo-hud63__promo-button:hover svg, 2144 .nav-promo-hud63__promo-button:focus-visible svg { 2145 transform: translateX(0.25rem); 2146 } 2147</style> </div> <div class="solutions-r6s2__spacer"></div><!-- Spacer --> <div class="solutions-r6s2__industries"> <div class="link-grid-lg9x"> <div class="link-grid-lg9x__heading">Industries</div> <ul class="link-grid-lg9x__list" style="--columns: 2; --rows: 2"> <li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/industries/education"> <span class="link-grid-lg9x__icon"> <svg width="16" height="16" fill="none" viewBox="0 0 16 16" overflow="visible" focusable="false" aria-hidden="true"><path fill="currentColor" d="M12 5H6v13H4v-6H2v6H0v-6h-2V3h14zm6 7H7v-2h9V0H7v-2h11zM5 2H1v-4h4z" /></svg> </span> <span class="link-grid-lg9x__name">Education</span> <span class="link-grid-lg9x__description"> Give higher education security teams continuous, automated vendor risk visibility. </span> </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/industries/financial-services"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2148 <g fill="currentColor" transform="translate(-2 -2)"> 2149 <rect x="0" y="6" width="2" height="2" /> 2150 <rect x="0" y="4" width="2" height="2" /> 2151 <rect x="2" y="8" width="2" height="6" /> 2152 <rect x="0" y="16" width="2" height="2" /> 2153 <rect x="0" y="18" width="20" height="2" /> 2154 <rect x="2" y="14" width="16" height="2" /> 2155 <rect x="16" y="8" width="2" height="6" /> 2156 <rect x="6" y="8" width="2" height="6" /> 2157 <rect x="18" y="16" width="2" height="2" /> 2158 <rect x="12" y="8" width="2" height="6" /> 2159 <rect x="2" y="2" width="4" height="2" /> 2160 <rect x="8" y="0" width="4" height="2" /> 2161 <rect x="2" y="6" width="16" height="2" /> 2162 <rect x="14" y="2" width="4" height="2" /> 2163 <rect x="18" y="4" width="2" height="2" /> 2164 <rect x="18" y="6" width="2" height="2" /> 2165 <rect x="6" y="1" width="2" height="2" /> 2166 <rect x="12" y="1" width="2" height="2" /> 2167 </g> 2168</svg> </span> <span class="link-grid-lg9x__name">Financial Services</span> <span class="link-grid-lg9x__description"> How UpGuard helps financial services companies secure customer data. </span> </a> </li><li>
2168 <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/industries/technology"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2169 <g fill="currentColor" transform="translate(-2 -2)"> 2170 <path d="M5 12H8V15H15V8H12V0H20V8H17V17H8V20H0V12H3V0H5V12ZM2 18H6V14H2V18ZM14 2V6H18V2H14Z" /> 2171 </g> 2172</svg> </span> <span class="link-grid-lg9x__name">Technology</span> <span class="link-grid-lg9x__description"> How UpGuard helps tech companies scale securely. </span> </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/industries/healthcare"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2173 <g fill="currentColor" transform="translate(-2 -2)"> 2174 <path d="M14 4H20V20H0V0H14V4ZM2 18H4V16H10V18H12V2H2V18ZM14 8H16V10H14V12H16V14H14V16H16V18H18V6H14V8ZM6 14H4V12H6V14ZM10 14H8V12H10V14Z" /> 2175 <rect x="6" y="4" width="2" height="2" /> 2176 <rect x="4" y="6" width="2" height="2" /> 2177 <rect x="6" y="6" width="2" height="2" /> 2178 <rect x="8" y="6" width="2" height="2" /> 2179 <rect x="6" y="8" width="2" height="2" /> 2180 </g> 2181</svg> </span> <span class="link-grid-lg9x__name">Healthcare</span> <span class="link-grid-lg9x__description"> Control third-party vendor risk and improve your cyber security posture. </span> </a> </li> </ul> </div> <style> 2182 .link-grid-lg9x__heading { 2183 font-size: 1rem; 2184 font-weight: 600; 2185 color: var(--text-headings); 2186 } 2187 .link-grid-lg9x__list { 2188 list-style: none; 2189 padding: 0; 2190 margin: 0; 2191 display: flex; 2192 flex-direction: column; 2193 gap: var(--gap); 2194 padding-top: 1.5rem; 2195 } 2196 .link-grid-lg9x__link { 2197 display: block; 2198 position: relative; 2199 padding-left: 2.25rem; 2200 transition: opacity 0.2s ease; 2201 } 2202 .link-grid-lg9x__list:has(.link-grid-lg9x__link:hover) 2203 .link-grid-lg9x__link:not(.link-grid-lg9x__link:hover), 2204 .link-grid-lg9x__list:has(.link-grid-lg9x__link:focus-visible) 2205 .link-grid-lg9x__link:not(.link-grid-lg9x__link:focus-visible) { 2206 opacity: 0.25; 2207 } 2208 .link-grid-lg9x__icon { 2209 position: absolute; 2210 top: 0.125rem; 2211 left: 0.125rem; 2212 width: 1.25rem; 2213 height: 1.25rem; 2214 color: var(--text-headings); 2215 } 2216 .link-grid-lg9x__icon svg { 2217 display: block; 2218 overflow: visible; 2219 width: 1rem; 2220 height: 1rem; 2221 } 2222 .link-grid-lg9x__name { 2223 display: block; 2224 font-size: 1rem; 2225 letter-spacing: -0.01em; 2226 color: var(--text-headings); 2227 margin-bottom: 0.5rem; 2228 } 2229 .link-grid-lg9x__description { 2230 display: block; 2231 max-width: 19em; 2232 font-size: 0.875rem; 2233 line-height: 1.375rem; 2234 } 2235 2236 /* Desktop styles */ 2237 @media screen and (min-width: 992px) { 2238 .link-grid-lg9x__heading { 2239 padding-bottom: 0.75rem; 2240 border-bottom: 1px solid var(--divider); 2241 } 2242 .link-grid-lg9x__list { 2243 padding-top: 2rem; 2244 display: grid; 2245 grid-auto-flow: column; 2246 grid-template-columns: repeat(var(--columns), 1fr); 2247 grid-template-rows: repeat(var(--rows), auto); 2248 column-gap: var(--gap); 2249 row-gap: 3.25rem; 2250 } 2251 .link-grid-lg9x__name { 2252 margin-bottom: 0.5rem; 2253 } 2254 .link-grid-lg9x__link { 2255 padding: 0.75rem; 2256 padding-left: 3rem; 2257 margin: -0.75rem; 2258 } 2259 .link-grid-lg9x__icon { 2260 top: 0.875rem; 2261 left: 0.875rem; 2262 } 2263 } 2264</style> </div> </div> <style> 2265 .solutions-r6s2 { 2266 font-size: 0.875rem; 2267 line-height: 1.5rem; 2268 color: var(--text-body); 2269 display: flex; 2270 flex-direction: column; 2271 padding-top: 2.4rem; 2272 padding-bottom: 2.4rem; 2273 gap: 3.2rem; 2274 } 2275 2276 /* Mobile only styles */ 2277 @media screen and (max-width: 991px) { 2278 .solutions-r6s2__promo { 2279 order: 999; 2280 max-width: 35rem; 2281 } 2282 .solutions-r6s2__spacer { 2283 display: none; 2284 } 2285 } 2286 2287 /* Desktop only styles */ 2288 @media screen and (min-width: 992px) { 2289 .solutions-r6s2 { 2290 display: grid; 2291 grid-template-columns: repeat(12, 1fr); 2292 gap: var(--gap); 2293 padding-top: 2rem; 2294 padding-bottom: 4rem; 2295 } 2296 .solutions-r6s2__promo { 2297 grid-column: 1 / 4; 2298 } 2299 .solutions-r6s2__spacer { 2300 grid-column: 4; 2301 } 2302 .solutions-r6s2__industries { 2303 grid-column: 5 / -1; 2304 } 2305 } 2306</style> </div> </div>
2306 <a data-event="CTA Clicked" data-e="CTA Clicked" class="nav-fd76__item nav-fd76__item--pricing" href="/pricing"> Pricing </a> <button type="button" aria-controls="#submenu-resources" class="nav-fd76__item nav-fd76__item--button nav-fd76__item--resources"> Resources <svg aria-hidden="true" width="8" height="5" viewBox="0 0 8 5" fill="none"> 2307 <path d="M7 1L4 4L1 1" stroke="currentColor" stroke-width="1.2" stroke-linecap="square" /> 2308</svg> </button> <div class="nav-fd76__submenu nav-fd76__item--resources" hidden="until-found" id="submenu-resources"> <div class="nav-fd76__submenu--inner"> <div class="resources-df78" data-event-cta-location="main_nav_submenu_resources" data-e-location="main_nav_submenu_resources"> <div class="resources-df78__promo"> <aside class="nav-promo-hud63__promo"> <p class="nav-promo-hud63__promo-title">Third-Party Risk Management</p> <p class="nav-promo-hud63__promo-description">Everything you need to build and scale a third-party risk management program, organized by the challenge you're facing and the program area you're working in.</p> <a class="nav-promo-hud63__promo-button" href="/tprm" data-event="CTA Clicked" data-e="CTA Clicked">Explore the hub <svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 2309 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 2310</svg> </a> </aside> <style> 2311 .nav-promo-hud63__promo { 2312 position: relative; 2313 font-size: 0.875rem; 2314 line-height: 1.5rem; 2315 } 2316 .nav-promo-hud63__image { 2317 display: block; 2318 width: 100%; 2319 height: auto; 2320 object-fit: cover; 2321 margin-bottom: 1.5rem; 2322 } 2323 .nav-promo-hud63__promo-title { 2324 font-size: 1rem; 2325 line-height: 1.4; 2326 letter-spacing: -0.01em; 2327 font-weight: 600; 2328 color: var(--text-headings); 2329 margin-top: 0; 2330 margin-bottom: 0.5rem; 2331 } 2332 .nav-promo-hud63__promo-description { 2333 margin: 0; 2334 } 2335 .nav-promo-hud63__promo-button { 2336 display: inline-block; 2337 color: var(--text-headings); 2338 margin-top: 0.75rem; 2339 } 2340 .nav-promo-hud63__promo-button svg { 2341 float: right; 2342 overflow: visible; 2343 width: 1.25rem; 2344 height: 1.25rem; 2345 margin-left: 0.25rem; 2346 position: relative; 2347 top: 0.15rem; 2348 transition: transform 0.2s ease; 2349 } 2350 .nav-promo-hud63__promo-button::before { 2351 content: ""; 2352 position: absolute; 2353 inset: 0; 2354 } 2355 .nav-promo-hud63__promo-button:hover svg, 2356 .nav-promo-hud63__promo-button:focus-visible svg { 2357 transform: translateX(0.25rem); 2358 } 2359</style> </div> <div class="resources-df78__spacer"></div><!-- Spacer --> <div class="resources-df78__areas"> <div class="link-grid-lg9x"> <div class="link-grid-lg9x__heading">Learn</div> <ul class="link-grid-lg9x__list" style="--columns: 2; --rows: 3"> <li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/resources"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2360 <g fill="currentColor" transform="translate(-3 -2)"> 2361 <path d="M10 3H2V15H10V3H12V15H20V3H12V1H22V17H12V19H10V17H0V1H10V3ZM16 13H14V11H16V13ZM18 10H14V8H18V10ZM18 7H14V5H18V7Z" /> 2362 </g> 2363</svg> </span> <span class="link-grid-lg9x__name">eBooks, Reports & more</span> <span class="link-grid-lg9x__description"> Insights on cybersecurity and vendor risk management. </span> </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/blog"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2364 <g fill="currentColor" transform="translate(-2 -2)"> 2365 <path d="M19 20H1V0H19V20ZM3 18H17V2H3V18ZM15 8V16H5V8H15ZM11 6H5V4H11V6Z" /> 2366 </g> 2367</svg> </span> <span class="link-grid-lg9x__name">Blog</span> <span class="link-grid-lg9x__description"> Learn about the latest issues in cyber security and how they affect you. </span> </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/breaches"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2368 <g fill="currentColor" transform="translate(-4 -4)"> 2369 <path d="M13 23h-2v-2h2v2Zm-2-2H9v-2h2v2Zm4 0h-2v-2h2v2Zm-6-2H7v-2h2v2Zm8 0h-2v-2h2v2ZM7 17H5v-2h2v2Zm6 0h-2v-2h2v2Zm6 0h-2v-2h2v2ZM5 15H3v-2h2v2Zm16 0h-2v-2h2v2ZM3 13H1v-2h2v2Zm10 0h-2V7h2v6Zm10 0h-2v-2h2v2ZM5 11H3V9h2v2Zm16 0h-2V9h2v2ZM7 9H5V7h2v2Zm12 0h-2V7h2v2ZM9 7H7V5h2v2Zm8 0h-2V5h2v2Zm-6-2H9V3h2v2Zm4 0h-2V3h2v2Zm-2-2h-2V1h2v2Z" /> 2370 </g> 2371</svg> </span> <span class="link-grid-lg9x__name">Breaches</span> <span class="link-grid-lg9x__description"> Stay up to date with security research and global news about data breaches. </span> </a> </li><li>
2371 <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/glossary"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2372 <g fill="currentColor" transform="translate(-2 -2)"> 2373 <path d="M11 20H9V18H11V20ZM9 18H7V16H9V18ZM13 18H11V16H13V18ZM6 14H4V12H2V14H0V6H6V14ZM14 14H8V6H14V14ZM20 8H18V12H20V14H16V6H20V8ZM10 12H12V11H10V12ZM2 10H4V8H2V10ZM10 9H12V8H10V9ZM9 4H7V2H9V4ZM13 4H11V2H13V4ZM11 2H9V0H11V2Z" /> 2374 </g> 2375</svg> </span> <span class="link-grid-lg9x__name">Glossary</span> <span class="link-grid-lg9x__description"> Plain-English definitions for common cyber security terms. </span> </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/events"> <span class="link-grid-lg9x__icon"> <svg overflow="visible" aria-hidden="true" focusable="false" fill="none" viewBox="0 0 16 16"> 2376 <g> 2377 <path fill="currentColor" d="M5 0h6v-2h2v2h4v18H-1V0h4v-2h2zM1 16h14V6H1zm4-2H3v-2h2zm4 0H7v-2h2zm4 0h-2v-2h2zm-8-4H3V8h2zm4 0H7V8h2zm4 0h-2V8h2zM1 4h14V2H1z" /> 2378 </g> 2379 2380</svg> </span> <span class="link-grid-lg9x__name">Events</span> <span class="link-grid-lg9x__description"> Expand your network with UpGuard Summit, webinars & exclusive events. </span> </a> </li> </ul> </div> <style> 2381 .link-grid-lg9x__heading { 2382 font-size: 1rem; 2383 font-weight: 600; 2384 color: var(--text-headings); 2385 } 2386 .link-grid-lg9x__list { 2387 list-style: none; 2388 padding: 0; 2389 margin: 0; 2390 display: flex; 2391 flex-direction: column; 2392 gap: var(--gap); 2393 padding-top: 1.5rem; 2394 } 2395 .link-grid-lg9x__link { 2396 display: block; 2397 position: relative; 2398 padding-left: 2.25rem; 2399 transition: opacity 0.2s ease; 2400 } 2401 .link-grid-lg9x__list:has(.link-grid-lg9x__link:hover) 2402 .link-grid-lg9x__link:not(.link-grid-lg9x__link:hover), 2403 .link-grid-lg9x__list:has(.link-grid-lg9x__link:focus-visible) 2404 .link-grid-lg9x__link:not(.link-grid-lg9x__link:focus-visible) { 2405 opacity: 0.25; 2406 } 2407 .link-grid-lg9x__icon { 2408 position: absolute; 2409 top: 0.125rem; 2410 left: 0.125rem; 2411 width: 1.25rem; 2412 height: 1.25rem; 2413 color: var(--text-headings); 2414 } 2415 .link-grid-lg9x__icon svg { 2416 display: block; 2417 overflow: visible; 2418 width: 1rem; 2419 height: 1rem; 2420 } 2421 .link-grid-lg9x__name { 2422 display: block; 2423 font-size: 1rem; 2424 letter-spacing: -0.01em; 2425 color: var(--text-headings); 2426 margin-bottom: 0.5rem; 2427 } 2428 .link-grid-lg9x__description { 2429 display: block; 2430 max-width: 19em; 2431 font-size: 0.875rem; 2432 line-height: 1.375rem; 2433 } 2434 2435 /* Desktop styles */ 2436 @media screen and (min-width: 992px) { 2437 .link-grid-lg9x__heading { 2438 padding-bottom: 0.75rem; 2439 border-bottom: 1px solid var(--divider); 2440 } 2441 .link-grid-lg9x__list { 2442 padding-top: 2rem; 2443 display: grid; 2444 grid-auto-flow: column; 2445 grid-template-columns: repeat(var(--columns), 1fr); 2446 grid-template-rows: repeat(var(--rows), auto); 2447 column-gap: var(--gap); 2448 row-gap: 3.25rem; 2449 } 2450 .link-grid-lg9x__name { 2451 margin-bottom: 0.5rem; 2452 } 2453 .link-grid-lg9x__link { 2454 padding: 0.75rem; 2455 padding-left: 3rem; 2456 margin: -0.75rem; 2457 } 2458 .link-grid-lg9x__icon { 2459 top: 0.875rem; 2460 left: 0.875rem; 2461 } 2462 } 2463</style> </div> <div class="resources-df78__footer"> <div class="footer-links-fl6b"> <div class="footer-links-fl6b__label">Compliance</div> <a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/compliance/iso-27001"> ISO 27001 </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/compliance/nist-cybersecurity-framework"> NIST CSF </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/compliance/nist-sp-800-53"> NIST 800 </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/compliance/sig-questionnaire"> SIG Lite </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/compliance/apra-cps-230-and-third-party-compliance"> APRA CPS 230 </a>
2463<a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/compliance/dpdp-questionnaire"> DPDP </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/compliance/multi-framework-questionnaire"> UpGuard MFQ </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/compliance/dora-questionnaire"> DORA </a><a data-event="CTA Clicked" data-e="CTA Clicked" class="footer-links-fl6b__link" href="/compliance/sig-core-questionnaire"> SIG Core </a> </div> <style> 2464 .footer-links-fl6b { 2465 border-top: 1px solid var(--divider); 2466 padding-top: 1.5rem; 2467 padding-bottom: 1.5rem; 2468 } 2469 .footer-links-fl6b__label { 2470 font-size: 0.875rem; 2471 line-height: 1.5rem; 2472 font-weight: 600; 2473 letter-spacing: -0.01em; 2474 color: var(--text-headings); 2475 } 2476 .footer-links-fl6b__link { 2477 font-size: 0.875rem; 2478 line-height: 1.5rem; 2479 color: var(--text-body); 2480 transition: color 0.2s ease; 2481 } 2482 .footer-links-fl6b__link:hover, 2483 .footer-links-fl6b__link:focus-visible { 2484 color: var(--text-headings); 2485 } 2486 2487 /* Mobile styles */ 2488 @media screen and (max-width: 991px) { 2489 .footer-links-fl6b { 2490 display: flex; 2491 flex-direction: column; 2492 align-items: end; 2493 gap: 0.5rem; 2494 } 2495 } 2496 2497 /* Desktop styles */ 2498 @media screen and (min-width: 992px) { 2499 .footer-links-fl6b { 2500 margin-top: 3rem; 2501 display: flex; 2502 gap: 2.5rem; 2503 justify-content: flex-end; 2504 } 2505 .footer-links-fl6b__label { 2506 margin-right: auto; 2507 } 2508 } 2509</style> </div> </div> <style> 2510 .resources-df78 { 2511 font-size: 0.875rem; 2512 line-height: 1.5rem; 2513 color: var(--text-body); 2514 display: flex; 2515 flex-direction: column; 2516 padding-top: 2.4rem; 2517 padding-bottom: 2.4rem; 2518 gap: 3.2rem; 2519 } 2520 2521 /* Mobile only styles */ 2522 @media screen and (max-width: 991px) { 2523 .resources-df78__promo { 2524 order: 999; 2525 max-width: 35rem; 2526 } 2527 .resources-df78__spacer { 2528 display: none; 2529 } 2530 } 2531 2532 /* Desktop only styles */ 2533 @media screen and (min-width: 992px) { 2534 .resources-df78 { 2535 display: grid; 2536 grid-template-columns: repeat(12, 1fr); 2537 gap: var(--gap); 2538 padding-top: 2rem; 2539 padding-bottom: 0; 2540 } 2541 .resources-df78__promo { 2542 grid-column: 1 / 4; 2543 } 2544 .resources-df78__spacer { 2545 grid-column: 4; 2546 } 2547 .resources-df78__areas { 2548 grid-column: 5 / -1; 2549 } 2550 .resources-df78__footer { 2551 margin-top: 4rem; 2552 grid-column: 1 / -1; 2553 } 2554 } 2555</style> </div> </div> <button type="button" aria-controls="#submenu-tools" class="nav-fd76__item nav-fd76__item--button nav-fd76__item--tools"> Tools <svg aria-hidden="true" width="8" height="5" viewBox="0 0 8 5" fill="none"> 2556 <path d="M7 1L4 4L1 1" stroke="currentColor" stroke-width="1.2" stroke-linecap="square" /> 2557</svg> </button> <div class="nav-fd76__submenu nav-fd76__item--tools" hidden="until-found" id="submenu-tools"> <div class="nav-fd76__submenu--inner"> <div class="tools-tl8m" data-event-cta-location="main_nav_submenu_tools" data-e-location="main_nav_submenu_tools"> <div class="tools-tl8m__promo"> <aside class="nav-promo-hud63__promo"> <img class="nav-promo-hud63__image" src="/_astro/ai-policy-generator.D5akkS-F.jpg" width="672" height="480" alt=""> <p class="nav-promo-hud63__promo-title">AI Policy Generator</p> <p class="nav-promo-hud63__promo-description">Build a free AI policy, checklist, and rollout guide for your team.</p> <a class="nav-promo-hud63__promo-button" href="/tools/ai-policy-generator" data-event="CTA Clicked" data-e="CTA Clicked">Generate your AI policy <svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 2558 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 2559</svg> </a> </aside> <style> 2560 .nav-promo-hud63__promo { 2561 position: relative; 2562 font-size: 0.875rem; 2563 line-height: 1.5rem; 2564 } 2565 .nav-promo-hud63__image { 2566 display: block; 2567 width: 100%; 2568 height: auto; 2569 object-fit: cover; 2570 margin-bottom: 1.5rem; 2571 } 2572 .nav-promo-hud63__promo-title { 2573 font-size: 1rem; 2574 line-height: 1.4; 2575 letter-spacing: -0.01em; 2576 font-weight: 600; 2577 color: var(--text-headings); 2578 margin-top: 0; 2579 margin-bottom: 0.5rem; 2580 } 2581 .nav-promo-hud63__promo-description { 2582 margin: 0; 2583 } 2584 .nav-promo-hud63__promo-button { 2585 display: inline-block; 2586 color: var(--text-headings); 2587 margin-top: 0.75rem; 2588 } 2589 .nav-promo-hud63__promo-button svg { 2590 float: right; 2591 overflow: visible; 2592 width: 1.25rem; 2593 height: 1.25rem; 2594 margin-left: 0.25rem; 2595 position: relative; 2596 top: 0.15rem; 2597 transition: transform 0.2s ease; 2598 } 2599 .nav-promo-hud63__promo-button::before { 2600 content: ""; 2601 position: absolute; 2602 inset: 0; 2603 } 2604 .nav-promo-hud63__promo-button:hover svg, 2605 .nav-promo-hud63__promo-button:focus-visible svg { 2606 transform: translateX(0.25rem); 2607 } 2608</style> </div> <div class="tools-tl8m__spacer"></div><!-- Spacer --> <div class="tools-tl8m__list"> <div class="link-grid-lg9x"> <div class="link-grid-lg9x__heading">Tools</div> <ul class="link-grid-lg9x__list" style="--columns: 2; --rows: 3"> <li>
2608 <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/instant-security-score"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2609 <g fill="currentColor" transform="translate(-2 -2)"> 2610 <path fill-rule="evenodd" d="M1 0H11V2H19V16H9V14H3V20H1V0ZM3 12H11V14H17V4H9V2H3V12Z" /> 2611 </g> 2612</svg> </span> <span class="link-grid-lg9x__name">Instant Security Score</span> <span class="link-grid-lg9x__description"> See your A-F grade in seconds - instant, free, no signup. </span> </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/webscan"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2613 <g fill="currentColor" transform="translate(-4 -4)"> 2614 <path d="M0 0H2V2H0V0Z" /> 2615 <path d="M2 2H4V4H2V2Z" /> 2616 <path d="M20 2H22V4H20V2Z" /> 2617 <path d="M22 0H24V2H22V0Z" /> 2618 <path d="M2 20H4V22H2V20Z" /> 2619 <path d="M0 22H2V24H0V22Z" /> 2620 <path d="M20 20H22V22H20V20Z" /> 2621 <path d="M22 22H24V24H22V22Z" /> 2622 <path d="M8 17H16V19H8V17Z" /> 2623 <path d="M16 15H20V17H16V15Z" /> 2624 <path d="M8 15H4V17H8V15Z" /> 2625 <path d="M16 7H20V9H16V7Z" /> 2626 <path d="M8 7H4V9H8V7Z" /> 2627 <path d="M20 9H22V11H20V9Z" /> 2628 <path d="M4 9H2V11H4V9Z" /> 2629 <path d="M22 11H24V13H22V11Z" /> 2630 <path d="M2 11H0V13H2V11Z" /> 2631 <path d="M20 13H22V15H20V13Z" /> 2632 <path d="M4 13H2V15H4V13Z" /> 2633 <path d="M8 5H16V7H8V5Z" /> 2634 <path d="M10 10H14V14H10V10Z" /> 2635 </g> 2636</svg> </span> <span class="link-grid-lg9x__name">Website scanner</span> <span class="link-grid-lg9x__description"> Scan any website for exposed risks in seconds. </span> </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/tools/dark-web-scan"> <span class="link-grid-lg9x__icon"> <svg width="16" height="16" fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"><path fill="currentColor" d="M-2 6h2v2h-2ZM0 4h2v2h-2ZM0 2h2v2h-2ZM2 0h2v2h-2ZM4 -2h2v2h-2ZM6 -2h2v2h-2ZM8 -2h2v2h-2ZM10 -2h2v2h-2ZM12 0h2v2h-2ZM14 2h2v2h-2ZM14 4h2v2h-2ZM16 6h2v2h-2ZM18 8h2v2h-2ZM16 10h2v2h-2ZM14 12h2v2h-2ZM16 14h2v2h-2ZM16 16h2v2h-2ZM14 16h2v2h-2ZM12 16h2v2h-2ZM10 16h2v2h-2ZM8 16h2v2h-2ZM6 16h2v2h-2ZM4 16h2v2h-2ZM2 14h2v2h-2ZM0 12h2v2h-2ZM-2 10h2v2h-2ZM-4 8h2v2h-2ZM5 4h2v2h-2ZM9 4h2v2h-2ZM7 7h2v2h-2ZM7 9h2v2h-2ZM18 16h2v2h-2Z" /></svg> </span> <span class="link-grid-lg9x__name">Dark Web Scan</span> <span class="link-grid-lg9x__description"> See how exposed you are on the dark web. </span> </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/security-report"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2637 <g fill="currentColor" transform="translate(-3 -2)"> 2638 <path d="M22 20H4V18H20V4H22V20ZM18 16H0V0H18V16ZM2 14H16V2H2V14ZM6 12H4V6H6V12ZM10 12H8V4H10V12ZM14 12H12V8H14V12Z" /> 2639 </g> 2640</svg> </span> <span class="link-grid-lg9x__name">Security Reports</span> <span class="link-grid-lg9x__description"> Thousands of vendor security reports. </span> </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="link-grid-lg9x__link" href="/templates"> <span class="link-grid-lg9x__icon"> <svg fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"> 2641 <g fill="currentColor" transform="translate(-2 -2)"> 2642 <path d="M3 18H15V20H1V4H3V18ZM13 0V2H15V4H13V6H15V4H17V6H19V16H5V0H13ZM7 2V14H17V8H11V2H7Z" /> 2643 </g> 2644</svg> </span> <span class="link-grid-lg9x__name">Templates</span> <span class="link-grid-lg9x__description"> Free templates to jumpstart your risk and compliance programs. </span> </a> </li> </ul> </div> <style> 2645 .link-grid-lg9x__heading { 2646 font-size: 1rem; 2647 font-weight: 600; 2648 color: var(--text-headings); 2649 } 2650 .link-grid-lg9x__list { 2651 list-style: none; 2652 padding: 0; 2653 margin: 0; 2654 display: flex; 2655 flex-direction: column; 2656 gap: var(--gap); 2657 padding-top: 1.5rem; 2658 } 2659 .link-grid-lg9x__link { 2660 display: block; 2661 position: relative; 2662 padding-left: 2.25rem; 2663 transition: opacity 0.2s ease; 2664 } 2665 .link-grid-lg9x__list:has(.link-grid-lg9x__link:hover) 2666 .link-grid-lg9x__link:not(.link-grid-lg9x__link:hover), 2667 .link-grid-lg9x__list:has(.link-grid-lg9x__link:focus-visible) 2668 .link-grid-lg9x__link:not(.link-grid-lg9x__link:focus-visible) { 2669 opacity: 0.25; 2670 } 2671 .link-grid-lg9x__icon { 2672 position: absolute; 2673 top: 0.125rem; 2674 left: 0.125rem; 2675 width: 1.25rem; 2676 height: 1.25rem; 2677 color: var(--text-headings); 2678 } 2679 .link-grid-lg9x__icon svg { 2680 display: block; 2681 overflow: visible; 2682 width: 1rem; 2683 height: 1rem; 2684 } 2685 .link-grid-lg9x__name { 2686 display: block; 2687 font-size: 1rem; 2688 letter-spacing: -0.01em; 2689 color: var(--text-headings); 2690 margin-bottom: 0.5rem; 2691 } 2692 .link-grid-lg9x__description { 2693 display: block; 2694 max-width: 19em; 2695 font-size: 0.875rem; 2696 line-height: 1.375rem; 2697 } 2698 2699 /* Desktop styles */ 2700 @media screen and (min-width: 992px) { 2701 .link-grid-lg9x__heading { 2702 padding-bottom: 0.75rem;
2703 border-bottom: 1px solid var(--divider); 2704 } 2705 .link-grid-lg9x__list { 2706 padding-top: 2rem; 2707 display: grid; 2708 grid-auto-flow: column; 2709 grid-template-columns: repeat(var(--columns), 1fr); 2710 grid-template-rows: repeat(var(--rows), auto); 2711 column-gap: var(--gap); 2712 row-gap: 3.25rem; 2713 } 2714 .link-grid-lg9x__name { 2715 margin-bottom: 0.5rem; 2716 } 2717 .link-grid-lg9x__link { 2718 padding: 0.75rem; 2719 padding-left: 3rem; 2720 margin: -0.75rem; 2721 } 2722 .link-grid-lg9x__icon { 2723 top: 0.875rem; 2724 left: 0.875rem; 2725 } 2726 } 2727</style> </div> </div> <style> 2728 .tools-tl8m { 2729 font-size: 0.875rem; 2730 line-height: 1.5rem; 2731 color: var(--text-body); 2732 display: flex; 2733 flex-direction: column; 2734 padding-top: 2.4rem; 2735 padding-bottom: 2.4rem; 2736 gap: 3.2rem; 2737 } 2738 2739 /* Mobile only styles */ 2740 @media screen and (max-width: 991px) { 2741 .tools-tl8m__promo { 2742 order: 999; 2743 max-width: 35rem; 2744 } 2745 .tools-tl8m__spacer { 2746 display: none; 2747 } 2748 } 2749 2750 /* Desktop only styles */ 2751 @media screen and (min-width: 992px) { 2752 .tools-tl8m { 2753 display: grid; 2754 grid-template-columns: repeat(12, 1fr); 2755 gap: var(--gap); 2756 padding-top: 2rem; 2757 padding-bottom: 4rem; 2758 } 2759 .tools-tl8m__promo { 2760 grid-column: 1 / 4; 2761 } 2762 .tools-tl8m__spacer { 2763 grid-column: 4; 2764 } 2765 .tools-tl8m__list { 2766 grid-column: 5 / -1; 2767 } 2768 } 2769</style> </div> </div> <a data-event="CTA Clicked" data-e="CTA Clicked" class="nav-fd76__item nav-fd76__item--customers" href="/customers"> Customers </a> <button type="button" aria-controls="#submenu-company" class="nav-fd76__item nav-fd76__item--button nav-fd76__item--company"> Company <svg aria-hidden="true" width="8" height="5" viewBox="0 0 8 5" fill="none"> 2770 <path d="M7 1L4 4L1 1" stroke="currentColor" stroke-width="1.2" stroke-linecap="square" /> 2771</svg> </button> <div class="nav-fd76__submenu nav-fd76__item--company" hidden="until-found" id="submenu-company"> <div class="nav-fd76__submenu--inner"> <div class="company-cq2v" data-event-cta-location="main_nav_submenu_company" data-e-location="main_nav_submenu_company"> <div class="company-cq2v__promo"> <aside class="nav-promo-hud63__promo"> <img class="nav-promo-hud63__image" src="https://cdn.prod.website-files.com/5efbe6918a9cfd65bb1608f9/6a0f96ed7313b1868847c9ae_UpGuard-Summit-Web-Nav-Banner-pre.png" width="2400" height="1252" alt=""> <p class="nav-promo-hud63__promo-title">Prove Once. Defend Everywhere.</p> <p class="nav-promo-hud63__promo-description">62% of security leaders can't prove their program is reducing risk. See how one decision, with evidence and citations attached, becomes something you can defend to your board, auditors, compliance, and customers.</p> <a class="nav-promo-hud63__promo-button" href="/summit/september-2026" data-event="CTA Clicked" data-e="CTA Clicked">Watch Summit On-Demand <svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 2772 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 2773</svg> </a> </aside> <style> 2774 .nav-promo-hud63__promo { 2775 position: relative; 2776 font-size: 0.875rem; 2777 line-height: 1.5rem; 2778 } 2779 .nav-promo-hud63__image { 2780 display: block; 2781 width: 100%; 2782 height: auto; 2783 object-fit: cover; 2784 margin-bottom: 1.5rem; 2785 } 2786 .nav-promo-hud63__promo-title { 2787 font-size: 1rem; 2788 line-height: 1.4; 2789 letter-spacing: -0.01em; 2790 font-weight: 600; 2791 color: var(--text-headings); 2792 margin-top: 0; 2793 margin-bottom: 0.5rem; 2794 } 2795 .nav-promo-hud63__promo-description { 2796 margin: 0; 2797 } 2798 .nav-promo-hud63__promo-button { 2799 display: inline-block; 2800 color: var(--text-headings); 2801 margin-top: 0.75rem; 2802 } 2803 .nav-promo-hud63__promo-button svg { 2804 float: right; 2805 overflow: visible; 2806 width: 1.25rem; 2807 height: 1.25rem; 2808 margin-left: 0.25rem; 2809 position: relative; 2810 top: 0.15rem; 2811 transition: transform 0.2s ease; 2812 } 2813 .nav-promo-hud63__promo-button::before { 2814 content: ""; 2815 position: absolute; 2816 inset: 0; 2817 } 2818 .nav-promo-hud63__promo-button:hover svg, 2819 .nav-promo-hud63__promo-button:focus-visible svg { 2820 transform: translateX(0.25rem); 2821 } 2822</style> </div> <div class="company-cq2v__platform"> <div class="company-cq2v__heading">Platform</div> <p class="company-cq2v__platform-text"> 2823UpGuard is a complete cyber risk posture management platform. 2824</p> <p class="company-cq2v__platform-text"> 2825Transform how you manage cyber risk across your vendors, attack surface, 2826 and workforce. 2827</p>
2827 <a data-event="CTA Clicked" data-e="CTA Clicked" class="company-cq2v__learn-more" href="/platform"> 2828Learn more 2829<svg aria-hidden="true" fill="none" focusable="false" height="20" viewBox="0 0 20 20" width="20"> 2830 <path d="m4 9h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm2 0h2v2h-2zm-2-2h2v2h-2zm0 4h2v2h-2zm-2 2h2v2h-2zm0-8h2v2h-2z" fill="currentColor" /> 2831</svg> </a> </div> <div class="company-cq2v__partner"> <div class="company-cq2v__heading">Partner with us</div> <a data-event="CTA Clicked" data-e="CTA Clicked" class="company-cq2v__partner-link" href="/partners"> <span class="company-cq2v__partner-icon"> <svg width="16" height="16" fill="none" viewBox="0 0 16 16" overflow="visible" aria-hidden="true" focusable="false"><path fill="currentColor" d="M-2 16h12v-4h2v6H-4v-6h2zm22 2h-6v-2h4v-4h2zm-10-6H-2v-2h12zm8 0h-4v-2h4zM7 8H1V6h6zm8 0h-4V6h4zM1 6h-2V0h2zm8 0H7V0h2zm8 0h-2V0h2zM7 0H1v-2h6zm8 0h-4v-2h4z" /></svg> </span> <span class="company-cq2v__partner-name">Partner</span> <span class="company-cq2v__partner-description"> 2832Expand your reach, leverage market-leading software, and enhance your 2833 customer relationships. 2834</span> </a> </div> <div class="company-cq2v__company"> <div class="company-cq2v__heading">Company</div> <ul class="company-cq2v__links"> <li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="company-cq2v__link" href="/about"> About us </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="company-cq2v__link" href="/careers"> Careers </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="company-cq2v__link" href="/contact"> Contact </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="company-cq2v__link" href="https://help.upguard.com/en/" target="_blank" rel="noopener noreferrer"> Support </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="company-cq2v__link" href="/security"> Security </a> </li><li> <a data-event="CTA Clicked" data-e="CTA Clicked" class="company-cq2v__link" href="/press"> Press </a> </li> </ul> </div> </div> <style> 2835 .company-cq2v { 2836 font-size: 0.875rem; 2837 line-height: 1.5rem; 2838 color: var(--text-body); 2839 display: flex; 2840 flex-direction: column; 2841 padding-top: 2.4rem; 2842 padding-bottom: 2.4rem; 2843 gap: 2.4rem; 2844 } 2845 2846 .company-cq2v__heading { 2847 font-size: 1rem; 2848 font-weight: 600; 2849 color: var(--text-headings); 2850 margin-bottom: 1rem; 2851 } 2852 2853 /* Platform column */ 2854 .company-cq2v__platform { 2855 position: relative; 2856 } 2857 .company-cq2v__platform-text { 2858 max-width: 17em; 2859 margin: 0; 2860 } 2861 .company-cq2v__platform-text + .company-cq2v__platform-text { 2862 margin-top: 1rem; 2863 } 2864 .company-cq2v__learn-more { 2865 display: inline-block; 2866 color: var(--text-headings); 2867 margin-top: 1rem; 2868 } 2869 .company-cq2v__learn-more svg { 2870 float: right; 2871 overflow: visible; 2872 width: 1.25rem; 2873 height: 1.25rem; 2874 margin-left: 0.25rem; 2875 position: relative; 2876 top: 0.15rem; 2877 transition: transform 0.2s ease; 2878 } 2879 .company-cq2v__learn-more::before { 2880 content: ""; 2881 position: absolute; 2882 inset: 0; 2883 } 2884 .company-cq2v__learn-more:hover svg, 2885 .company-cq2v__learn-more:focus-visible svg { 2886 transform: translateX(0.25rem); 2887 } 2888 2889 /* Partner column: single NavLinkGrid-style item */ 2890 .company-cq2v__partner-link { 2891 display: block; 2892 position: relative; 2893 padding-left: 2.25rem; 2894 transition: opacity 0.2s ease; 2895 } 2896 .company-cq2v__partner-icon { 2897 position: absolute; 2898 top: 0.125rem; 2899 left: 0.125rem; 2900 width: 1.25rem; 2901 height: 1.25rem; 2902 color: var(--text-headings); 2903 } 2904 .company-cq2v__partner-icon svg { 2905 display: block; 2906 overflow: visible; 2907 width: 1rem; 2908 height: 1rem; 2909 } 2910 .company-cq2v__partner-name { 2911 display: block; 2912 font-size: 1rem; 2913 letter-spacing: -0.01em; 2914 color: var(--text-headings); 2915 margin-bottom: 0.5rem; 2916 } 2917 .company-cq2v__partner-description { 2918 display: block; 2919 max-width: 19em; 2920 font-size: 0.875rem; 2921 line-height: 1.375rem; 2922 } 2923 2924 /* Company column */ 2925 .company-cq2v__links { 2926 list-style: none; 2927 padding: 0; 2928 margin: 0; 2929 display: flex; 2930 flex-direction: column; 2931 gap: 1rem; 2932 } 2933 .company-cq2v__link { 2934 position: relative; 2935 display: inline-block; 2936 padding-left: 1.25rem; 2937 font-size: 1rem; 2938 color: var(--text-headings); 2939 transition: opacity 0.2s ease; 2940 } 2941 .company-cq2v__link::before { 2942 content: ""; 2943 position: absolute; 2944 left: 0; 2945 top: 50%; 2946 width: 0.375rem; 2947 height: 0.375rem; 2948 background-color: currentColor; 2949 transform: translateY(-50%); 2950 } 2951 .company-cq2v__link:hover, 2952 .company-cq2v__link:focus-visible { 2953 opacity: 0.7; 2954 } 2955 2956 /* Mobile only styles */ 2957 @media screen and (max-width: 991px) { 2958 .company-cq2v__promo { 2959 order: 999; 2960 max-width: 35rem; 2961 } 2962 } 2963 2964 /* Desktop only styles */ 2965 @media screen and (min-width: 992px) { 2966 .company-cq2v {
2967 display: grid; 2968 grid-template-columns: repeat(12, 1fr); 2969 gap: var(--gap); 2970 padding-top: 4rem; 2971 padding-bottom: 4rem; 2972 } 2973 .company-cq2v__promo { 2974 grid-column: 1 / 4; 2975 } 2976 .company-cq2v__platform { 2977 grid-column: 5 / 8; 2978 } 2979 .company-cq2v__partner { 2980 grid-column: 8 / 11; 2981 } 2982 .company-cq2v__company { 2983 grid-column: 11 / 13; 2984 } 2985 } 2986</style> </div> </div> <a data-event="CTA Clicked" data-e="CTA Clicked" class="nav-fd76__item nav-fd76__item--login" href="https://cyber-risk.upguard.com/" target="_blank"> Login </a> </div> <div class="nav-fd76__actions"> <a data-event="CTA Clicked" data-event-cta-link-type="free_trial_button" data-e="CTA Clicked" data-e-link-type="free_trial_button" href="/demo" class="nav-fd76__cta--text"> 2987Free trial 2988</a> <a data-event="CTA Clicked" data-event-cta-link-type="book_demo_button" data-e="CTA Clicked" data-e-link-type="book_demo_button" href="/contact-sales" class="nav-fd76__cta--solid"> 2989Get a demo 2990</a> </div> </div> </div> </div> </div> </nav>
2990<script>"use strict"; 2991(() => { 2992 // src/components/interop/Nav/Nav.script.ts 2993 (() => { 2994 const $$navs = Array.from( 2995 document.querySelectorAll(".nav-fd76") 2996 ); 2997 $$navs.forEach(($nav) => { 2998 let state = { 2999 activeSubmenu: null, 3000 isMobile: false, 3001 isMobileMenuOpen: false 3002 }; 3003 const $screen = $nav?.previousElementSibling; 3004 const $bd = $nav?.querySelector(".nav-fd76__bd"); 3005 const $mobileMenuToggle = $nav?.querySelector( 3006 ".nav-fd76__menu-toggle" 3007 ); 3008 const $menu = $nav?.querySelector("#upguard-menu"); 3009 const $menuInner = $menu?.querySelector( 3010 ".nav-fd76__menu-inner" 3011 ); 3012 const $$submenus = Array.from( 3013 $nav?.querySelectorAll(".nav-fd76__submenu") 3014 ); 3015 const $$submenuToggles = Array.from( 3016 $nav?.querySelectorAll(".nav-fd76__item--button") 3017 ); 3018 const mediaQueryIsMobile = window.matchMedia(`(max-width: 1199px)`); 3019 mediaQueryIsMobile.addEventListener("change", (e) => { 3020 update({ 3021 isMobile: e.matches, 3022 // Also close all menus if the window has been resized. This is just so I don't have to handle complicated logic for state changes 3023 isMobileMenuOpen: false, 3024 activeSubmenu: null 3025 }); 3026 }); 3027 $mobileMenuToggle?.addEventListener("click", () => { 3028 update({ isMobileMenuOpen: !state.isMobileMenuOpen }); 3029 }); 3030 $$submenuToggles.forEach(($submenuToggle) => { 3031 $submenuToggle.addEventListener("click", () => { 3032 const newActiveSubmenu = $submenuToggle.nextElementSibling; 3033 if (state.activeSubmenu === newActiveSubmenu) { 3034 update({ activeSubmenu: null }); 3035 } else { 3036 update({ activeSubmenu: newActiveSubmenu }); 3037 } 3038 }); 3039 }); 3040 $screen?.addEventListener("click", () => { 3041 update({ activeSubmenu: null, isMobileMenuOpen: false }); 3042 }); 3043 window.addEventListener("resize", () => { 3044 if (state.isMobile != mediaQueryIsMobile.matches) { 3045 update({ 3046 activeSubmenu: null, 3047 isMobile: mediaQueryIsMobile.matches, 3048 isMobileMenuOpen: false 3049 }); 3050 } 3051 }); 3052 $nav.addEventListener("click", (e) => { 3053 const $target = e.target; 3054 if (!$target.closest(".nav-fd76__submenu") && $target.closest(".nav-fd76__bd") && !$target.closest("button, a")) { 3055 update({ activeSubmenu: null }); 3056 } 3057 }); 3058 function update(newStatePartial) { 3059 const newState = { ...state, ...newStatePartial }; 3060 if (newState.isMobile) { 3061 if (newState.isMobileMenuOpen) { 3062 $mobileMenuToggle?.setAttribute("aria-expanded", "true"); 3063 $menu?.removeAttribute("hidden"); 3064 } else { 3065 $mobileMenuToggle?.setAttribute("aria-expanded", "false"); 3066 $menu?.setAttribute("hidden", "until-found"); 3067 } 3068 if (!state.isMobileMenuOpen && newState.isMobileMenuOpen) { 3069 if ($menu) { 3070 $menu.animate( 3071 { 3072 height: ["0px", $menuInner?.offsetHeight + "px"] 3073 }, 3074 { 3075 duration: 200 3076 } 3077 ); 3078 } 3079 } 3080 if (state.isMobileMenuOpen && !newState.isMobileMenuOpen) { 3081 if ($menu) { 3082 $menu.removeAttribute("hidden"); 3083 $menu.animate( 3084 { 3085 height: [$menuInner.offsetHeight + "px", "0px"] 3086 }, 3087 { 3088 duration: 200 3089 } 3090 ).onfinish = () => { 3091 $menu.setAttribute("hidden", "until-found"); 3092 }; 3093 } 3094 } 3095 $$submenus.forEach(($submenu) => { 3096 if ($submenu === newState.activeSubmenu) { 3097 $submenu.hidden = false; 3098 $submenu.animate( 3099 { 3100 height: [ 3101 "0px", 3102 $submenu.children[0].offsetHeight + "px" 3103 ], 3104 opacity: ["0", "1"] 3105 }, 3106 { duration: 200 } 3107 ).onfinish = () => { 3108 }; 3109 } else if ($submenu === state.activeSubmenu) { 3110 $submenu.animate( 3111 { 3112 height: [ 3113 $submenu.children[0].offsetHeight + "px", 3114 "0px" 3115 ], 3116 opacity: ["1", "0"] 3117 }, 3118 { duration: 200 } 3119 ).onfinish = () => { 3120 $submenu.setAttribute("hidden", "until-found"); 3121 }; 3122 } else { 3123 $submenu.style.transform = ""; 3124 $submenu.style.opacity = ""; 3125 $submenu.style.display = ""; 3126 } 3127 }); 3128 } else { 3129 $menu?.removeAttribute("hidden"); 3130 $mobileMenuToggle?.setAttribute("aria-expanded", "true"); 3131 $bd.style.height = ""; 3132 $bd.classList.remove("has-active-submenu"); 3133 if (newState.activeSubmenu) { 3134 newState.activeSubmenu.hidden = false;
3135 const activeSubmenuHeight = newState.activeSubmenu.scrollHeight; 3136 newState.activeSubmenu.hidden = true; 3137 $bd.classList.add("has-active-submenu"); 3138 $bd.style.height = `${activeSubmenuHeight + $nav.offsetHeight}px`; 3139 } 3140 $$submenus.forEach(($submenu) => { 3141 if ($submenu === newState.activeSubmenu) { 3142 $submenu.hidden = false; 3143 $submenu.animate( 3144 { 3145 transform: [ 3146 state.activeSubmenu ? `translateY(0) translateX(${$$submenus.indexOf($submenu) < $$submenus.indexOf(state.activeSubmenu) ? -2 : 2}rem)` : "translateY(-2rem) translateX(0)", 3147 "translateY(0)" 3148 ], 3149 opacity: ["0", "1"] 3150 }, 3151 { duration: 200 } 3152 ).onfinish = () => { 3153 }; 3154 } else if ($submenu === state.activeSubmenu) { 3155 $submenu.animate( 3156 { 3157 transform: [ 3158 "translateY(0rem)", 3159 newState.activeSubmenu ? `translateY(0) translateX(${$$submenus.indexOf($submenu) < $$submenus.indexOf(newState.activeSubmenu) ? -2 : 2}rem)` : "translateY(-2rem)" 3160 ], 3161 opacity: ["1", "0"] 3162 }, 3163 { duration: 200 } 3164 ).onfinish = () => { 3165 $submenu.setAttribute("hidden", "until-found"); 3166 }; 3167 } else { 3168 $submenu.style.transform = ""; 3169 $submenu.style.opacity = ""; 3170 $submenu.style.display = ""; 3171 } 3172 }); 3173 } 3174 $screen?.classList.toggle( 3175 "is-active", 3176 !!(newState.activeSubmenu || newState.isMobileMenuOpen) 3177 ); 3178 $$submenus.forEach(($submenu, ix) => { 3179 $$submenuToggles[ix].setAttribute( 3180 "aria-expanded", 3181 $submenu === newState.activeSubmenu ? "true" : "false" 3182 ); 3183 }); 3184 state = newState; 3185 } 3186 update({ isMobile: mediaQueryIsMobile.matches }); 3187 }); 3188 })(); 3189})(); 3190</script>
3190 </div>
3190<script type="module" src="/_astro/Alpine.astro_astro_type_script_index_0_lang.DlAt3eJs.js?dpl=6ab4a3cbb36e820008e2ae9c"></script>
3190
3190<script type="module" src="/_astro/ClientRouter.astro_astro_type_script_index_0_lang.LJXfe-ps.js?dpl=6ab4a3cbb36e820008e2ae9c"></script>
3190<script type="module">(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"247a098bf374f7ad9be9db1aadc6c2fc36fc4047"}}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[new e.Error().stack]=(function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];if(r!=null)for(var a in r)r.hasOwnProperty(a)&&(t[a]=r[a])}return t})({},e._sentryModuleMetadata[new e.Error().stack],{"_sentryBundlerPluginAppKey:upguard-marketing-site":!0})}catch{}})();let o=null;const i=()=>{if(o===null)return;const e=document.querySelector("#pricing-tabs");e&&window.scrollTo({left:0,top:e.getBoundingClientRect().top+window.scrollY-o,behavior:"instant"})};window.addEventListener("popstate",()=>{const e=document.querySelector("#pricing-tabs [data-pricing-tab-underline]");e instanceof HTMLElement&&(e.style.viewTransitionName="none")});document.addEventListener("click",e=>{const t=e.target.closest("#pricing-tabs a");if(!t)return;if(t.getAttribute("aria-current")==="page"){e.preventDefault();return}const n=document.querySelector("#pricing-tabs");o=n?n.getBoundingClientRect().top:null},!0);document.addEventListener("astro:after-swap",()=>{i(),document.fonts.ready.then(()=>{requestAnimationFrame(()=>{i(),o=null})})});</script>
3190<section class="mx-auto w-[calc(100%-2*var(--gap))] max-w-none lg:max-w-[88.5rem] lg:w-[calc(100%-4*var(--gap))]"> <meta name="astro-view-transitions-enabled" content="true"><meta name="astro-view-transitions-fallback" content="animate"><header class="pt-128 pb-48 text-center"> <h1 class="font-cigars font-normal text-64 text-heading block mb-96"> 3191Flexible plans 3192<br> <span class="font-inter-tight font-normal text-64 text-heading block mb-96"> and features </span> </h1> <nav id="pricing-tabs" class="border-b border-gray-300" aria-label="Pricing sections"> <ul data-e-location="pricing_tabs" class="flex flex-wrap justify-center gap-24 md:gap-64 list-none"> <li> <a data-e="CTA Clicked" href="/pricing/vendor-risk" data-astro-reload="true" aria-current="page" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 relative flex items-center justify-center gap-12 py-16 transition-colors text-center text-heading"> <span class="flex shrink-0 [&_svg]:size-[1.375rem] text-heading" aria-hidden="true"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 3193 <g fill="currentColor"> 3194 <path d="m14.9311 18.9999h3.9769v-4h-3.9769-3.977v4z"></path> 3195 <path d="m6.97697 11h-3.97697v4h3.97697 3.97693v-4z"></path> 3196 <path d="m6.97697 3h-3.97697v3.99999h3.97697 3.97693v-3.99999z"></path> 3197 <path d="m18.908 11v-4.00004h-3.9769-3.977v4.00004h3.977z"></path> 3198 </g> 3199</svg> </span> <span class="font-inter font-normal text-16 text-center"> Vendor Risk </span> <span class="pointer-events-none absolute -bottom-px left-0 h-[.1875rem] w-full bg-black" data-pricing-tab-underline aria-hidden="true" data-astro-transition-scope="astro-ncjwhpoc-1"></span> </a> </li><li> <a data-e="CTA Clicked" href="/pricing/breach-risk" data-astro-reload="true" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 relative flex items-center justify-center gap-12 py-16 transition-colors text-center text-body hover:text-heading"> <span class="flex shrink-0 [&_svg]:size-[1.375rem] text-body" aria-hidden="true"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 3200 <g fill="currentColor"> 3201 <path d="m7 3h-4v3.99999h4z"></path> 3202 <path d="m11 7.00002h-4v3.99998h4z"></path> 3203 <path d="m7 11h-4v4h4z"></path> 3204 <path d="m15 3.00002h-4v3.99999h4z"></path> 3205 <path d="m15 7.00002v3.99998 4h-4-4v4h4 4 4v-4-4-3.99998z"></path> 3206 </g> 3207</svg> </span> <span class="font-inter font-normal text-16 text-center"> Breach Risk </span> </a> </li><li> <a data-e="CTA Clicked" href="/pricing/trust-exchange" data-astro-reload="true" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 relative flex items-center justify-center gap-12 py-16 transition-colors text-center text-body hover:text-heading"> <span class="flex shrink-0 [&_svg]:size-[1.375rem] text-body" aria-hidden="true"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 3208 <g fill="currentColor"> 3209 <path d="m18.5279 14.6458h-3.8819v3.8819h3.8819z"></path> 3210 <path d="m6.88185 14.6458h-3.88185v3.8819h3.88185z"></path> 3211 <path d="m6.88185 3h-3.88185v3.88189h3.88185z"></path> 3212 <path d="m18.5279 3h-3.8819v3.88189h3.8819z"></path> 3213 <path d="m6.88232 6.88216v3.88194 3.8818h3.88188 3.8818v-3.8818-3.88194h-3.8818z"></path> 3214 </g> 3215</svg> </span> <span class="font-inter font-normal text-16 text-center"> Trust Exchange </span> </a> </li><li> <a data-e="CTA Clicked" href="/pricing/user-risk" data-astro-reload="true" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 relative flex items-center justify-center gap-12 py-16 transition-colors text-center text-body hover:text-heading"> <span class="flex shrink-0 [&_svg]:size-[1.375rem] text-body" aria-hidden="true"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 3216 <g fill="currentColor"> 3217 <path d="m14.9653 11v-3.99999-3.99999h-3.9885-3.98852v3.99999 3.99999h3.98852z"></path> 3218 <path d="m10.9771 15h-3.98857-3.98853v4h3.98853 3.98857 3.9885 3.9885v-4h-3.9885z"></path> 3219 </g> 3220</svg> </span> <span class="font-inter font-normal text-16 text-center"> User Risk </span> </a> </li><li> <a data-e="CTA Clicked" href="/pricing/risk-automations" data-astro-reload="true" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 relative flex items-center justify-center gap-12 py-16 transition-colors text-center text-body hover:text-heading"> <span class="flex shrink-0 [&_svg]:size-[1.375rem] text-body" aria-hidden="true"> <svg fill="none" height="22" viewBox="0 0 22 22" width="22" focusable="false" aria-hidden="true"> 3221 <path d="m15 18.9952h4v-15.9952h-16v4h8v3.9968h-4v3.9984h-4v4h4v-3.9984h4v-3.9984h4z" fill="currentColor"></path> 3222</svg> </span> <span class="font-inter font-normal text-16 text-center"> Risk Automations </span> </a> </li> </ul> </nav> </header> </section>
3222<script type="module" src="/_astro/HubspotHelpers.astro_astro_type_script_index_0_lang.CMOHB6z9.js?dpl=6ab4a3cbb36e820008e2ae9c"></script>
3222 <dialog id="pricing-gate-dialog" data-modal data-modal-static data-columns="6" data-theme="light" closedby="none" aria-labelledby="pricing-gate-title" style="--modal-columns: 6" class="fixed m-0 hidden flex-col overflow-visible border-0 bg-background p-0 pt-16 open:flex focus:outline-none md:m-auto md:pt-0 inset-x-0 bottom-0 top-auto w-full max-w-full max-h-[calc(100%-4rem)] md:inset-0 md:max-w-[calc(100%-4rem)]"> <div aria-hidden="true" class="absolute left-1/2 top-12 h-4 w-40 -translate-x-1/2 rounded-full bg-divider md:hidden"></div> <div class="flex-[1_1_auto] overflow-y-auto p-16 md:p-24"> <div class="my-12"> <div class="flex flex-col justify-center items-center"> <svg width="24" height="24" fill="none" viewBox="0 0 24 24" aria-hidden="true" focusable="false" class="text-heading"> 3223 <path fill="currentColor" d="M9 8h6V4h2v4h3v14H4V8h3V4h2v4ZM6 20h12V10H6v10Zm7-3h-2v-4h2v4Zm2-13H9V2h6v2Z" /> 3224</svg> <h2 class="font-inter-tight font-normal text-24 text-center text-heading leading-tight" id="pricing-gate-title"> 3225See Plans & Pricing 3226 </h2> </div> <div id="pricing-gate-form"> <div class="loader-pg" aria-hidden="true"></div> </div> </div> </div> </dialog>
3226<script type="module">(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"247a098bf374f7ad9be9db1aadc6c2fc36fc4047"}}catch{}})();(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t._sentryModuleMetadata=t._sentryModuleMetadata||{},t._sentryModuleMetadata[new t.Error().stack]=(function(e){for(var n=1;n<arguments.length;n++){var o=arguments[n];if(o!=null)for(var a in o)o.hasOwnProperty(a)&&(e[a]=o[a])}return e})({},t._sentryModuleMetadata[new t.Error().stack],{"_sentryBundlerPluginAppKey:upguard-marketing-site":!0})}catch{}})();function r(t){t.showModal()}function d(t){t.close()}function s(t,e){const n=t.getBoundingClientRect();return e.clientX<n.left||e.clientX>n.right||e.clientY<n.top||e.clientY>n.bottom}function c(t){const e=t.target,n=e.closest("[data-modal-trigger]");if(n){const l=document.getElementById(n.dataset.modalTrigger??"");l instanceof HTMLDialogElement&&r(l);return}const o=e.closest("[data-modal-close]");if(o){const l=o.closest("[data-modal]");l&&d(l);return}const a=e.closest("[data-modal]");a?.open&&e===a&&!a.hasAttribute("data-modal-static")&&s(a,t)&&d(a)}function f(t){t.target.hasAttribute("data-modal-static")&&t.preventDefault()}let i=!1;function u(){i||(i=!0,document.addEventListener("click",c),document.addEventListener("cancel",f,!0))}u();</script>
3226
3226<script> 3227 ;(function () { 3228 // Storage access throws in some privacy modes; treat that as "still locked" 3229 // rather than letting the exception skip showModal() and disable the gate. 3230 function isUnlocked() { 3231 if (new URLSearchParams(window.location.search).has("unlock")) return true 3232 try { 3233 return localStorage.getItem("ug_pricing_requested") === "1" 3234 } catch { 3235 return true 3236 } 3237 } 3238 3239 window.ug = window.ug || {} 3240 window.ug.isPricingGateUnlocked = isUnlocked 3241 3242 if (isUnlocked()) return 3243 3244 var dialog = document.getElementById("pricing-gate-dialog") 3245 if (dialog && !dialog.open) dialog.showModal() 3246 })() 3247</script>
3247
3247<script charset="utf-8" type="text/javascript" src="//js.hsforms.net/forms/embed/v2.js"></script>
3247
3247<script>(function(){const portalId = "228391"; 3248const formId = "ca315345-c51d-493e-8364-441c06abdc44"; 3249const formContainerId = "pricing-gate-form"; 3250 3251 /* 3252 Use an array of already-initialised dialog elements (same pattern as OfficeMap) so that: 3253 - Re-renders of the same element are no-ops (prevents double form mount). 3254 - After a ClientRouter view transition the new dialog element is a fresh object, 3255 so indexOf returns -1 and the form mounts again into the new DOM node. 3256 3257 Claim the dialog only AFTER hbspt is ready. On ClientRouter soft navs, dynamically 3258 inserted
3258<script src> tags are async by default, so the mount script can run before 3259 embed/v2.js defines hbspt. Pushing into $$pricingGateDialogs before create() would 3260 make every later attempt a no-op after a ReferenceError â permanently stuck spinner. 3261 */ 3262 window.ug = window.ug || {} 3263 window.ug.$$pricingGateDialogs = window.ug.$$pricingGateDialogs || [] 3264 // In-flight waits so DOMContentLoaded + astro:page-load cannot both start create(). 3265 window.ug.$$pricingGatePending = window.ug.$$pricingGatePending || [] 3266 3267 var HUBSPOT_WAIT_MS = 100 3268 var HUBSPOT_MAX_TRIES = 100 3269 3270 function showFormFallback() { 3271 var container = document.getElementById(formContainerId) 3272 if (!container) return 3273 if (container.querySelector("form")) return 3274 container.innerHTML = 3275 '<p class="pricing-gate-fallback">Having trouble loading the form? <a href="/contact-sales">Contact sales</a></p>' 3276 } 3277 3278 function whenHubSpotReady(cb, onTimeout) { 3279 var called = false 3280 var poll 3281 function run() { 3282 if (called) return 3283 if (!window.hbspt || !window.hbspt.forms) return 3284 called = true 3285 if (poll) clearInterval(poll) 3286 cb() 3287 } 3288 3289 if (window.hbspt && window.hbspt.forms) { 3290 run() 3291 return 3292 } 3293 3294 var script = document.querySelector( 3295 'script[src*="js.hsforms.net/forms/embed"]', 3296 ) 3297 if (script) { 3298 script.addEventListener("load", run, { once: true }) 3299 } 3300 3301 var tries = 0 3302 poll = setInterval(function () { 3303 if (window.hbspt && window.hbspt.forms) { 3304 run() 3305 } else if (++tries > HUBSPOT_MAX_TRIES) { 3306 clearInterval(poll) 3307 if (!called) { 3308 called = true 3309 if (onTimeout) onTimeout() 3310 } 3311 } 3312 }, HUBSPOT_WAIT_MS) 3313 } 3314 3315 function mountPricingGateForm() { 3316 var dialog = document.getElementById("pricing-gate-dialog") 3317 if (!dialog) return 3318 if (window.ug.$$pricingGateDialogs.indexOf(dialog) !== -1) return 3319 if (window.ug.$$pricingGatePending.indexOf(dialog) !== -1) return 3320 window.ug.$$pricingGatePending.push(dialog) 3321 3322 function releasePending() { 3323 var pendingIdx = window.ug.$$pricingGatePending.indexOf(dialog) 3324 if (pendingIdx !== -1) { 3325 window.ug.$$pricingGatePending.splice(pendingIdx, 1) 3326 } 3327 } 3328 3329 whenHubSpotReady( 3330 function () { 3331 releasePending() 3332 if (window.ug.$$pricingGateDialogs.indexOf(dialog) !== -1) return 3333 window.ug.$$pricingGateDialogs.push(dialog) 3334 3335 /* 3336 onBeforeFormSubmit is the only callback handed the field values, but it fires 3337 before HubSpot has accepted the submission. Stash the values here and do the 3338 tracking and the unlock in onFormSubmitted, so a submission that fails 3339 after client-side validation neither reports a conversion nor unlocks the gate. 3340 */ 3341 var pendingSubmission = null 3342 3343 hbspt.forms.create({ 3344 portalId: portalId, 3345 formId: formId, 3346 region: "na1", 3347 target: "#" + formContainerId, 3348 // Form editor still has redirectUrl â www.upguard.com/pricing; override so 3349 // onFormSubmitted can close the modal in place without a hard navigation. 3350 inlineMessage: " ", 3351 onFormReady: function ($form) { 3352 // HubSpot may pass a jQuery object or a DOM element depending on embed version 3353 var formEl = $form instanceof Element ? $form : $form[0] 3354 if (formEl) { 3355 formEl.classList.add("mounted") 3356 // Submit label lives on the HubSpot form; override here so we can 3357 // keep the shared form definition and still match gate copy. 3358 var submitBtn = formEl.querySelector(".hs-button") 3359 if (submitBtn) { 3360 submitBtn.value = "Unlock Pricing" 3361 submitBtn.textContent = "Unlock Pricing" 3362 } 3363 // Belt-and-braces: strip redirect from the hidden hs_context payload. 3364 var ctx = formEl.querySelector('input[name="hs_context"]') 3365 if (ctx && ctx.value) { 3366 try { 3367 var data = JSON.parse(ctx.value) 3368 data.redirectUrl = "" 3369 ctx.value = JSON.stringify(data) 3370 } catch {} 3371 } 3372 } 3373 }, 3374 onBeforeFormSubmit: function ($form, submissionValues) { 3375 pendingSubmission = submissionValues 3376 var formEl = $form instanceof Element ? $form : $form && $form[0] 3377 if (formEl) { 3378 var ctx = formEl.querySelector('input[name="hs_context"]') 3379 if (ctx && ctx.value) { 3380 try { 3381 var data = JSON.parse(ctx.value) 3382 data.redirectUrl = "" 3383 ctx.value = JSON.stringify(data) 3384 } catch {} 3385 } 3386 } 3387 }, 3388 onFormSubmitted: function () { 3389 if (pendingSubmission) { 3390 window.ug.trackPricingRequested(pendingSubmission) 3391 pendingSubmission = null 3392 } 3393 3394 // Persisting is best-effort â never let blocked storage strand the 3395 // visitor behind a modal they have already submitted. 3396 try { 3397 localStorage.setItem("ug_pricing_requested", "1") 3398 } catch {} 3399 3400 dialog.close() 3401 var heading = document.querySelector("h1") 3402 if (heading instanceof HTMLElement) { 3403 if (!heading.hasAttribute("tabindex")) { 3404 heading.setAttribute("tabindex", "-1") 3405 } 3406 heading.focus() 3407 } 3408 }, 3409 }) 3410 }, 3411 function () { 3412 releasePending() 3413 showFormFallback() 3414 }, 3415 ) 3416 } 3417 3418 // Soft navs re-inject the HubSpot script as async; remount on astro:page-load 3419 // so a fresh dialog element gets create() after hbspt is ready. 3420 document.addEventListener("astro:page-load", mountPricingGateForm) 3421 if (document.readyState === "loading") { 3422 document.addEventListener("DOMContentLoaded", mountPricingGateForm) 3423 } else { 3424 mountPricingGateForm() 3425 } 3426})();</script>
3426
3426<script type="module">(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"247a098bf374f7ad9be9db1aadc6c2fc36fc4047"}}catch{}})();(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e._sentryModuleMetadata=e._sentryModuleMetadata||{},e._sentryModuleMetadata[new e.Error().stack]=(function(n){for(var d=1;d<arguments.length;d++){var t=arguments[d];if(t!=null)for(var a in t)t.hasOwnProperty(a)&&(n[a]=t[a])}return n})({},e._sentryModuleMetadata[new e.Error().stack],{"_sentryBundlerPluginAppKey:upguard-marketing-site":!0})}catch{}})();document.addEventListener("astro:page-load",()=>{if(window.ug?.isPricingGateUnlocked?.())return;const e=document.getElementById("pricing-gate-dialog");e&&!e.open&&e.showModal()});</script>
3426<section class="mx-auto w-[calc(100%-2*var(--gap))] max-w-none lg:max-w-[88.5rem] lg:w-[calc(100%-4*var(--gap))]"> <div class="grid gap-24 items-stretch grid-cols-1 min-[40rem]:grid-cols-2 lg:grid-cols-4"> <div class="min-h-[30.625rem] w-full flex flex-col gap-24 p-24 text-body bg-gray-150" data-theme="light"> <h2 class="font-inter-tight font-normal text-24 text-heading"> Standard </h2> <div class="min-h-[3.5rem]"> <div class="font-inter font-normal text-14"> <div class="flex items-baseline gap-4"> <div class="font-inter-tight font-normal text-24 text-heading"> 3427$1,750 </div> <span>/mo, billed annually</span> </div> </div> </div> <div class="min-h-48"> <p class="font-inter font-normal text-16 text-heading text-balance"> Move from manual to automated risk management </p> </div> <div class="flex min-h-0 flex-col gap-16 overflow-hidden"> <span class="font-inter font-normal text-14 shrink-0 text-body"> Key features: </span> <div class="font-inter font-normal text-14"> <section class="richtext-excerpt" data-astro-cid-zouxod32="true"> <ul> <li>Monitor 50 Vendors</li><li>Vendor Security Ratings</li><li>Assessment & Remediation Workflows</li><li>Additional Vendors for $79/month</li> </ul> </section> </div> </div> <div class="pt-16 mt-auto"> <a data-e="CTA Clicked" data-e-link-type="free_trial_button" data-e-location="pricing_card_vendor_risk_standard" href="/demo?pricing=Vendor%20Risk%3A%20Standard" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 text-14 rounded-[1.3125rem] inline-flex justify-center disabled:opacity-50 bg-gray-900 text-white dark:bg-white dark:text-gray-900 group"> <div class="inline-flex relative overflow-hidden"> <span class="inline-flex w-full h-full transition-all duration-250 ease-out group-not-disabled:group-hover:opacity-0 group-not-disabled:group-hover:-translate-y-full group-not-disabled:group-hover:skew-y-15 group-not-disabled:group-active:opacity-0 group-not-disabled:group-active:-translate-y-full group-not-disabled:group-active:skew-y-15 group-not-disabled:group-focus-visible:opacity-0 group-not-disabled:group-focus-visible:-translate-y-full group-not-disabled:group-focus-visible:skew-y-15 gap-8 py-[0.5625rem] px-[1.5rem]"> Start my free trial </span> <span aria-hidden="true" class="inline-flex w-full h-full transition-all duration-250 ease-out gap-8 py-[0.5625rem] px-[1.5rem] absolute top-0 left-0 opacity-0 translate-y-full skew-y-15 group-not-disabled:group-hover:opacity-100 group-not-disabled:group-hover:translate-y-0 group-not-disabled:group-hover:skew-y-0 group-not-disabled:group-active:opacity-100 group-not-disabled:group-active:translate-y-0 group-not-disabled:group-active:skew-y-0 group-not-disabled:group-focus-visible:opacity-100 group-not-disabled:group-focus-visible:translate-y-0 group-not-disabled:group-focus-visible:skew-y-0"> Start my free trial </span> </div> </a> </div> </div><div class="min-h-[30.625rem] w-full flex flex-col gap-24 p-24 text-body bg-gray-150" data-theme="light"> <h2 class="font-inter-tight font-normal text-24 text-heading"> Professional </h2> <div class="min-h-[3.5rem]"> <div class="font-inter-tight font-normal text-24"> Contact us </div> </div> <div class="min-h-48"> <p class="font-inter font-normal text-16 text-heading text-balance"> Start to scale your third-party risk program </p> </div> <div class="flex min-h-0 flex-col gap-16 overflow-hidden"> <span class="font-inter font-normal text-14 shrink-0 text-body"> Everything in Standard, and: </span> <div class="font-inter font-normal text-14"> <section class="richtext-excerpt" data-astro-cid-zouxod32="true"> <ul> <li>Monitor 150 Vendors</li><li>Role Based Accounts</li><li>Custom Co-Branding</li> </ul> </section> </div> </div> <div class="pt-16 mt-auto"> <a data-e="CTA Clicked" data-e-link-type="free_trial_button" data-e-location="pricing_card_vendor_risk_professional" href="/demo?pricing=Vendor%20Risk%3A%20Professional" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 text-14 rounded-[1.3125rem] inline-flex justify-center disabled:opacity-50 bg-gray-900 text-white dark:bg-white dark:text-gray-900 group"> <div class="inline-flex relative overflow-hidden"> <span class="inline-flex w-full h-full transition-all duration-250 ease-out group-not-disabled:group-hover:opacity-0 group-not-disabled:group-hover:-translate-y-full group-not-disabled:group-hover:skew-y-15 group-not-disabled:group-active:opacity-0 group-not-disabled:group-active:-translate-y-full group-not-disabled:group-active:skew-y-15 group-not-disabled:group-focus-visible:opacity-0 group-not-disabled:group-focus-visible:-translate-y-full group-not-disabled:group-focus-visible:skew-y-15 gap-8 py-[0.5625rem] px-[1.5rem]"> Start my free trial </span> <span aria-hidden="true" class="inline-flex w-full h-full transition-all duration-250 ease-out gap-8 py-[0.5625rem] px-[1.5rem] absolute top-0 left-0 opacity-0 translate-y-full skew-y-15 group-not-disabled:group-hover:opacity-100 group-not-disabled:group-hover:translate-y-0 group-not-disabled:group-hover:skew-y-0 group-not-disabled:group-active:opacity-100 group-not-disabled:group-active:translate-y-0 group-not-disabled:group-active:skew-y-0 group-not-disabled:group-focus-visible:opacity-100 group-not-disabled:group-focus-visible:translate-y-0 group-not-disabled:group-focus-visible:skew-y-0"> Start my free trial </span> </div> </a> </div> </div><div class="min-h-[30.625rem] w-full flex flex-col gap-24 p-24 text-body bg-background" data-theme="dark"> <h2 class="font-inter-tight font-normal text-24 text-heading"> Corporate </h2> <div class="min-h-[3.5rem]"> <div class="font-inter-tight font-normal text-24"> Contact us </div> </div> <div class="min-h-48"> <p class="font-inter font-normal text-16 text-heading text-balance"> Strengthen governance and oversight across your ecosystem </p> </div> <div class="flex min-h-0 flex-col gap-16 overflow-hidden"> <span class="font-inter font-normal text-14 shrink-0 text-body"> Everything in Professional, and: </span> <div class="font-inter font-normal text-14"> <section class="richtext-excerpt" data-astro-cid-zouxod32="true"> <ul> <li>Monitor 500 Vendors</li><li>Fourth Parties</li><li>Audit Log</li> </ul> </section> </div> </div> <div class="pt-16 mt-auto"> <a data-e="CTA Clicked" data-e-link-type="book_demo_button" data-e-location="pricing_card_vendor_risk_corporate" href="/contact-sales?pricing=Vendor%20Risk%3A%20Corporate" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 text-14 rounded-[1.3125rem] inline-flex justify-center disabled:opacity-50 bg-gray-900 text-white dark:bg-white dark:text-gray-900 group"> <div class="inline-flex relative overflow-hidden"> <span class="inline-flex w-full h-full transition-all duration-250 ease-out group-not-disabled:group-hover:opacity-0 group-not-disabled:group-hover:-translate-y-full group-not-disabled:group-hover:skew-y-15 group-not-disabled:group-active:opacity-0 group-not-disabled:group-active:-translate-y-full group-not-disabled:group-active:skew-y-15 group-not-disabled:group-focus-visible:opacity-0 group-not-disabled:group-focus-visible:-translate-y-full group-not-disabled:group-focus-visible:skew-y-15 gap-8 py-[0.5625rem] px-[1.5rem]"> Get a demo </span> <span aria-hidden="true" class="inline-flex w-full h-full transition-all duration-250 ease-out gap-8 py-[0.5625rem] px-[1.5rem] absolute top-0 left-0 opacity-0 translate-y-full skew-y-15 group-not-disabled:group-hover:opacity-100 group-not-disabled:group-hover:translate-y-0 group-not-disabled:group-hover:skew-y-0 group-not-disabled:group-active:opacity-100 group-not-disabled:group-active:translate-y-0 group-not-disabled:group-active:skew-y-0 group-not-disabled:group-focus-visible:opacity-100 group-not-disabled:group-focus-visible:translate-y-0 group-not-disabled:group-focus-visible:skew-y-0"> Get a demo </span> </div> </a> </div> </div><div class="min-h-[30.625rem] w-full flex flex-col gap-24 p-24 text-body bg-gray-150" data-theme="light"> <h2 class="font-inter-tight font-normal text-24 text-heading"> Enterprise+ </h2> <div class="min-h-[3.5rem]"> <div class="font-inter-tight font-normal text-24"> Contact us </div> </div> <div class="min-h-48"> <p class="font-inter font-normal text-16 text-heading text-balance"> Orchestrate risk management across complex ecosystems </p> </div> <div class="flex min-h-0 flex-col gap-16 overflow-hidden"> <span class="font-inter font-normal text-14 shrink-0 text-body"> Everything in Corporate, and: </span> <div class="font-inter font-normal text-14"> <section class="richtext-excerpt" data-astro-cid-zouxod32="true"> <ul> <li>Monitor Unlimited Vendors</li><li>Unlimited Platform Users</li><li>Multi-Org Accounts</li><li>Enterprise Support</li> </ul> </section> </div> </div> <div class="pt-16 mt-auto"> <a data-e="CTA Clicked" data-e-link-type="book_demo_button" data-e-location="pricing_card_vendor_risk_enterprise_plus" href="/contact-sales?pricing=Vendor%20Risk%3A%20Enterprise%20Plus" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 text-14 rounded-[1.3125rem] inline-flex justify-center disabled:opacity-50 bg-gray-900 text-white dark:bg-white dark:text-gray-900 group"> <div class="inline-flex relative overflow-hidden"> <span class="inline-flex w-full h-full transition-all duration-250 ease-out group-not-disabled:group-hover:opacity-0 group-not-disabled:group-hover:-translate-y-full group-not-disabled:group-hover:skew-y-15 group-not-disabled:group-active:opacity-0 group-not-disabled:group-active:-translate-y-full group-not-disabled:group-active:skew-y-15 group-not-disabled:group-focus-visible:opacity-0 group-not-disabled:group-focus-visible:-translate-y-full group-not-disabled:group-focus-visible:skew-y-15 gap-8 py-[0.5625rem] px-[1.5rem]"> Get a demo </span> <span aria-hidden="true" class="inline-flex w-full h-full transition-all duration-250 ease-out gap-8 py-[0.5625rem] px-[1.5rem] absolute top-0 left-0 opacity-0 translate-y-full skew-y-15 group-not-disabled:group-hover:opacity-100 group-not-disabled:group-hover:translate-y-0 group-not-disabled:group-hover:skew-y-0 group-not-disabled:group-active:opacity-100 group-not-disabled:group-active:translate-y-0 group-not-disabled:group-active:skew-y-0 group-not-disabled:group-focus-visible:opacity-100 group-not-disabled:group-focus-visible:translate-y-0 group-not-disabled:group-focus-visible:skew-y-0"> Get a demo </span> </div> </a> </div> </div> </div> </section> <section class="mx-auto w-[calc(100%-2*var(--gap))] max-w-none lg:max-w-[88.5rem] lg:w-[calc(100%-4*var(--gap))] my-128"> <h2 class="font-inter-tight font-normal text-24 text-heading max-w-none md:max-w-[50rem] mx-auto text-center"> Vendor Risk helps you take control of vendor risk management with continuous vendor insights, 360-degree assessments, and efficie
3427nt Al-powered workflows. </h2> </section> <section class="mx-auto w-[calc(100%-2*var(--gap))] max-w-none lg:max-w-[88.5rem] lg:w-[calc(100%-4*var(--gap))] pb-64 md:pb-128"> <div class role="region" aria-label="Vendor Risk Pricing Table: Pricing comparison: SMB, Corporate, Enterprise, Enterprise+" x-data="stickyTableState()" @mouseleave="clearHover()"> <div class="sticky top-0 min-[66.25rem]:top-[4.5rem] z-40"> <div class="overflow-x-auto overflow-y-hidden relative bg-background [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden" x-ref="headerScroll" @scroll="syncScroll('headerScroll', 'bodyScroll')"> <div class="pointer-events-none absolute left-0 top-0 z-0 mix-blend-multiply transition-opacity duration-250 ease-out motion-reduce:transition-none" x-bind:style="`opacity: ${colOverlay.visible ? 1 : 0};`" aria-hidden="true"> <div class="absolute left-0 top-0 bg-layer-1 transition-[transform,height,width] duration-250 ease-out motion-reduce:transition-none" x-bind:style="`transform: translate3d(${colOverlay.x}px, 0, 0); height: ${$refs.headerTable ? $refs.headerTable.offsetHeight : 0}px; width: ${colOverlay.width}px;`"></div> </div> <table class="w-full min-w-[40rem] table-fixed text-left relative z-10" x-ref="headerTable" aria-hidden="true"> <colgroup> <col style="width: 10.5rem"> <col style="width: 12.5rem"><col style="width: 12.5rem"><col style="width: 12.5rem"><col style="width: 12.5rem"><col style="width: 12.5rem"> </colgroup> <thead class="border-b border-divider"> <tr class @mouseenter="setHoveredFromRow($el)"> <th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <span class="sr-only">Feature</span> </th> <th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Standard </span> <div class="font-inter font-normal text-14"> <div class="flex items-baseline gap-4"> <div class="font-inter font-normal text-14 text-heading"> 3428$1,750 </div> <span>/mo, billed annually</span> </div> </div> </div> </th><th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Professional </span> <a href="/contact-sales?pricing=Vendor%20Risk%3A%20Professional" data-e="CTA Clicked" data-e-link-type="free_trial_button" data-e-location="pricing_table_vendor_risk_professional" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 underline transition ease-out hover:text-heading">Contact sales </a> </div> </th><th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Corporate </span> <a href="/contact-sales?pricing=Vendor%20Risk%3A%20Corporate" data-e="CTA Clicked" data-e-link-type="book_demo_button" data-e-location="pricing_table_vendor_risk_corporate" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 underline transition ease-out hover:text-heading">Contact sales </a> </div> </th><th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg
3428-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Enterprise </span> <a href="/contact-sales?pricing=Vendor%20Risk%3A%20Enterprise" data-e="CTA Clicked" data-e-link-type="book_demo_button" data-e-location="pricing_table_vendor_risk_enterprise" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 underline transition ease-out hover:text-heading">Contact sales </a> </div> </th><th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Enterprise+ </span> <a href="/contact-sales?pricing=Vendor%20Risk%3A%20Enterprise%20Plus" data-e="CTA Clicked" data-e-link-type="book_demo_button" data-e-location="pricing_table_vendor_risk_enterprise_plus" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 underline transition ease-out hover:text-heading">Contact sales </a> </div> </th> </tr> </thead> </table> </div> </div> <div class="overflow-x-auto overflow-y-visible relative" x-ref="bodyScroll" @mouseleave="clearHover()" @scroll="syncScroll('bodyScroll', 'headerScroll')"> <div class="pointer-events-none absolute left-0 top-0 z-20 mix-blend-multiply transition-opacity duration-250 ease-out motion-reduce:transition-none" x-bind:style="`opacity: ${rowOverlay.visible || colOverlay.visible ? 1 : 0};`" aria-hidden="true"> <div class="absolute left-0 top-0 bg-layer-1 transition-[transform,height,width,opacity] duration-250 ease-out motion-reduce:transition-none" x-bind:style="`transform: translate3d(0, ${rowOverlay.y}px, 0); height: ${rowOverlay.height}px; width: ${rowOverlay.width}px; opacity: ${rowOverlay.visible ? 1 : 0};`"></div> <div class="absolute left-0 top-0 bg-layer-1 transition-[transform,height,width,opacity] duration-250 ease-out motion-reduce:transition-none" x-bind:style="`transform: translate3d(${colOverlay.x}px, 0, 0); height: ${colOverlay.height}px; width: ${colOverlay.width}px; opacity: ${colOverlay.visible ? 1 : 0};`"></div> </div> <table class="w-full min-w-[40rem] table-fixed text-left relative z-10" x-ref="bodyTable"> <caption class="sr-only">Vendor Risk Pricing Table: Pricing comparison: SMB, Corporate, Enterprise, Enterprise+</caption> <colgroup> <col style="width: 10.5rem"> <col style="width: 12.5rem"><col style="width: 12.5rem"><col style="width: 12.5rem"><col style="width: 12.5rem"><col style="width: 12.5rem"> </colgroup> <thead class="sr-only"><tr class @mouseenter="setHoveredFromRow($el)"> <th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <span class="sr-only">Feature</span> </th> <th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Standard </span> <div class="font-inter font-normal text-14"> <div class="flex items-baseline gap-4"> <div class="font-inter font-normal text-14 text-heading"> 3429$1,750 </div> <span>/mo, billed annually</span> </div> </div> </div> </th><th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg
3429-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Professional </span> <a href="/contact-sales?pricing=Vendor%20Risk%3A%20Professional" data-e="CTA Clicked" data-e-link-type="free_trial_button" data-e-location="pricing_table_vendor_risk_professional" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 underline transition ease-out hover:text-heading">Contact sales </a> </div> </th><th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Corporate </span> <a href="/contact-sales?pricing=Vendor%20Risk%3A%20Corporate" data-e="CTA Clicked" data-e-link-type="book_demo_button" data-e-location="pricing_table_vendor_risk_corporate" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 underline transition ease-out hover:text-heading">Contact sales </a> </div> </th><th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Enterprise </span> <a href="/contact-sales?pricing=Vendor%20Risk%3A%20Enterprise" data-e="CTA Clicked" data-e-link-type="book_demo_button" data-e-location="pricing_table_vendor_risk_enterprise" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 underline transition ease-out hover:text-heading">Contact sales </a> </div> </th><th scope="col" class="sticky top-0 md:top-[4.5rem] z-10 px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 w-[12.5rem] first:sticky first:left-0 first:z-50 first:bg-background first:min-w-[10.5rem] first:w-[10.5rem]" :class="($el.cellIndex === 0 && hoveredCol === 0) && 'bg-layer-1!'" @mouseenter="setHoveredFromHeader($el)"> <div class="flex flex-col gap-4"> <span class="font-inter-tight font-normal text-24 text-heading"> Enterprise+ </span> <a href="/contact-sales?pricing=Vendor%20Risk%3A%20Enterprise%20Plus" data-e="CTA Clicked" data-e-link-type="book_demo_button" data-e-location="pricing_table_vendor_risk_enterprise_plus" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 underline transition ease-out hover:text-heading">Contact sales </a> </div> </th> </tr></thead><tbody> <tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Vendor Monitoring Slots </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3430 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3431 show() { this.open = true; this.$nextTick(() => this.place()) }, 3432 hide() { this.open = false }, 3433 toggle() { this.open ? this.hide() : this.show() }, 3434 place() { 3435 if (!this.open) return; 3436 const t = this.$refs.trigger?.getBoundingClientRect(); 3437 const p = this.$refs.tooltip?.getBoundingClientRect(); 3438 if (!t || !p) return; 3439 const cx = t.left + t.width / 2; 3440 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3441 this.above = t.top - p.height - 8 >= 12; 3442 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3443 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3444 }, 3445 reposition() { 3446 if (this._raf) return; 3447 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3448 }, 3449}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Vendor Monitoring Slots" aria-describedby="tooltip-d2296557-5515-4dea-85d9-d8536d7c892d"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3450 <g fill="#6b6b6b"> 3451 <path d="m9 9h2v2h-2z" /> 3452 <path d="m11 7h3v2h-3z" /> 3453 <path d="m14 9h2v3h-2z" /> 3454 <path d="m12 12h2v3h-2z" /> 3455 <path d="m12 17h2v2h-2z" /> 3456 </g> 3457</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-d2296557-5515-4dea-85d9-d8536d7c892d" role="tooltip" aria-label="Continuously monitor vendors for security changes, rating drops, and new risks that could impact your business" aria-labelledby="tooltip-d2296557-5515-4dea-85d9-d8536d7c892d-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-d2296557-5515-4dea-85d9-d8536d7c892d-content"> Continuously monitor vendors for security changes, rating drops, and new risks that could impact your business </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3457-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> 50 </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> 150 </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> 500 </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> Unlimited </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> Unlimited </span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Platform Users (Admin/General) </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3458 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3459 show() { this.open = true; this.$nextTick(() => this.place()) }, 3460 hide() { this.open = false }, 3461 toggle() { this.open ? this.hide() : this.show() }, 3462 place() { 3463 if (!this.open) return; 3464 const t = this.$refs.trigger?.getBoundingClientRect(); 3465 const p = this.$refs.tooltip?.getBoundingClientRect(); 3466 if (!t || !p) return; 3467 const cx = t.left + t.width / 2; 3468 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3469 this.above = t.top - p.height - 8 >= 12; 3470 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3471 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3472 }, 3473 reposition() { 3474 if (this._raf) return; 3475 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3476 }, 3477}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Platform Users (Admin/General)" aria-describedby="tooltip-cf43b8f5-d96b-4593-8ff2-e92f0e833a41"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3478 <g fill="#6b6b6b"> 3479 <path d="m9 9h2v2h-2z" /> 3480 <path d="m11 7h3v2h-3z" /> 3481 <path d="m14 9h2v3h-2z" /> 3482 <path d="m12 12h2v3h-2z" /> 3483 <path d="m12 17h2v2h-2z" /> 3484 </g> 3485</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-cf43b8f5-d96b-4593-8ff2-e92f0e833a41" role="tooltip" aria-label="Tailor access for your team to protect sensitive information" aria-labelledby="tooltip-cf43b8f5-d96b-4593-8ff2-e92f0e833a41-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-cf43b8f5-d96b-4593-8ff2-e92f0e833a41-content"> Tailor access for your team to protect sensitive information </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3485-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> 6 </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> 6 </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> 10 </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> 30 </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> Unlimited </span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Platform Users (Read-only) </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3486 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3487 show() { this.open = true; this.$nextTick(() => this.place()) }, 3488 hide() { this.open = false }, 3489 toggle() { this.open ? this.hide() : this.show() }, 3490 place() { 3491 if (!this.open) return; 3492 const t = this.$refs.trigger?.getBoundingClientRect(); 3493 const p = this.$refs.tooltip?.getBoundingClientRect(); 3494 if (!t || !p) return; 3495 const cx = t.left + t.width / 2; 3496 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3497 this.above = t.top - p.height - 8 >= 12; 3498 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3499 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3500 }, 3501 reposition() { 3502 if (this._raf) return; 3503 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3504 }, 3505}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Platform Users (Read-only)" aria-describedby="tooltip-eda79d88-5cdd-488b-8f30-dc18b6cfbf84"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3506 <g fill="#6b6b6b"> 3507 <path d="m9 9h2v2h-2z" /> 3508 <path d="m11 7h3v2h-3z" /> 3509 <path d="m14 9h2v3h-2z" /> 3510 <path d="m12 12h2v3h-2z" /> 3511 <path d="m12 17h2v2h-2z" /> 3512 </g> 3513</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-eda79d88-5cdd-488b-8f30-dc18b6cfbf84" role="tooltip" aria-label="View-only access for executives and stakeholders who need visibility without edit permissions" aria-labelledby="tooltip-eda79d88-5cdd-488b-8f30-dc18b6cfbf84-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-eda79d88-5cdd-488b-8f30-dc18b6cfbf84-content"> View-only access for executives and stakeholders who need visibility without edit permissions </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3513-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> Unlimited </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> Unlimited </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> Unlimited </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> Unlimited </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> Unlimited </span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Role-Based Access </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3514 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3515 show() { this.open = true; this.$nextTick(() => this.place()) }, 3516 hide() { this.open = false }, 3517 toggle() { this.open ? this.hide() : this.show() }, 3518 place() { 3519 if (!this.open) return; 3520 const t = this.$refs.trigger?.getBoundingClientRect(); 3521 const p = this.$refs.tooltip?.getBoundingClientRect(); 3522 if (!t || !p) return; 3523 const cx = t.left + t.width / 2; 3524 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3525 this.above = t.top - p.height - 8 >= 12; 3526 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3527 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3528 }, 3529 reposition() { 3530 if (this._raf) return; 3531 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3532 }, 3533}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Role-Based Access" aria-describedby="tooltip-56b40d12-af2a-4c2b-812a-aaf1b87ae5f1"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3534 <g fill="#6b6b6b"> 3535 <path d="m9 9h2v2h-2z" /> 3536 <path d="m11 7h3v2h-3z" /> 3537 <path d="m14 9h2v3h-2z" /> 3538 <path d="m12 12h2v3h-2z" /> 3539 <path d="m12 17h2v2h-2z" /> 3540 </g> 3541</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-56b40d12-af2a-4c2b-812a-aaf1b87ae5f1" role="tooltip" aria-label="Control who can view, edit, and manage specific data across your vendor risk program" aria-labelledby="tooltip-56b40d12-af2a-4c2b-812a-aaf1b87ae5f1-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-56b40d12-af2a-4c2b-812a-aaf1b87ae5f1-content"> Control who can view, edit, and manage specific data across your vendor risk program </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3541-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3542 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3543</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3544 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3545</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3546 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3547</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3548 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3549</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Audit Log </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3550 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3551 show() { this.open = true; this.$nextTick(() => this.place()) }, 3552 hide() { this.open = false }, 3553 toggle() { this.open ? this.hide() : this.show() }, 3554 place() { 3555 if (!this.open) return; 3556 const t = this.$refs.trigger?.getBoundingClientRect(); 3557 const p = this.$refs.tooltip?.getBoundingClientRect(); 3558 if (!t || !p) return; 3559 const cx = t.left + t.width / 2; 3560 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3561 this.above = t.top - p.height - 8 >= 12; 3562 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3563 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3564 }, 3565 reposition() { 3566 if (this._raf) return; 3567 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3568 }, 3569}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Audit Log" aria-describedby="tooltip-bebaa9ea-9632-4b0f-b7bc-8ee98521ed15"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3570 <g fill="#6b6b6b"> 3571 <path d="m9 9h2v2h-2z" /> 3572 <path d="m11 7h3v2h-3z" /> 3573 <path d="m14 9h2v3h-2z" /> 3574 <path d="m12 12h2v3h-2z" /> 3575 <path d="m12 17h2v2h-2z" /> 3576 </g> 3577</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-bebaa9ea-9632-4b0f-b7bc-8ee98521ed15" role="tooltip" aria-label="Maintain a complete record of user activity to support audits and demonstrate oversight" aria-labelledby="tooltip-bebaa9ea-9632-4b0f-b7bc-8ee98521ed15-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-bebaa9ea-9632-4b0f-b7bc-8ee98521ed15-content"> Maintain a complete record of user activity to support audits and demonstrate oversight </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3577-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3578 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3579</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3580 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3581</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3582 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3583</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3584 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3585</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> SSO </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3586 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3587 show() { this.open = true; this.$nextTick(() => this.place()) }, 3588 hide() { this.open = false }, 3589 toggle() { this.open ? this.hide() : this.show() }, 3590 place() { 3591 if (!this.open) return; 3592 const t = this.$refs.trigger?.getBoundingClientRect(); 3593 const p = this.$refs.tooltip?.getBoundingClientRect(); 3594 if (!t || !p) return; 3595 const cx = t.left + t.width / 2; 3596 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3597 this.above = t.top - p.height - 8 >= 12; 3598 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3599 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3600 }, 3601 reposition() { 3602 if (this._raf) return; 3603 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3604 }, 3605}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about SSO" aria-describedby="tooltip-8c846cdb-0900-4425-ac19-d902db388b44"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3606 <g fill="#6b6b6b"> 3607 <path d="m9 9h2v2h-2z" /> 3608 <path d="m11 7h3v2h-3z" /> 3609 <path d="m14 9h2v3h-2z" /> 3610 <path d="m12 12h2v3h-2z" /> 3611 <path d="m12 17h2v2h-2z" /> 3612 </g> 3613</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-8c846cdb-0900-4425-ac19-d902db388b44" role="tooltip" aria-label="Enable secure, enterprise-grade access through your existing identity provider (e.g., Microsoft Azure, Okta, Ping Identity)" aria-labelledby="tooltip-8c846cdb-0900-4425-ac19-d902db388b44-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-8c846cdb-0900-4425-ac19-d902db388b44-content"> Enable secure, enterprise-grade access through your existing identity provider (e.g., Microsoft Azure, Okta, Ping Identity) </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3613-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3614 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3615</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3616 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3617</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3618 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3619</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3620 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3621</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3622 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3623</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> API Access </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3624 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3625 show() { this.open = true; this.$nextTick(() => this.place()) }, 3626 hide() { this.open = false }, 3627 toggle() { this.open ? this.hide() : this.show() }, 3628 place() { 3629 if (!this.open) return; 3630 const t = this.$refs.trigger?.getBoundingClientRect(); 3631 const p = this.$refs.tooltip?.getBoundingClientRect(); 3632 if (!t || !p) return; 3633 const cx = t.left + t.width / 2; 3634 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3635 this.above = t.top - p.height - 8 >= 12; 3636 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3637 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3638 }, 3639 reposition() { 3640 if (this._raf) return; 3641 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3642 }, 3643}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about API Access" aria-describedby="tooltip-ed535011-32f5-4640-8c17-0397238c811c"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3644 <g fill="#6b6b6b"> 3645 <path d="m9 9h2v2h-2z" /> 3646 <path d="m11 7h3v2h-3z" /> 3647 <path d="m14 9h2v3h-2z" /> 3648 <path d="m12 12h2v3h-2z" /> 3649 <path d="m12 17h2v2h-2z" /> 3650 </g> 3651</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-ed535011-32f5-4640-8c17-0397238c811c" role="tooltip" aria-label="Integrate vendor risk data into other internal systems for downstream reporting and workflows" aria-labelledby="tooltip-ed535011-32f5-4640-8c17-0397238c811c-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-ed535011-32f5-4640-8c17-0397238c811c-content"> Integrate vendor risk data into other internal systems for downstream reporting and workflows </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3651-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3652 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3653</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3654 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3655</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3656 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3657</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3658 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3659</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3660 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3661</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> News & Incidents </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3662 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3663 show() { this.open = true; this.$nextTick(() => this.place()) }, 3664 hide() { this.open = false }, 3665 toggle() { this.open ? this.hide() : this.show() }, 3666 place() { 3667 if (!this.open) return; 3668 const t = this.$refs.trigger?.getBoundingClientRect(); 3669 const p = this.$refs.tooltip?.getBoundingClientRect(); 3670 if (!t || !p) return; 3671 const cx = t.left + t.width / 2; 3672 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3673 this.above = t.top - p.height - 8 >= 12; 3674 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3675 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3676 }, 3677 reposition() { 3678 if (this._raf) return; 3679 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3680 }, 3681}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about News & Incidents" aria-describedby="tooltip-67a6f213-cfad-4bb0-acbf-2ce6fb95e8db"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3682 <g fill="#6b6b6b"> 3683 <path d="m9 9h2v2h-2z" /> 3684 <path d="m11 7h3v2h-3z" /> 3685 <path d="m14 9h2v3h-2z" /> 3686 <path d="m12 12h2v3h-2z" /> 3687 <path d="m12 17h2v2h-2z" /> 3688 </g> 3689</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-67a6f213-cfad-4bb0-acbf-2ce6fb95e8db" role="tooltip" aria-label="Receive instant alerts when vend
3689ors experience breaches or major security events that change their risk profile" aria-labelledby="tooltip-67a6f213-cfad-4bb0-acbf-2ce6fb95e8db-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-67a6f213-cfad-4bb0-acbf-2ce6fb95e8db-content"> Receive instant alerts when vendors experience breaches or major security events that change their risk profile </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3690 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3691</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3692 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3693</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3694 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3695</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3696 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3697</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3698 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3699</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3699-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Vendor Summary </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3700 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3701 show() { this.open = true; this.$nextTick(() => this.place()) }, 3702 hide() { this.open = false }, 3703 toggle() { this.open ? this.hide() : this.show() }, 3704 place() { 3705 if (!this.open) return; 3706 const t = this.$refs.trigger?.getBoundingClientRect(); 3707 const p = this.$refs.tooltip?.getBoundingClientRect(); 3708 if (!t || !p) return; 3709 const cx = t.left + t.width / 2; 3710 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3711 this.above = t.top - p.height - 8 >= 12; 3712 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3713 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3714 }, 3715 reposition() { 3716 if (this._raf) return; 3717 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3718 }, 3719}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Vendor Summary" aria-describedby="tooltip-fd2a192d-56e2-4f9b-9880-1242f56d1c4b"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3720 <g fill="#6b6b6b"> 3721 <path d="m9 9h2v2h-2z" /> 3722 <path d="m11 7h3v2h-3z" /> 3723 <path d="m14 9h2v3h-2z" /> 3724 <path d="m12 12h2v3h-2z" /> 3725 <path d="m12 17h2v2h-2z" /> 3726 </g> 3727</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-fd2a192d-56e2-4f9b-9880-1242f56d1c4b" role="tooltip" aria-label="Centralize tiers, tags, portfolios, and custom attributes to organize your vendor inventoryâmaking filtering, reporting, and program oversight effortless." aria-labelledby="tooltip-fd2a192d-56e2-4f9b-9880-1242f56d1c4b-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-fd2a192d-56e2-4f9b-9880-1242f56d1c4b-content"> Centralize tiers, tags, portfolios, and custom attributes to organize your vendor inventoryâmaking filtering, reporting, and program oversight effortless. </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3728 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3729</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3730 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3731</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3731-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3732 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3733</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3734 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3735</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3736 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3737</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Onboarding Questionnaire </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3738 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3739 show() { this.open = true; this.$nextTick(() => this.place()) }, 3740 hide() { this.open = false }, 3741 toggle() { this.open ? this.hide() : this.show() }, 3742 place() { 3743 if (!this.open) return; 3744 const t = this.$refs.trigger?.getBoundingClientRect(); 3745 const p = this.$refs.tooltip?.getBoundingClientRect(); 3746 if (!t || !p) return; 3747 const cx = t.left + t.width / 2; 3748 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3749 this.above = t.top - p.height - 8 >= 12; 3750 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3751 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3752 }, 3753 reposition() { 3754 if (this._raf) return; 3755 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3756 }, 3757}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Onboarding Questionnaire" aria-describedby="tooltip-f91ef376-bd9b-4965-93b8-8749a55c858c"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3758 <g fill="#6b6b6b"> 3759 <path d="m9 9h2v2h-2z" /> 3760 <path d="m11 7h3v2h-3z" /> 3761 <path d="m14 9h2v3h-2z" /> 3762 <path d="m12 12h2v3h-2z" /> 3763 <path d="m12 17h2v2h-2z" /> 3764 </g> 3765</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-f91ef376-bd9b-4965-93b8-8749a55c858c" role="tooltip" aria-label="Capture critical vendor relationship context to properly tier vendors and scope assessments" aria-labelledby="tooltip-f91ef376-bd9b-4965-93b8-8749a55c858c-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-f91ef376-bd9b-4965-93b8-8749a55c858c-content"> Capture critical vendor relationship context to properly tier vendors and scope assessments </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3765-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3766 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3767</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3768 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3769</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3770 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3771</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3772 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3773</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3774 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3775</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Questionnaire Builder </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3776 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3777 show() { this.open = true; this.$nextTick(() => this.place()) }, 3778 hide() { this.open = false }, 3779 toggle() { this.open ? this.hide() : this.show() }, 3780 place() { 3781 if (!this.open) return; 3782 const t = this.$refs.trigger?.getBoundingClientRect(); 3783 const p = this.$refs.tooltip?.getBoundingClientRect(); 3784 if (!t || !p) return; 3785 const cx = t.left + t.width / 2; 3786 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3787 this.above = t.top - p.height - 8 >= 12; 3788 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3789 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3790 }, 3791 reposition() { 3792 if (this._raf) return; 3793 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3794 }, 3795}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Questionnaire Builder" aria-describedby="tooltip-fb682579-1e27-492d-9491-e5829b4b12d5"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3796 <g fill="#6b6b6b"> 3797 <path d="m9 9h2v2h-2z" /> 3798 <path d="m11 7h3v2h-3z" /> 3799 <path d="m14 9h2v3h-2z" /> 3800 <path d="m12 12h2v3h-2z" /> 3801 <path d="m12 17h2v2h-2z" /> 3802 </g> 3803</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-fb682579-1e27-492d-9491-e5829b4b12d5" role="tooltip" aria-label="Create tailored security questionnaires aligned to your internal standards that automate risk discovery - so you can spend time remediating risk instead of reading responses." aria-labelledby="tooltip-fb682579-1e27-492d-9491-e5829b4b12d5-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-fb682579-1e27-492d-9491-e5829b4b12d5-content"> Create tailored security questionnaires aligned to your internal standards that automate risk discovery - so you can spend time remediating risk instead of reading responses. </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3803-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3804 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3805</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3806 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3807</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3808 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3809</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3810 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3811</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3812 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3813</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Questionnaire Library </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3814 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3815 show() { this.open = true; this.$nextTick(() => this.place()) }, 3816 hide() { this.open = false }, 3817 toggle() { this.open ? this.hide() : this.show() }, 3818 place() { 3819 if (!this.open) return; 3820 const t = this.$refs.trigger?.getBoundingClientRect(); 3821 const p = this.$refs.tooltip?.getBoundingClientRect(); 3822 if (!t || !p) return; 3823 const cx = t.left + t.width / 2; 3824 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3825 this.above = t.top - p.height - 8 >= 12; 3826 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3827 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3828 }, 3829 reposition() { 3830 if (this._raf) return; 3831 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3832 }, 3833}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Questionnaire Library" aria-describedby="tooltip-234f00ce-13d2-4d61-9920-fe7f2a5adb09"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3834 <g fill="#6b6b6b"> 3835 <path d="m9 9h2v2h-2z" /> 3836 <path d="m11 7h3v2h-3z" /> 3837 <path d="m14 9h2v3h-2z" /> 3838 <path d="m12 12h2v3h-2z" /> 3839 <path d="m12 17h2v2h-2z" /> 3840 </g> 3841</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-234f00ce-13d2-4d61-9920-fe7f2a5adb09" role="tooltip" aria-label="Accelerate assessments with pre-built questionnaires aligned to leading security frameworks" aria-labelledby="tooltip-234f00ce-13d2-4d61-9920-fe7f2a5adb09-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-234f00ce-13d2-4d61-9920-fe7f2a5adb09-content"> Accelerate assessments with pre-built questionnaires aligned to leading security frameworks </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3841-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3842 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3843</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3844 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3845</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3846 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3847</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3848 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3849</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3850 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3851</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Traditional Risk Assessment Workflows </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3852 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3853 show() { this.open = true; this.$nextTick(() => this.place()) }, 3854 hide() { this.open = false }, 3855 toggle() { this.open ? this.hide() : this.show() }, 3856 place() { 3857 if (!this.open) return; 3858 const t = this.$refs.trigger?.getBoundingClientRect(); 3859 const p = this.$refs.tooltip?.getBoundingClientRect(); 3860 if (!t || !p) return; 3861 const cx = t.left + t.width / 2; 3862 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3863 this.above = t.top - p.height - 8 >= 12; 3864 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3865 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3866 }, 3867 reposition() { 3868 if (this._raf) return; 3869 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3870 }, 3871}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Traditional Risk Assessment Workflows" aria-describedby="tooltip-1fe72359
3871-4ab3-4f48-863d-f2ffeff9b6ae"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3872 <g fill="#6b6b6b"> 3873 <path d="m9 9h2v2h-2z" /> 3874 <path d="m11 7h3v2h-3z" /> 3875 <path d="m14 9h2v3h-2z" /> 3876 <path d="m12 12h2v3h-2z" /> 3877 <path d="m12 17h2v2h-2z" /> 3878 </g> 3879</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-1fe72359-4ab3-4f48-863d-f2ffeff9b6ae" role="tooltip" aria-label="Run structured, repeatable vendor risk assessments with consistent scoring and defensible outcomes" aria-labelledby="tooltip-1fe72359-4ab3-4f48-863d-f2ffeff9b6ae-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-1fe72359-4ab3-4f48-863d-f2ffeff9b6ae-content"> Run structured, repeatable vendor risk assessments with consistent scoring and defensible outcomes </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3880 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3881</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3882 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3883</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3884 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3885</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3886 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3887</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3888 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3889</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3889-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Security Profile </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3890 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3891 show() { this.open = true; this.$nextTick(() => this.place()) }, 3892 hide() { this.open = false }, 3893 toggle() { this.open ? this.hide() : this.show() }, 3894 place() { 3895 if (!this.open) return; 3896 const t = this.$refs.trigger?.getBoundingClientRect(); 3897 const p = this.$refs.tooltip?.getBoundingClientRect(); 3898 if (!t || !p) return; 3899 const cx = t.left + t.width / 2; 3900 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3901 this.above = t.top - p.height - 8 >= 12; 3902 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3903 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3904 }, 3905 reposition() { 3906 if (this._raf) return; 3907 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3908 }, 3909}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Security Profile" aria-describedby="tooltip-25c13eb5-2400-4c88-aec1-7f0ba6ab6f0e"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3910 <g fill="#6b6b6b"> 3911 <path d="m9 9h2v2h-2z" /> 3912 <path d="m11 7h3v2h-3z" /> 3913 <path d="m14 9h2v3h-2z" /> 3914 <path d="m12 12h2v3h-2z" /> 3915 <path d="m12 17h2v2h-2z" /> 3916 </g> 3917</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-25c13eb5-2400-4c88-aec1-7f0ba6ab6f0e" role="tooltip" aria-label="See how a vendor's controls stack up against UpGuard standards and frameworks like ISO 27001 or NIST CSF -- using AI document parsing to deliver rapid, structured assessments." aria-labelledby="tooltip-25c13eb5-2400-4c88-aec1-7f0ba6ab6f0e-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-25c13eb5-2400-4c88-aec1-7f0ba6ab6f0e-content"> See how a vendor's controls stack up against UpGuard standards and frameworks like ISO 27001 or NIST CSF -- using AI document parsing to deliver rapid, structured assessments. </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3918 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3919</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3919-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3920 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3921</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3922 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3923</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3924 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3925</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3926 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3927</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Instant Risk Assessments </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3928 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3929</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3930 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3931</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3932 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3933</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3933-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3934 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3935</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3936 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3937</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Risk & Remediation Management </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3938 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3939 show() { this.open = true; this.$nextTick(() => this.place()) }, 3940 hide() { this.open = false }, 3941 toggle() { this.open ? this.hide() : this.show() }, 3942 place() { 3943 if (!this.open) return; 3944 const t = this.$refs.trigger?.getBoundingClientRect(); 3945 const p = this.$refs.tooltip?.getBoundingClientRect(); 3946 if (!t || !p) return; 3947 const cx = t.left + t.width / 2; 3948 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3949 this.above = t.top - p.height - 8 >= 12; 3950 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3951 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3952 }, 3953 reposition() { 3954 if (this._raf) return; 3955 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3956 }, 3957}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Risk & Remediation Management" aria-describedby="tooltip-24566147-9bda-444d-a38a-b5afa98af35b"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3958 <g fill="#6b6b6b"> 3959 <path d="m9 9h2v2h-2z" /> 3960 <path d="m11 7h3v2h-3z" /> 3961 <path d="m14 9h2v3h-2z" /> 3962 <path d="m12 12h2v3h-2z" /> 3963 <path d="m12 17h2v2h-2z" /> 3964 </g> 3965</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-24566147-9bda-444d-a38a-b5afa98af35b" role="tooltip" aria-label="Track identified risks and manage vendor remediation through to resolution with guided workflows and advice" aria-labelledby="tooltip-24566147-9bda-444d-a38a-b5afa98af35b-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-24566147-9bda-444d-a38a-b5afa98af35b-content"> Track identified risks and manage vendor remediation through to resolution with guided workflows and advice </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
3965-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3966 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3967</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3968 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3969</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3970 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3971</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3972 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3973</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 3974 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 3975</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Vulnerability Management </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 3976 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 3977 show() { this.open = true; this.$nextTick(() => this.place()) }, 3978 hide() { this.open = false }, 3979 toggle() { this.open ? this.hide() : this.show() }, 3980 place() { 3981 if (!this.open) return; 3982 const t = this.$refs.trigger?.getBoundingClientRect(); 3983 const p = this.$refs.tooltip?.getBoundingClientRect(); 3984 if (!t || !p) return; 3985 const cx = t.left + t.width / 2; 3986 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 3987 this.above = t.top - p.height - 8 >= 12; 3988 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 3989 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 3990 }, 3991 reposition() { 3992 if (this._raf) return; 3993 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 3994 }, 3995}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Vulnerability Management" aria-describedby="tooltip-f7ffd861-5aa4-4b55-bf4b-4e9f9919f1a6"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 3996 <g fill="#6b6b6b"> 3997 <path d="m9 9h2v2h-2z" /> 3998 <path d="m11 7h3v2h-3z" /> 3999 <path d="m14 9h2v3h-2z" /> 4000 <path d="m12 12h2v3h-2z" /> 4001 <path d="m12 17h2v2h-2z" /> 4002 </g> 4003</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-f7ffd861-5aa4-4b55-bf4b-4e9f9919f1a6" role="tooltip" aria-label="Prioritize fixes based on exploitability. Identify misconfigurations and prioritize remediation with vendors." aria-labelledby="tooltip-f7ffd861-5aa4-4b55-bf4b-4e9f9919f1a6-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-f7ffd861-5aa4-4b55-bf4b-4e9f9919f1a6-content"> Prioritize fixes based on exploitability. Identify misconfigurations and prioritize remediation with vendors. </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4003-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4004 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4005</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4006 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4007</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4008 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4009</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4010 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4011</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4012 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4013</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Additional Evidence/Documents </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4014 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4015 show() { this.open = true; this.$nextTick(() => this.place()) }, 4016 hide() { this.open = false }, 4017 toggle() { this.open ? this.hide() : this.show() }, 4018 place() { 4019 if (!this.open) return; 4020 const t = this.$refs.trigger?.getBoundingClientRect(); 4021 const p = this.$refs.tooltip?.getBoundingClientRect(); 4022 if (!t || !p) return; 4023 const cx = t.left + t.width / 2; 4024 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4025 this.above = t.top - p.height - 8 >= 12; 4026 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4027 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4028 }, 4029 reposition() { 4030 if (this._raf) return; 4031 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4032 }, 4033}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Additional Evidence/Documents" aria-describedby="tooltip-19c678db-911b-46d1-92de-318041e6a7b4"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4034 <g fill="#6b6b6b"> 4035 <path d="m9 9h2v2h-2z" /> 4036 <path d="m11 7h3v2h-3z" /> 4037 <path d="m14 9h2v3h-2z" /> 4038 <path d="m12 12h2v3h-2z" /> 4039 <path d="m12 17h2v2h-2z" /> 4040 </g> 4041</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-19c678db-911b-46d1-92de-318041e6a7b4" role="tooltip" aria-label="Store and manage supporting documents and compliance evidence in one centralized location" aria-labelledby="tooltip-19c678db-911b-46d1-92de-318041e6a7b4-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-19c678db-911b-46d1-92de-318041e6a7b4-content"> Store and manage supporting documents and compliance evidence in one centralized location </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4041-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4042 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4043</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4044 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4045</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4046 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4047</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4048 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4049</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4050 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4051</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Recurring Reports </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4052 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4053 show() { this.open = true; this.$nextTick(() => this.place()) }, 4054 hide() { this.open = false }, 4055 toggle() { this.open ? this.hide() : this.show() }, 4056 place() { 4057 if (!this.open) return; 4058 const t = this.$refs.trigger?.getBoundingClientRect(); 4059 const p = this.$refs.tooltip?.getBoundingClientRect(); 4060 if (!t || !p) return; 4061 const cx = t.left + t.width / 2; 4062 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4063 this.above = t.top - p.height - 8 >= 12; 4064 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4065 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4066 }, 4067 reposition() { 4068 if (this._raf) return; 4069 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4070 }, 4071}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Recurring Reports" aria-describedby="tooltip-c302571e-a8dc-4f7f-acf7-22d662b6fe75"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4072 <g fill="#6b6b6b"> 4073 <path d="m9 9h2v2h-2z" /> 4074 <path d="m11 7h3v2h-3z" /> 4075 <path d="m14 9h2v3h-2z" /> 4076 <path d="m12 12h2v3h-2z" /> 4077 <path d="m12 17h2v2h-2z" /> 4078 </g> 4079</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-c302571e-a8dc-4f7f-acf7-22d662b6fe75" role="tooltip" aria-label="Automatically deliver executive-ready vendor risk reports on a
4079scheduled basis" aria-labelledby="tooltip-c302571e-a8dc-4f7f-acf7-22d662b6fe75-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-c302571e-a8dc-4f7f-acf7-22d662b6fe75-content"> Automatically deliver executive-ready vendor risk reports on a scheduled basis </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4080 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4081</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4082 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4083</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4084 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4085</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4086 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4087</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4088 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4089</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4089-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Fourth Parties </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4090 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4091 show() { this.open = true; this.$nextTick(() => this.place()) }, 4092 hide() { this.open = false }, 4093 toggle() { this.open ? this.hide() : this.show() }, 4094 place() { 4095 if (!this.open) return; 4096 const t = this.$refs.trigger?.getBoundingClientRect(); 4097 const p = this.$refs.tooltip?.getBoundingClientRect(); 4098 if (!t || !p) return; 4099 const cx = t.left + t.width / 2; 4100 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4101 this.above = t.top - p.height - 8 >= 12; 4102 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4103 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4104 }, 4105 reposition() { 4106 if (this._raf) return; 4107 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4108 }, 4109}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Fourth Parties" aria-describedby="tooltip-c8ba1e8c-984e-45be-bc74-6ec292be086a"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4110 <g fill="#6b6b6b"> 4111 <path d="m9 9h2v2h-2z" /> 4112 <path d="m11 7h3v2h-3z" /> 4113 <path d="m14 9h2v3h-2z" /> 4114 <path d="m12 12h2v3h-2z" /> 4115 <path d="m12 17h2v2h-2z" /> 4116 </g> 4117</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-c8ba1e8c-984e-45be-bc74-6ec292be086a" role="tooltip" aria-label="Gain visibility into subcontractors and extended supply chain dependencies to eliminate concentration risk" aria-labelledby="tooltip-c8ba1e8c-984e-45be-bc74-6ec292be086a-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-c8ba1e8c-984e-45be-bc74-6ec292be086a-content"> Gain visibility into subcontractors and extended supply chain dependencies to eliminate concentration risk </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4117-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4118 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4119</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4120 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4121</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4122 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4123</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Onboarding Portal </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4124 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4125 show() { this.open = true; this.$nextTick(() => this.place()) }, 4126 hide() { this.open = false }, 4127 toggle() { this.open ? this.hide() : this.show() }, 4128 place() { 4129 if (!this.open) return; 4130 const t = this.$refs.trigger?.getBoundingClientRect(); 4131 const p = this.$refs.tooltip?.getBoundingClientRect(); 4132 if (!t || !p) return; 4133 const cx = t.left + t.width / 2; 4134 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4135 this.above = t.top - p.height - 8 >= 12; 4136 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4137 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4138 }, 4139 reposition() { 4140 if (this._raf) return; 4141 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4142 }, 4143}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Onboarding Portal" aria-describedby="tooltip-937100d7-9fcd-4d0e-bbc3-5d24745a828c"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4144 <g fill="#6b6b6b"> 4145 <path d="m9 9h2v2h-2z" /> 4146 <path d="m11 7h3v2h-3z" /> 4147 <path d="m14 9h2v3h-2z" /> 4148 <path d="m12 12h2v3h-2z" /> 4149 <path d="m12 17h2v2h-2z" /> 4150 </g> 4151</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-937100d7-9fcd-4d0e-bbc3-5d24745a828c" role="tooltip" aria-label="Strengthen intake governance with a structured onboarding workflow that connects business requests to InfoSec from day one - bringing clarity and speed to every assessment request" aria-labelledby="tooltip-937100d7-9fcd-4d0e-bbc3-5d24745a828c-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-937100d7-9fcd-4d0e-bbc3-5d24745a828c-content"> Strengthen intake governance with a structured onboarding workflow that connects business requests to InfoSec from day one - bringing clarity and speed to every assessment request </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4151-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4152 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4153</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4154 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4155</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4156 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4157</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4158 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4159</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Custom Notifications </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4160 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4161 show() { this.open = true; this.$nextTick(() => this.place()) }, 4162 hide() { this.open = false }, 4163 toggle() { this.open ? this.hide() : this.show() }, 4164 place() { 4165 if (!this.open) return; 4166 const t = this.$refs.trigger?.getBoundingClientRect(); 4167 const p = this.$refs.tooltip?.getBoundingClientRect(); 4168 if (!t || !p) return; 4169 const cx = t.left + t.width / 2; 4170 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4171 this.above = t.top - p.height - 8 >= 12; 4172 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4173 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4174 }, 4175 reposition() { 4176 if (this._raf) return; 4177 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4178 }, 4179}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Custom Notifications" aria-describedby="tooltip-53ff1426-2e27-4579-a788-c43de5ceac82"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4180 <g fill="#6b6b6b"> 4181 <path d="m9 9h2v2h-2z" /> 4182 <path d="m11 7h3v2h-3z" /> 4183 <path d="m14 9h2v3h-2z" /> 4184 <path d="m12 12h2v3h-2z" /> 4185 <path d="m12 17h2v2h-2z" /> 4186 </g> 4187</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-53ff1426-2e27-4579-a788-c43de5ceac82" role="tooltip" aria-label="Stay ahead of risk with configurable alerts for rating changes, new findings, and critical vendor events." aria-labelledby="tooltip-53ff1426-2e27-4579-a788-c43de5ceac82-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-53ff1426-2e27-4579-a788-c43de5ceac82-content"> Stay ahead of risk with configurable alerts for rating changes, new findings, and critical vendor events. </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4187-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4188 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4189</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4190 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4191</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4192 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4193</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4194 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4195</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4196 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4197</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Templates & Automation </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4198 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4199</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4199-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4200 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4201</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4202 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4203</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4204 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4205</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Custom Co-branding </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4206 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4207 show() { this.open = true; this.$nextTick(() => this.place()) }, 4208 hide() { this.open = false }, 4209 toggle() { this.open ? this.hide() : this.show() }, 4210 place() { 4211 if (!this.open) return; 4212 const t = this.$refs.trigger?.getBoundingClientRect(); 4213 const p = this.$refs.tooltip?.getBoundingClientRect(); 4214 if (!t || !p) return; 4215 const cx = t.left + t.width / 2; 4216 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4217 this.above = t.top - p.height - 8 >= 12; 4218 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4219 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4220 }, 4221 reposition() { 4222 if (this._raf) return; 4223 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4224 }, 4225}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Custom Co-branding" aria-describedby="tooltip-deb08780-b821-4818-9f86-4a9a5d7a791f"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4226 <g fill="#6b6b6b"> 4227 <path d="m9 9h2v2h-2z" /> 4228 <path d="m11 7h3v2h-3z" /> 4229 <path d="m14 9h2v3h-2z" /> 4230 <path d="m12 12h2v3h-2z" /> 4231 <path d="m12 17h2v2h-2z" /> 4232 </g> 4233</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-deb08780-b821-4818-9f86-4a9a5d7a791f" role="tooltip" aria-label="Deliver vendor communications and reports with your branding to reinforce trust." aria-labelledby="tooltip-deb08780-b821-4818-9f86-4a9a5d7a791f-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-deb08780-b821-4818-9f86-4a9a5d7a791f-content"> Deliver vendor communications and reports with your branding to reinforce trust. </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4233-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4234 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4235</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4236 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4237</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4238 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4239</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4240 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4241</svg> <span class="sr-only">Included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Multi-Org Accounts </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4242 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4243 show() { this.open = true; this.$nextTick(() => this.place()) }, 4244 hide() { this.open = false }, 4245 toggle() { this.open ? this.hide() : this.show() }, 4246 place() { 4247 if (!this.open) return; 4248 const t = this.$refs.trigger?.getBoundingClientRect(); 4249 const p = this.$refs.tooltip?.getBoundingClientRect(); 4250 if (!t || !p) return; 4251 const cx = t.left + t.width / 2; 4252 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4253 this.above = t.top - p.height - 8 >= 12; 4254 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4255 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4256 }, 4257 reposition() { 4258 if (this._raf) return; 4259 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4260 }, 4261}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Multi-Org Accounts" aria-describedby="tooltip-7592ea6a-d386-4de0-8fcf-28d83ee97d9a"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4262 <g fill="#6b6b6b"> 4263 <path d="m9 9h2v2h-2z" /> 4264 <path d="m11 7h3v2h-3z" /> 4265 <path d="m14 9h2v3h-2z" /> 4266 <path d="m12 12h2v3h-2z" /> 4267 <path d="m12 17h2v2h-2z" /> 4268 </g> 4269</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-7592ea6a-d386-4de0-8fcf-28d83ee97d9a" role="tooltip" aria-label="Manage multiple business units or subsidiaries within a single platform environment" aria-labelledby="tooltip-7592ea6a-d386-4de0-8fcf-28d83ee97d9a-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-7592ea6a-d386-4de0-8fcf-28d83ee97d9a-content"> Manage multiple business units or subsidiaries within a single platform environment </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4269-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span class="font-inter font-normal text-14 text-body"> 3 Organizations </span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Ticket-Only Support </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4270 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4271 show() { this.open = true; this.$nextTick(() => this.place()) }, 4272 hide() { this.open = false }, 4273 toggle() { this.open ? this.hide() : this.show() }, 4274 place() { 4275 if (!this.open) return; 4276 const t = this.$refs.trigger?.getBoundingClientRect(); 4277 const p = this.$refs.tooltip?.getBoundingClientRect(); 4278 if (!t || !p) return; 4279 const cx = t.left + t.width / 2; 4280 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4281 this.above = t.top - p.height - 8 >= 12; 4282 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4283 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4284 }, 4285 reposition() { 4286 if (this._raf) return; 4287 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4288 }, 4289}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Ticket-Only Support" aria-describedby="tooltip-d71a9290-b178-4be0-851a-49bd0b2f4182"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4290 <g fill="#6b6b6b"> 4291 <path d="m9 9h2v2h-2z" /> 4292 <path d="m11 7h3v2h-3z" /> 4293 <path d="m14 9h2v3h-2z" /> 4294 <path d="m12 12h2v3h-2z" /> 4295 <path d="m12 17h2v2h-2z" /> 4296 </g> 4297</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-d71a9290-b178-4be0-851a-49bd0b2f4182" role="tooltip" aria-label="Access our world-class customer support team through standard ticketing for expert guidance and reliable issue resolution." aria-labelledby="tooltip-d71a9290-b178-4be0-851a-49bd0b2f4182-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-d71a9290-b178-4be0-851a-49bd0b2f4182-content"> Access our world-class customer support team through standard ticketing for expert guidance and reliable issue resolution. </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4297-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Standard Support </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4298 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4299 show() { this.open = true; this.$nextTick(() => this.place()) }, 4300 hide() { this.open = false }, 4301 toggle() { this.open ? this.hide() : this.show() }, 4302 place() { 4303 if (!this.open) return; 4304 const t = this.$refs.trigger?.getBoundingClientRect(); 4305 const p = this.$refs.tooltip?.getBoundingClientRect(); 4306 if (!t || !p) return; 4307 const cx = t.left + t.width / 2; 4308 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4309 this.above = t.top - p.height - 8 >= 12; 4310 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4311 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4312 }, 4313 reposition() { 4314 if (this._raf) return; 4315 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4316 }, 4317}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Standard Support" aria-describedby="tooltip-3a709ceb-b72b-4714-8c19-1eb3b4c0a50f"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4318 <g fill="#6b6b6b"> 4319 <path d="m9 9h2v2h-2z" /> 4320 <path d="m11 7h3v2h-3z" /> 4321 <path d="m14 9h2v3h-2z" /> 4322 <path d="m12 12h2v3h-2z" /> 4323 <path d="m12 17h2v2h-2z" /> 4324 </g> 4325</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-3a709ceb-b72b-4714-8c19-1eb3b4c0a50f" role="tooltip" aria-label="Priority access to our world-class support team with defined response times to keep your program moving." aria-labelledby="tooltip-3a709ceb-b72b-4714-8c19-1eb3b4c0a50f-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-3a709ceb-b72b-4714-8c19-1eb3b4c0a50f-content"> Priority access to our world-class support team with defined response times to keep your program moving. </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4325-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4326 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4327</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4328 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4329</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4330 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4331</svg> <span class="sr-only">Included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td> </tr><tr class @mouseenter="setHoveredFromRow($el)"> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span> <span class="font-inter font-normal text-14 text-body align-middle"> Premium Assurance (Enterprise Support) </span> <span class="relative ml-4 inline-flex shrink-0 cursor-help align-middle" x-data="{ 4332 open: false, style: '', arrowStyle: '', above: true, _raf: 0, 4333 show() { this.open = true; this.$nextTick(() => this.place()) }, 4334 hide() { this.open = false }, 4335 toggle() { this.open ? this.hide() : this.show() }, 4336 place() { 4337 if (!this.open) return; 4338 const t = this.$refs.trigger?.getBoundingClientRect(); 4339 const p = this.$refs.tooltip?.getBoundingClientRect(); 4340 if (!t || !p) return; 4341 const cx = t.left + t.width / 2; 4342 const left = Math.max(12, Math.min(cx - p.width / 2, innerWidth - p.width - 12)); 4343 this.above = t.top - p.height - 8 >= 12; 4344 this.style = `left:${left}px;top:${this.above ? t.top - p.height - 16 : t.bottom + 16}px`; 4345 this.arrowStyle = `left:${Math.max(10, Math.min(cx - left, p.width - 10))}px`; 4346 }, 4347 reposition() { 4348 if (this._raf) return; 4349 this._raf = requestAnimationFrame(() => { this._raf = 0; this.place() }); 4350 }, 4351}" @mouseenter="show()" @mouseleave="hide()" @focusin="show()" @focusout="hide()" @click.prevent="toggle()" @keydown.escape.window="hide()" @resize.window="reposition()" @scroll.window="reposition()"> <button x-ref="trigger" type="button" class="inline-flex h-[1.125rem] w-[1.125rem] shrink-0 items-center justify-center rounded-full bg-layer-2 opacity-90 appearance-none border-0 p-0 outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0" aria-label="More info about Premium Assurance (Enterprise Support)" aria-describedby="tooltip-15f00d47-d597-4070-8060-54ed09eca763"> <svg fill="none" height="18" viewBox="0 0 25 25" width="18" aria-hidden="true" focusable="false"> 4352 <g fill="#6b6b6b"> 4353 <path d="m9 9h2v2h-2z" /> 4354 <path d="m11 7h3v2h-3z" /> 4355 <path d="m14 9h2v3h-2z" /> 4356 <path d="m12 12h2v3h-2z" /> 4357 <path d="m12 17h2v2h-2z" /> 4358 </g> 4359</svg> </button> <template x-teleport="body"> <span data-theme="dark" x-ref="tooltip" id="tooltip-15f00d47-d597-4070-8060-54ed09eca763" role="tooltip" aria-label="White-glove enterprise support with accelerated SLAs and dedicated guidance from our expert team for mission-critical programs." aria-labelledby="tooltip-15f00d47-d597-4070-8060-54ed09eca763-content" x-bind:style="style" x-bind:class="open ? 'opacity-100' : 'opacity-0'" class="text-body pointer-events-none fixed z-50 min-w-[9.375rem] max-w-[13.75rem] bg-gray-900 p-16 rounded-[.5rem] text-14 text-left opacity-0 transition-opacity duration-150"> <span id="tooltip-15f00d47-d597-4070-8060-54ed09eca763-content"> White-glove enterprise support with accelerated SLAs and dedicated guidance from our expert team for mission-critical programs. </span> <span x-bind:style="arrowStyle" x-bind:class="above ? 'top-full' : 'bottom-full -scale-y-100'" class="absolute -translate-x-1/2"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="8" fill="none" viewBox="0 0 16 8"> <path fill="#0a0a0a" d="M0 0h16q-2 0-3.1 1.7L9.7 6.5a2 2 0 0 1-3.4 0L3.1 1.7Q2 0 0 0"></path> </svg> </span> </span> </template> </span> </span> </td> <td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg
4359-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <span aria-hidden="true">â</span> <span class="sr-only">Not included</span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4360 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4361</svg> <span class="sr-only">Included</span> <span class="font-inter font-normal text-14 inline-block max-w-[9.375rem] text-body"> 4362(data residency additional cost) 4363 </span> </span> </td><td class="px-12 py-8 md:px-24 md:py-12 align-top transition-colors duration-200 ease-out motion-reduce:transition-none first:pl-0 last:pr-0 first:sticky first:left-0 first:z-10 first:bg-background" @mouseenter="setHoveredFromCell($el, $el.parentElement)"> <span class="inline-flex items-start gap-8"> <svg fill="none" height="24" viewBox="0 0 24 24" width="24" aria-hidden="true" focusable="false"> 4364 <path d="m18 6h2v2h-2zm-2 4v-2h2v2zm-2 2v-2h2v2zm-2 2h2v-2h-2zm-2 2h2v-2h-2zm-2 0v2h2v-2zm-2-2h2v2h-2zm0 0h-2v-2h2z" fill="#000" /> 4365</svg> <span class="sr-only">Included</span> <span class="font-inter font-normal text-14 inline-block max-w-[9.375rem] text-body"> 4366(data residency additional cost) 4367 </span> </span> </td> </tr> </tbody> </table> </div> </div>
4367<script> 4368 if (!window.stickyTableState) { 4369 window.stickyTableState = () => ({ 4370 _s: false, 4371 hoveredRowEl: null, 4372 hoveredCol: null, 4373 rowOverlay: { visible: false, y: 0, height: 0, width: 0 }, 4374 colOverlay: { visible: false, x: 0, width: 0, height: 0 }, 4375 rect(el) { 4376 return el ? el.getBoundingClientRect() : null 4377 }, 4378 getBody() { 4379 const table = this.$refs.bodyTable 4380 return table ? [table, table.getBoundingClientRect()] : null 4381 }, 4382 syncScroll(fromRef, toRef) { 4383 if (this._s) return 4384 const from = this.$refs[fromRef] 4385 const to = this.$refs[toRef] 4386 if (!from || !to) return 4387 this._s = true 4388 to.scrollLeft = from.scrollLeft 4389 requestAnimationFrame(() => { 4390 this._s = false 4391 }) 4392 }, 4393 setState(rowEl, colIndex) { 4394 this.hoveredRowEl = rowEl 4395 this.hoveredCol = colIndex 4396 }, 4397 setRow(rowRect, tableRect, tableWidth) { 4398 this.rowOverlay = 4399 rowRect && tableRect 4400 ? { 4401 ...this.rowOverlay, 4402 visible: true, 4403 y: rowRect.top - tableRect.top, 4404 height: rowRect.height, 4405 width: tableWidth, 4406 } 4407 : { ...this.rowOverlay, visible: false } 4408 }, 4409 setCol(cellRect, baseRect, overlayHeight) { 4410 this.colOverlay = 4411 cellRect && baseRect 4412 ? { 4413 ...this.colOverlay, 4414 visible: true, 4415 x: cellRect.left - baseRect.left, 4416 width: cellRect.width, 4417 height: overlayHeight, 4418 } 4419 : { ...this.colOverlay, visible: false } 4420 }, 4421 setHoveredFromRow(row) { 4422 const body = this.getBody() 4423 if (!body || !row) return 4424 const [table, tableRect] = body 4425 const firstCell = row.cells?.[0] 4426 this.setState(row, firstCell ? firstCell.cellIndex : null) 4427 this.setRow(this.rect(row), tableRect, table.offsetWidth) 4428 this.setCol(this.rect(firstCell), tableRect, table.offsetHeight) 4429 }, 4430 setHoveredFromCell(cell, row) { 4431 const body = this.getBody() 4432 if (!body || !cell) return 4433 const [table, tableRect] = body 4434 const rowEl = row ?? cell.parentElement 4435 this.setState(rowEl, cell.cellIndex) 4436 this.setCol(this.rect(cell), tableRect, table.offsetHeight) 4437 this.setRow(this.rect(rowEl), tableRect, table.offsetWidth) 4438 }, 4439 setHoveredFromHeader(cell) { 4440 const body = this.getBody() 4441 const headerTable = cell?.closest("table") 4442 if (!body || !headerTable || !cell) return 4443 const [table] = body 4444 this.setState(null, cell.cellIndex) 4445 this.setRow(null, null, 0) 4446 this.setCol(this.rect(cell), this.rect(headerTable), table.offsetHeight) 4447 }, 4448 clearHover() { 4449 this.setState(null, null) 4450 this.setRow(null, null, 0) 4451 this.setCol(null, null, 0) 4452 }, 4453 }) 4454 } 4455</script>
4455 </section> <section data-component="Prefooter" data-theme="dark" data-e-location="pre_footer" class="bg-background text-heading text-center"> <div class="mx-auto w-[calc(100%-2*var(--gap))] max-w-none lg:max-w-[88.5rem] lg:w-[calc(100%-4*var(--gap))]"> <div class="py-160 flex justify-center flex-col items-center gap-32"> <p class="font-inter-tight font-normal text-40 max-w-[18em]"> Experience superior visibility and a simpler approach to cyber risk management </p> <div class="w-full flex flex-col gap-12 sm:w-auto sm:flex-row sm:justify-center"> <a href="https://www.upguard.com/contact-sales" data-e="CTA Clicked" data-e-link-type="book_demo_button" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 text-14 rounded-[1.3125rem] inline-flex justify-center disabled:opacity-50 bg-gray-900 text-white dark:bg-white dark:text-gray-900 group"> <div class="inline-flex relative overflow-hidden"> <span class="inline-flex w-full h-full transition-all duration-250 ease-out group-not-disabled:group-hover:opacity-0 group-not-disabled:group-hover:-translate-y-full group-not-disabled:group-hover:skew-y-15 group-not-disabled:group-active:opacity-0 group-not-disabled:group-active:-translate-y-full group-not-disabled:group-active:skew-y-15 group-not-disabled:group-focus-visible:opacity-0 group-not-disabled:group-focus-visible:-translate-y-full group-not-disabled:group-focus-visible:skew-y-15 gap-8 py-[0.5625rem] px-[1.5rem]"> Get a demo </span> <span aria-hidden="true" class="inline-flex w-full h-full transition-all duration-250 ease-out gap-8 py-[0.5625rem] px-[1.5rem] absolute top-0 left-0 opacity-0 translate-y-full skew-y-15 group-not-disabled:group-hover:opacity-100 group-not-disabled:group-hover:translate-y-0 group-not-disabled:group-hover:skew-y-0 group-not-disabled:group-active:opacity-100 group-not-disabled:group-active:translate-y-0 group-not-disabled:group-active:skew-y-0 group-not-disabled:group-focus-visible:opacity-100 group-not-disabled:group-focus-visible:translate-y-0 group-not-disabled:group-focus-visible:skew-y-0"> Get a demo </span> </div> </a> <a href="https://www.upguard.com/demo" data-e="CTA Clicked" data-e-link-type="free_trial_button" class="outline-none focus-visible:ring-2 focus-visible:ring-purple-100 focus-visible:ring-offset-0 text-14 rounded-[1.3125rem] inline-flex justify-center disabled:opacity-50 bg-gray-200 text-gray-900 dark:bg-gray-700 dark:text-white group"> <div class="inline-flex relative overflow-hidden"> <span class="inline-flex w-full h-full transition-all duration-250 ease-out group-not-disabled:group-hover:opacity-0 group-not-disabled:group-hover:-translate-y-full group-not-disabled:group-hover:skew-y-15 group-not-disabled:group-active:opacity-0 group-not-disabled:group-active:-translate-y-full group-not-disabled:group-active:skew-y-15 group-not-disabled:group-focus-visible:opacity-0 group-not-disabled:group-focus-visible:-translate-y-full group-not-disabled:group-focus-visible:skew-y-15 gap-8 py-[0.5625rem] px-[1.5rem]"> Free trial </span> <span aria-hidden="true" class="inline-flex w-full h-full transition-all duration-250 ease-out gap-8 py-[0.5625rem] px-[1.5rem] absolute top-0 left-0 opacity-0 translate-y-full skew-y-15 group-not-disabled:group-hover:opacity-100 group-not-disabled:group-hover:translate-y-0 group-not-disabled:group-hover:skew-y-0 group-not-disabled:group-active:opacity-100 group-not-disabled:group-active:translate-y-0 group-not-disabled:group-active:skew-y-0 group-not-disabled:group-focus-visible:opacity-100 group-not-disabled:group-focus-visible:translate-y-0 group-not-disabled:group-focus-visible:skew-y-0"> Free trial </span> </div> </a> </div> </div> <div class="bg-divider w-full h-px"></div> </div> </section> <footer data-component="interop-footer" data-theme="dark" class="footer-ig88 " data-event-cta-location="footer" data-e-location="footer"> <div class="footer-ig88__bd"> <div class="footer-ig88__brand"> <a class="footer-ig88__brand-link" href="/"> <svg aria-hidden="true" style="display:block; width:100%; height:auto;" xmlns="http://www.w3.org/2000/svg" width="150" height="32" fill="none" viewBox="0 0 150 32">
4455 <path fill="currentColor" d="M58.3 4h3v13.2a6.8 6.8 0 0 1-3.8 6.2 9 9 0 0 1-4.1 1 9 9 0 0 1-4.2-1 6.8 6.8 0 0 1-3.8-6.2V4h3v13c0 .8.3 1.6.7 2.3.4.7 1 1.3 1.7 1.7.7.4 1.6.6 2.6.6s1.9-.2 2.6-.6c.8-.4 1.3-1 1.7-1.7.4-.7.6-1.5.6-2.4V4ZM64 29.6V9h2.8v2.5h.2l.8-1.1c.3-.4.8-.8 1.3-1.1.6-.3 1.3-.5 2.3-.5a5.8 5.8 0 0 1 5.4 3.6c.6 1.1.8 2.5.8 4.2 0 1.6-.2 3-.8 4.1a5.8 5.8 0 0 1-5.5 3.6c-.8 0-1.6-.1-2.1-.5-.6-.3-1-.6-1.4-1a9 9 0 0 1-.8-1.1H67v8h-3Zm6.7-7.8c1 0 1.6-.2 2.2-.7.6-.4 1-1 1.3-1.9.3-.8.5-1.7.5-2.7 0-1-.2-1.9-.4-2.6-.3-.8-.8-1.5-1.4-2-.5-.4-1.3-.6-2.2-.6-.8 0-1.5.2-2.1.7-.6.4-1 1-1.3 1.8-.3.8-.5 1.7-.5 2.7 0 1 .2 2 .5 2.8.3.8.7 1.4 1.3 1.9.6.4 1.3.6 2.1.6ZM88 24.3a8.5 8.5 0 0 1-8-4.8c-.6-1.5-1-3.4-1-5.5 0-2 .4-4 1.1-5.5A8.6 8.6 0 0 1 83.3 5a9.3 9.3 0 0 1 7.6-.8 8 8 0 0 1 4.4 3.5c.4.8.8 1.7 1 2.6h-3.1l-.8-1.6a5 5 0 0 0-2.6-2 6 6 0 0 0-4.9.7 6 6 0 0 0-2.1 2.5A9.6 9.6 0 0 0 82 14c0 1.6.2 3 .8 4.1.5 1.1 1.2 2 2.1 2.6 1 .5 2 .8 3.2.8 1 0 2-.2 2.8-.6.8-.5 1.4-1.1 1.9-2 .4-.7.7-1.7.7-2.8l.8.2h-5.8v-2.5h7.9V16c0 1.7-.4 3.1-1 4.3a7.3 7.3 0 0 1-3 2.9 9 9 0 0 1-4.3 1ZM108 17.8V9h3v15H108v-2.6h-.2a4.7 4.7 0 0 1-4.5 2.8 5 5 0 0 1-2.5-.6c-.7-.4-1.3-1-1.7-2a7 7 0 0 1-.7-3V9h3v9.2c0 1 .2 1.8.8 2.4.6.7 1.3 1 2.2 1a3.6 3.6 0 0 0 3-1.7c.4-.5.6-1.2.6-2ZM117.7 24.3c-1 0-1.8-.1-2.6-.5-.8-.3-1.4-.9-1.8-1.5-.5-.7-.7-1.6-.7-2.5 0-.9.2-1.6.5-2.1.3-.6.7-1 1.3-1.3.6-.3 1.2-.6 1.9-.7l2-.4a114 114 0 0 0 3.5-.6c.2-.2.3-.4.3-.8 0-.9-.2-1.5-.7-2-.5-.5-1.2-.7-2.1-.7-1 0-1.8.2-2.3.6-.6.5-1 1-1.2 1.5l-2.8-.7c.4-.9.9-1.6 1.5-2.2a6 6 0 0 1 2.2-1.2A8.5 8.5 0 0 1 121 9c.7.2 1.3.4 2 .8.5.4 1 .9 1.4 1.6.4.7.6 1.6.6 2.7v10h-2.9V22h-.1a4.5 4.5 0 0 1-2.3 2c-.6.2-1.3.3-2.1.3Zm.6-2.3c.8 0 1.5-.2 2-.5.6-.3 1-.7 1.4-1.2.3-.5.4-1.1.4-1.7v-2c0 .2-.3.3-.6.4a38.2 38.2 0 0 1-3 .5 8 8 0 0 0-1.5.3c-.5.2-.8.4-1.1.8-.3.3-.5.7-.5 1.2 0 .7.3 1.3.9 1.7.5.3 1.2.5 2 .5ZM127.5 24V9h2.8v2.4h.1a4.1 4.1 0 0 1 3.8-2.6 12 12 0 0 1 1.3 0v2.9l-.7-.2h-.9c-.
44556 0-1.3.1-1.8.4-.5.3-1 .7-1.3 1.2-.3.5-.4 1.1-.4 1.8V24h-3ZM142 24.3a5.8 5.8 0 0 1-5.6-3.6 9.8 9.8 0 0 1-.8-4.1c0-1.7.3-3 .9-4.2.5-1.2 1.3-2 2.2-2.7 1-.6 2-.9 3.2-.9 1 0 1.7.2 2.3.5.6.3 1 .7 1.3 1 .3.5.6.8.7 1.2h.2V4h3v20h-3v-2.3h-.2l-.7 1c-.3.5-.8.8-1.4 1.1-.5.4-1.3.5-2.2.5Zm.6-2.5c.8 0 1.5-.2 2-.6.7-.5 1.1-1.1 1.4-2 .3-.7.5-1.6.5-2.7 0-1-.2-2-.5-2.7a4 4 0 0 0-1.3-1.8c-.6-.5-1.3-.7-2.1-.7-.9 0-1.7.2-2.2.7-.6.4-1 1-1.3 1.9a7.8 7.8 0 0 0 0 5.4c.2.7.7 1.4 1.3 1.8.6.5 1.3.7 2.2.7ZM8 8V0H0v24h8V8ZM24 0v24h8V0h-8ZM8 24v8h16v-8H8Z"></path> </svg> <span class="footer-ig88__brand-text">UpGuard</span> </a> </div> <div class="footer-ig88__columns"> <div class="footer-ig88__group footer-ig88__group--platform"> <div class="footer-ig88__column"> <h3 class="footer-ig88__column-title">Platform</h3> <ul class="footer-ig88__column-links"> <li> <a class="ipx" href="/product/reporting" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Reporting</span> </span> </a> <style> 4456 .ipx { 4457 --ipx-offset: 1.125rem; 4458 display: inline-block; 4459 position: relative; 4460 padding-right: var(--ipx-offset); 4461 color: var(--text-body); 4462 transition: color 0.2s ease; 4463 cursor: pointer; 4464 } 4465 4466 .ipx:hover, 4467 .ipx:focus-visible { 4468 color: var(--text-headings); 4469 } 4470 4471 .ipx__text { 4472 display: inline-block; 4473 transition: transform 0.2s ease; 4474 } 4475 4476 .ipx__text::before { 4477 content: ""; 4478 position: absolute; 4479 left: calc(-1 * var(--ipx-offset)); 4480 top: 50%; 4481 width: 0.625rem; 4482 height: 0.625rem; 4483 background-color: currentColor; 4484 opacity: 0; 4485 pointer-events: none; 4486 transform: translateY(-50%); 4487 transition: opacity 0.2s ease; 4488 } 4489 4490 .ipx:hover .ipx__text, 4491 .ipx:focus-visible .ipx__text { 4492 transform: translateX(var(--ipx-offset)); 4493 } 4494 4495 .ipx:hover .ipx__text::before, 4496 .ipx:focus-visible .ipx__text::before { 4497 opacity: 1; 4498 } 4499 4500 .ipx__label { 4501 font-size: 0.875rem; 4502 line-height: 1.75rem; 4503 } 4504</style> </li><li> <a class="ipx" href="/services" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Services</span> </span> </a> <style> 4505 .ipx { 4506 --ipx-offset: 1.125rem; 4507 display: inline-block; 4508 position: relative; 4509 padding-right: var(--ipx-offset); 4510 color: var(--text-body); 4511 transition: color 0.2s ease; 4512 cursor: pointer; 4513 } 4514 4515 .ipx:hover, 4516 .ipx:focus-visible { 4517 color: var(--text-headings); 4518 } 4519 4520 .ipx__text { 4521 display: inline-block; 4522 transition: transform 0.2s ease; 4523 } 4524 4525 .ipx__text::before { 4526 content: ""; 4527 position: absolute; 4528 left: calc(-1 * var(--ipx-offset)); 4529 top: 50%; 4530 width: 0.625rem; 4531 height: 0.625rem; 4532 background-color: currentColor; 4533 opacity: 0; 4534 pointer-events: none; 4535 transform: translateY(-50%); 4536 transition: opacity 0.2s ease; 4537 } 4538 4539 .ipx:hover .ipx__text, 4540 .ipx:focus-visible .ipx__text { 4541 transform: translateX(var(--ipx-offset)); 4542 } 4543 4544 .ipx:hover .ipx__text::before, 4545 .ipx:focus-visible .ipx__text::before { 4546 opacity: 1; 4547 } 4548 4549 .ipx__label { 4550 font-size: 0.875rem; 4551 line-height: 1.75rem; 4552 } 4553</style> </li><li> <a class="ipx" href="/product/security-ratings" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Security ratings</span> </span> </a> <style> 4554 .ipx { 4555 --ipx-offset: 1.125rem; 4556 display: inline-block; 4557 position: relative; 4558 padding-right: var(--ipx-offset); 4559 color: var(--text-body); 4560 transition: color 0.2s ease; 4561 cursor: pointer; 4562 } 4563 4564 .ipx:hover, 4565 .ipx:focus-visible { 4566 color: var(--text-headings); 4567 } 4568 4569 .ipx__text { 4570 display: inline-block; 4571 transition: transform 0.2s ease; 4572 } 4573 4574 .ipx__text::before { 4575 content: ""; 4576 position: absolute; 4577 left: calc(-1 * var(--ipx-offset)); 4578 top: 50%; 4579 width: 0.625rem; 4580 height: 0.625rem; 4581 background-color: currentColor; 4582 opacity: 0; 4583 pointer-events: none; 4584 transform: translateY(-50%); 4585 transition: opacity 0.2s ease; 4586 } 4587 4588 .ipx:hover .ipx__text, 4589 .ipx:focus-visible .ipx__text { 4590 transform: translateX(var(--ipx-offset)); 4591 } 4592 4593 .ipx:hover .ipx__text::before, 4594 .ipx:focus-visible .ipx__text::before { 4595 opacity: 1; 4596 } 4597 4598 .ipx__label { 4599 font-size: 0.875rem; 4600 line-height: 1.75rem; 4601 } 4602</style> </li><li> <a class="ipx" href="/integrations" data-event="CTA Clicked" data-e
4602="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Integrations</span> </span> </a> <style> 4603 .ipx { 4604 --ipx-offset: 1.125rem; 4605 display: inline-block; 4606 position: relative; 4607 padding-right: var(--ipx-offset); 4608 color: var(--text-body); 4609 transition: color 0.2s ease; 4610 cursor: pointer; 4611 } 4612 4613 .ipx:hover, 4614 .ipx:focus-visible { 4615 color: var(--text-headings); 4616 } 4617 4618 .ipx__text { 4619 display: inline-block; 4620 transition: transform 0.2s ease; 4621 } 4622 4623 .ipx__text::before { 4624 content: ""; 4625 position: absolute; 4626 left: calc(-1 * var(--ipx-offset)); 4627 top: 50%; 4628 width: 0.625rem; 4629 height: 0.625rem; 4630 background-color: currentColor; 4631 opacity: 0; 4632 pointer-events: none; 4633 transform: translateY(-50%); 4634 transition: opacity 0.2s ease; 4635 } 4636 4637 .ipx:hover .ipx__text, 4638 .ipx:focus-visible .ipx__text { 4639 transform: translateX(var(--ipx-offset)); 4640 } 4641 4642 .ipx:hover .ipx__text::before, 4643 .ipx:focus-visible .ipx__text::before { 4644 opacity: 1; 4645 } 4646 4647 .ipx__label { 4648 font-size: 0.875rem; 4649 line-height: 1.75rem; 4650 } 4651</style> </li> </ul> </div> </div> <div class="footer-ig88__group footer-ig88__group--products"> <h3 class="footer-ig88__column-title">Products</h3> <div class="footer-ig88__products-cols"> <ul class="footer-ig88__column-links"> <li> <a class="footer-ig88__link" href="/product/vendor-risk" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="footer-ig88__link-icon"><svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 4652<path d="M17.8971 24H23.8625V18H17.8971H11.9316V24H17.8971Z" fill="currentColor"></path> 4653<path d="M5.96545 12H0V18H5.96545H11.9309V12H5.96545Z" fill="currentColor"></path> 4654<path d="M5.96545 0H0V5.99999H5.96545H11.9309V0H5.96545Z" fill="currentColor"></path> 4655<path d="M23.8625 12.0001V6.00006H17.8971H11.9316V12.0001H17.8971H23.8625Z" fill="currentColor"></path> 4656</svg></span> Vendor Risk </a> </li><li> <a class="footer-ig88__link" href="/product/user-risk" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="footer-ig88__link-icon"><svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 4657<path d="M17.948 12V6V1.52588e-05H11.9652H5.98242V6V12H11.9652H17.948Z" fill="currentColor"></path> 4658<path d="M11.9656 18H5.98279H0V24H5.98279H11.9656H17.9484H23.9312V18H17.9484H11.9656Z" fill="currentColor"></path> 4659</svg></span> User Risk </a> </li><li> <a class="footer-ig88__link" href="/product/risk-automations" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="footer-ig88__link-icon"><svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"> 4660 <path fill="currentColor" d="M18 24h6V0H0v6h12v6H6v6H0v6h6v-6h6v-6h6z"></path> 4661</svg></span> Risk Automations </a> </li> </ul> <ul class="footer-ig88__column-links"> <li> <a class="footer-ig88__link" href="/product/breach-risk" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="footer-ig88__link-icon"><svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none"> 4662 <path d="M6.5 1.52588e-05H0.5V6H6.5V1.52588e-05Z" fill="currentColor"></path> 4663 <path d="M12.5 5.99991H6.5V11.9999H12.5V5.99991Z" fill="currentColor"></path> 4664 <path d="M6.5 11.9999H0.5V17.9999H6.5V11.9999Z" fill="currentColor"></path> 4665 <path d="M18.5 -7.62939e-05H12.5V5.99991H18.5V-7.62939e-05Z" fill="currentColor"></path> 4666 <path d="M18.5 5.99991V11.9999V17.9999H12.5H6.5V23.9999H12.5H18.5H24.5V17.9999V11.9999V5.99991H18.5Z" fill="currentColor"></path> 4667</svg></span> Breach Risk </a> </li><li> <a class="footer-ig88__link" href="/product/trust-exchange" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="footer-ig88__link-icon"><svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> 4668 <path d="M23.7915 17.823H17.9688V23.6459H23.7915V17.823Z" fill="currentColor"></path> 4669 <path d="M6.32278 17.823H0.5V23.6459H6.32278V17.823Z" fill="currentColor"></path> 4670 <path d="M6.32278 0.354218H0.5V6.17706H6.32278V0.354218Z" fill="currentColor"></path> 4671 <path d="M23.7915 0.354294H17.9688V6.17714H23.7915V0.354294Z" fill="currentColor"></path> 4672 <path d="M6.32422 6.17752V12.0004V17.8232H12.147H17.9698V12.0004V6.17752H12.147H6.32422Z" fill="currentColor"></path> 4673</svg></span> Trust Exchange </a> </li> </ul> </div> </div> <div class="footer-ig88__group footer-ig88__group--nav"> <div class="footer-ig88__column"> <h3 class="footer-ig88__column-title">Compare</h3> <ul class="footer-ig88__column-links"> <li> <a class="ipx" href="/compare/bitsight-vs-upguard" data-event="CTA Clicked" data-e
4673="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">BitSight</span> </span> </a> <style> 4674 .ipx { 4675 --ipx-offset: 1.125rem; 4676 display: inline-block; 4677 position: relative; 4678 padding-right: var(--ipx-offset); 4679 color: var(--text-body); 4680 transition: color 0.2s ease; 4681 cursor: pointer; 4682 } 4683 4684 .ipx:hover, 4685 .ipx:focus-visible { 4686 color: var(--text-headings); 4687 } 4688 4689 .ipx__text { 4690 display: inline-block; 4691 transition: transform 0.2s ease; 4692 } 4693 4694 .ipx__text::before { 4695 content: ""; 4696 position: absolute; 4697 left: calc(-1 * var(--ipx-offset)); 4698 top: 50%; 4699 width: 0.625rem; 4700 height: 0.625rem; 4701 background-color: currentColor; 4702 opacity: 0; 4703 pointer-events: none; 4704 transform: translateY(-50%); 4705 transition: opacity 0.2s ease; 4706 } 4707 4708 .ipx:hover .ipx__text, 4709 .ipx:focus-visible .ipx__text { 4710 transform: translateX(var(--ipx-offset)); 4711 } 4712 4713 .ipx:hover .ipx__text::before, 4714 .ipx:focus-visible .ipx__text::before { 4715 opacity: 1; 4716 } 4717 4718 .ipx__label { 4719 font-size: 0.875rem; 4720 line-height: 1.75rem; 4721 } 4722</style> </li><li> <a class="ipx" href="/compare/securityscorecard-vs-upguard" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">SecurityScorecard</span> </span> </a> <style> 4723 .ipx { 4724 --ipx-offset: 1.125rem; 4725 display: inline-block; 4726 position: relative; 4727 padding-right: var(--ipx-offset); 4728 color: var(--text-body); 4729 transition: color 0.2s ease; 4730 cursor: pointer; 4731 } 4732 4733 .ipx:hover, 4734 .ipx:focus-visible { 4735 color: var(--text-headings); 4736 } 4737 4738 .ipx__text { 4739 display: inline-block; 4740 transition: transform 0.2s ease; 4741 } 4742 4743 .ipx__text::before { 4744 content: ""; 4745 position: absolute; 4746 left: calc(-1 * var(--ipx-offset)); 4747 top: 50%; 4748 width: 0.625rem; 4749 height: 0.625rem; 4750 background-color: currentColor; 4751 opacity: 0; 4752 pointer-events: none; 4753 transform: translateY(-50%); 4754 transition: opacity 0.2s ease; 4755 } 4756 4757 .ipx:hover .ipx__text, 4758 .ipx:focus-visible .ipx__text { 4759 transform: translateX(var(--ipx-offset)); 4760 } 4761 4762 .ipx:hover .ipx__text::before, 4763 .ipx:focus-visible .ipx__text::before { 4764 opacity: 1; 4765 } 4766 4767 .ipx__label { 4768 font-size: 0.875rem; 4769 line-height: 1.75rem; 4770 } 4771</style> </li><li> <a class="ipx" href="/compare/cybergrx-vs-upguard" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">CyberGRX</span> </span> </a> <style> 4772 .ipx { 4773 --ipx-offset: 1.125rem; 4774 display: inline-block; 4775 position: relative; 4776 padding-right: var(--ipx-offset); 4777 color: var(--text-body); 4778 transition: color 0.2s ease; 4779 cursor: pointer; 4780 } 4781 4782 .ipx:hover, 4783 .ipx:focus-visible { 4784 color: var(--text-headings); 4785 } 4786 4787 .ipx__text { 4788 display: inline-block; 4789 transition: transform 0.2s ease; 4790 } 4791 4792 .ipx__text::before { 4793 content: ""; 4794 position: absolute; 4795 left: calc(-1 * var(--ipx-offset)); 4796 top: 50%; 4797 width: 0.625rem; 4798 height: 0.625rem; 4799 background-color: currentColor; 4800 opacity: 0; 4801 pointer-events: none; 4802 transform: translateY(-50%); 4803 transition: opacity 0.2s ease; 4804 } 4805 4806 .ipx:hover .ipx__text, 4807 .ipx:focus-visible .ipx__text { 4808 transform: translateX(var(--ipx-offset)); 4809 } 4810 4811 .ipx:hover .ipx__text::before, 4812 .ipx:focus-visible .ipx__text::before { 4813 opacity: 1; 4814 } 4815 4816 .ipx__label { 4817 font-size: 0.875rem; 4818 line-height: 1.75rem; 4819 } 4820</style> </li><li> <a class="ipx" href="/compare/riskrecon-vs-upguard" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">RiskRecon</span> </span> </a> <style> 4821 .ipx { 4822 --ipx-offset: 1.125rem; 4823 display: inline-block; 4824 position: relative; 4825 padding-right: var(--ipx-offset); 4826 color: var(--text-body); 4827 transition: color 0.2s ease; 4828 cursor: pointer; 4829 } 4830 4831 .ipx:hover, 4832 .ipx:focus-visible { 4833 color: var(--text-headings); 4834 } 4835 4836 .ipx__text { 4837 display: inline-block; 4838 transition: transform 0.2s ease; 4839 } 4840 4841 .ipx__text::before { 4842 content: ""; 4843 position: absolute; 4844 left: calc(-1 * var(--ipx-offset)); 4845 top: 50%; 4846 width: 0.625rem; 4847 height: 0.625rem; 4848 background-color: currentColor; 4849 opacity: 0; 4850 pointer-events: none; 4851 transform: translateY(-50%); 4852 transition: opacity 0.2s ease; 4853 } 4854 4855 .ipx:hover .ipx__text, 4856 .ipx:focus-visible .ipx__text { 4857 transform: translateX(var(--ipx-offset)); 4858 } 4859 4860 .ipx:hover .ipx__text::before, 4861 .ipx:focus-visible .ipx__text::before { 4862 opacity: 1; 4863 } 4864 4865 .ipx__label { 4866 font-size: 0.875rem; 4867 line-height: 1.75rem; 4868 } 4869</style> </li><li>
4869 <a class="ipx" href="/compare" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">All comparisons</span> </span> </a> <style> 4870 .ipx { 4871 --ipx-offset: 1.125rem; 4872 display: inline-block; 4873 position: relative; 4874 padding-right: var(--ipx-offset); 4875 color: var(--text-body); 4876 transition: color 0.2s ease; 4877 cursor: pointer; 4878 } 4879 4880 .ipx:hover, 4881 .ipx:focus-visible { 4882 color: var(--text-headings); 4883 } 4884 4885 .ipx__text { 4886 display: inline-block; 4887 transition: transform 0.2s ease; 4888 } 4889 4890 .ipx__text::before { 4891 content: ""; 4892 position: absolute; 4893 left: calc(-1 * var(--ipx-offset)); 4894 top: 50%; 4895 width: 0.625rem; 4896 height: 0.625rem; 4897 background-color: currentColor; 4898 opacity: 0; 4899 pointer-events: none; 4900 transform: translateY(-50%); 4901 transition: opacity 0.2s ease; 4902 } 4903 4904 .ipx:hover .ipx__text, 4905 .ipx:focus-visible .ipx__text { 4906 transform: translateX(var(--ipx-offset)); 4907 } 4908 4909 .ipx:hover .ipx__text::before, 4910 .ipx:focus-visible .ipx__text::before { 4911 opacity: 1; 4912 } 4913 4914 .ipx__label { 4915 font-size: 0.875rem; 4916 line-height: 1.75rem; 4917 } 4918</style> </li> </ul> </div><div class="footer-ig88__column"> <h3 class="footer-ig88__column-title">Resources</h3> <ul class="footer-ig88__column-links"> <li> <a class="ipx" href="/news" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">News</span> </span> </a> <style> 4919 .ipx { 4920 --ipx-offset: 1.125rem; 4921 display: inline-block; 4922 position: relative; 4923 padding-right: var(--ipx-offset); 4924 color: var(--text-body); 4925 transition: color 0.2s ease; 4926 cursor: pointer; 4927 } 4928 4929 .ipx:hover, 4930 .ipx:focus-visible { 4931 color: var(--text-headings); 4932 } 4933 4934 .ipx__text { 4935 display: inline-block; 4936 transition: transform 0.2s ease; 4937 } 4938 4939 .ipx__text::before { 4940 content: ""; 4941 position: absolute; 4942 left: calc(-1 * var(--ipx-offset)); 4943 top: 50%; 4944 width: 0.625rem; 4945 height: 0.625rem; 4946 background-color: currentColor; 4947 opacity: 0; 4948 pointer-events: none; 4949 transform: translateY(-50%); 4950 transition: opacity 0.2s ease; 4951 } 4952 4953 .ipx:hover .ipx__text, 4954 .ipx:focus-visible .ipx__text { 4955 transform: translateX(var(--ipx-offset)); 4956 } 4957 4958 .ipx:hover .ipx__text::before, 4959 .ipx:focus-visible .ipx__text::before { 4960 opacity: 1; 4961 } 4962 4963 .ipx__label { 4964 font-size: 0.875rem; 4965 line-height: 1.75rem; 4966 } 4967</style> </li><li> <a class="ipx" href="/events" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Events</span> </span> </a> <style> 4968 .ipx { 4969 --ipx-offset: 1.125rem; 4970 display: inline-block; 4971 position: relative; 4972 padding-right: var(--ipx-offset); 4973 color: var(--text-body); 4974 transition: color 0.2s ease; 4975 cursor: pointer; 4976 } 4977 4978 .ipx:hover, 4979 .ipx:focus-visible { 4980 color: var(--text-headings); 4981 } 4982 4983 .ipx__text { 4984 display: inline-block; 4985 transition: transform 0.2s ease; 4986 } 4987 4988 .ipx__text::before { 4989 content: ""; 4990 position: absolute; 4991 left: calc(-1 * var(--ipx-offset)); 4992 top: 50%; 4993 width: 0.625rem; 4994 height: 0.625rem; 4995 background-color: currentColor; 4996 opacity: 0; 4997 pointer-events: none; 4998 transform: translateY(-50%); 4999 transition: opacity 0.2s ease; 5000 } 5001 5002 .ipx:hover .ipx__text, 5003 .ipx:focus-visible .ipx__text { 5004 transform: translateX(var(--ipx-offset)); 5005 } 5006 5007 .ipx:hover .ipx__text::before, 5008 .ipx:focus-visible .ipx__text::before { 5009 opacity: 1; 5010 } 5011 5012 .ipx__label { 5013 font-size: 0.875rem; 5014 line-height: 1.75rem; 5015 } 5016</style> </li><li> <a class="ipx" href="/breaches" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Breaches</span> </span> </a> <style> 5017 .ipx { 5018 --ipx-offset: 1.125rem; 5019 display: inline-block; 5020 position: relative; 5021 padding-right: var(--ipx-offset); 5022 color: var(--text-body); 5023 transition: color 0.2s ease; 5024 cursor: pointer; 5025 } 5026 5027 .ipx:hover, 5028 .ipx:focus-visible { 5029 color: var(--text-headings); 5030 } 5031 5032 .ipx__text { 5033 display: inline-block; 5034 transition: transform 0.2s ease; 5035 } 5036 5037 .ipx__text::before { 5038 content: ""; 5039 position: absolute; 5040 left: calc(-1 * var(--ipx-offset)); 5041 top: 50%; 5042 width: 0.625rem; 5043 height: 0.625rem; 5044 background-color: currentColor; 5045 opacity: 0; 5046 pointer-events: none; 5047 transform: translateY(-50%); 5048 transition: opacity 0.2s ease; 5049 } 5050 5051 .ipx:hover .ipx__text, 5052 .ipx:focus-visible .ipx__text { 5053 transform: translateX(var(--ipx-offset)); 5054 } 5055 5056 .ipx:hover .ipx__text::before, 5057 .ipx:focus-visible .ipx__text::before { 5058 opacity: 1; 5059 } 5060 5061 .ipx__label { 5062 font-size: 0.875rem; 5063 line-height: 1.75rem; 5064 } 5065</style> </li><li> <a class="ipx" href="/templates" data-event="CTA Clicked" data-e
5065="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Templates</span> </span> </a> <style> 5066 .ipx { 5067 --ipx-offset: 1.125rem; 5068 display: inline-block; 5069 position: relative; 5070 padding-right: var(--ipx-offset); 5071 color: var(--text-body); 5072 transition: color 0.2s ease; 5073 cursor: pointer; 5074 } 5075 5076 .ipx:hover, 5077 .ipx:focus-visible { 5078 color: var(--text-headings); 5079 } 5080 5081 .ipx__text { 5082 display: inline-block; 5083 transition: transform 0.2s ease; 5084 } 5085 5086 .ipx__text::before { 5087 content: ""; 5088 position: absolute; 5089 left: calc(-1 * var(--ipx-offset)); 5090 top: 50%; 5091 width: 0.625rem; 5092 height: 0.625rem; 5093 background-color: currentColor; 5094 opacity: 0; 5095 pointer-events: none; 5096 transform: translateY(-50%); 5097 transition: opacity 0.2s ease; 5098 } 5099 5100 .ipx:hover .ipx__text, 5101 .ipx:focus-visible .ipx__text { 5102 transform: translateX(var(--ipx-offset)); 5103 } 5104 5105 .ipx:hover .ipx__text::before, 5106 .ipx:focus-visible .ipx__text::before { 5107 opacity: 1; 5108 } 5109 5110 .ipx__label { 5111 font-size: 0.875rem; 5112 line-height: 1.75rem; 5113 } 5114</style> </li> </ul> </div><div class="footer-ig88__column"> <h3 class="footer-ig88__column-title">Company</h3> <ul class="footer-ig88__column-links"> <li> <a class="ipx" href="/about" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">About us</span> </span> </a> <style> 5115 .ipx { 5116 --ipx-offset: 1.125rem; 5117 display: inline-block; 5118 position: relative; 5119 padding-right: var(--ipx-offset); 5120 color: var(--text-body); 5121 transition: color 0.2s ease; 5122 cursor: pointer; 5123 } 5124 5125 .ipx:hover, 5126 .ipx:focus-visible { 5127 color: var(--text-headings); 5128 } 5129 5130 .ipx__text { 5131 display: inline-block; 5132 transition: transform 0.2s ease; 5133 } 5134 5135 .ipx__text::before { 5136 content: ""; 5137 position: absolute; 5138 left: calc(-1 * var(--ipx-offset)); 5139 top: 50%; 5140 width: 0.625rem; 5141 height: 0.625rem; 5142 background-color: currentColor; 5143 opacity: 0; 5144 pointer-events: none; 5145 transform: translateY(-50%); 5146 transition: opacity 0.2s ease; 5147 } 5148 5149 .ipx:hover .ipx__text, 5150 .ipx:focus-visible .ipx__text { 5151 transform: translateX(var(--ipx-offset)); 5152 } 5153 5154 .ipx:hover .ipx__text::before, 5155 .ipx:focus-visible .ipx__text::before { 5156 opacity: 1; 5157 } 5158 5159 .ipx__label { 5160 font-size: 0.875rem; 5161 line-height: 1.75rem; 5162 } 5163</style> </li><li> <a class="ipx" href="/careers" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Careers</span> </span> </a> <style> 5164 .ipx { 5165 --ipx-offset: 1.125rem; 5166 display: inline-block; 5167 position: relative; 5168 padding-right: var(--ipx-offset); 5169 color: var(--text-body); 5170 transition: color 0.2s ease; 5171 cursor: pointer; 5172 } 5173 5174 .ipx:hover, 5175 .ipx:focus-visible { 5176 color: var(--text-headings); 5177 } 5178 5179 .ipx__text { 5180 display: inline-block; 5181 transition: transform 0.2s ease; 5182 } 5183 5184 .ipx__text::before { 5185 content: ""; 5186 position: absolute; 5187 left: calc(-1 * var(--ipx-offset)); 5188 top: 50%; 5189 width: 0.625rem; 5190 height: 0.625rem; 5191 background-color: currentColor; 5192 opacity: 0; 5193 pointer-events: none; 5194 transform: translateY(-50%); 5195 transition: opacity 0.2s ease; 5196 } 5197 5198 .ipx:hover .ipx__text, 5199 .ipx:focus-visible .ipx__text { 5200 transform: translateX(var(--ipx-offset)); 5201 } 5202 5203 .ipx:hover .ipx__text::before, 5204 .ipx:focus-visible .ipx__text::before { 5205 opacity: 1; 5206 } 5207 5208 .ipx__label { 5209 font-size: 0.875rem; 5210 line-height: 1.75rem; 5211 } 5212</style> </li><li> <a class="ipx" href="/contact" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Contact</span> </span> </a> <style> 5213 .ipx { 5214 --ipx-offset: 1.125rem; 5215 display: inline-block; 5216 position: relative; 5217 padding-right: var(--ipx-offset); 5218 color: var(--text-body); 5219 transition: color 0.2s ease; 5220 cursor: pointer; 5221 } 5222 5223 .ipx:hover, 5224 .ipx:focus-visible { 5225 color: var(--text-headings); 5226 } 5227 5228 .ipx__text { 5229 display: inline-block; 5230 transition: transform 0.2s ease; 5231 } 5232 5233 .ipx__text::before { 5234 content: ""; 5235 position: absolute; 5236 left: calc(-1 * var(--ipx-offset)); 5237 top: 50%; 5238 width: 0.625rem; 5239 height: 0.625rem; 5240 background-color: currentColor; 5241 opacity: 0; 5242 pointer-events: none; 5243 transform: translateY(-50%); 5244 transition: opacity 0.2s ease; 5245 } 5246 5247 .ipx:hover .ipx__text, 5248 .ipx:focus-visible .ipx__text { 5249 transform: translateX(var(--ipx-offset)); 5250 } 5251 5252 .ipx:hover .ipx__text::before, 5253 .ipx:focus-visible .ipx__text::before { 5254 opacity: 1; 5255 } 5256 5257 .ipx__label { 5258 font-size: 0.875rem; 5259 line-height: 1.75rem; 5260 } 5261</style> </li><li>
5261 <a class="ipx" href="/press" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Press</span> </span> </a> <style> 5262 .ipx { 5263 --ipx-offset: 1.125rem; 5264 display: inline-block; 5265 position: relative; 5266 padding-right: var(--ipx-offset); 5267 color: var(--text-body); 5268 transition: color 0.2s ease; 5269 cursor: pointer; 5270 } 5271 5272 .ipx:hover, 5273 .ipx:focus-visible { 5274 color: var(--text-headings); 5275 } 5276 5277 .ipx__text { 5278 display: inline-block; 5279 transition: transform 0.2s ease; 5280 } 5281 5282 .ipx__text::before { 5283 content: ""; 5284 position: absolute; 5285 left: calc(-1 * var(--ipx-offset)); 5286 top: 50%; 5287 width: 0.625rem; 5288 height: 0.625rem; 5289 background-color: currentColor; 5290 opacity: 0; 5291 pointer-events: none; 5292 transform: translateY(-50%); 5293 transition: opacity 0.2s ease; 5294 } 5295 5296 .ipx:hover .ipx__text, 5297 .ipx:focus-visible .ipx__text { 5298 transform: translateX(var(--ipx-offset)); 5299 } 5300 5301 .ipx:hover .ipx__text::before, 5302 .ipx:focus-visible .ipx__text::before { 5303 opacity: 1; 5304 } 5305 5306 .ipx__label { 5307 font-size: 0.875rem; 5308 line-height: 1.75rem; 5309 } 5310</style> </li><li> <a class="ipx" href="https://help.upguard.com/en/" data-event="CTA Clicked" data-e="CTA Clicked" target="_blank" rel="noopener noreferrer"> <span class="ipx__text"> <span class="ipx__label">Support</span> </span> </a> <style> 5311 .ipx { 5312 --ipx-offset: 1.125rem; 5313 display: inline-block; 5314 position: relative; 5315 padding-right: var(--ipx-offset); 5316 color: var(--text-body); 5317 transition: color 0.2s ease; 5318 cursor: pointer; 5319 } 5320 5321 .ipx:hover, 5322 .ipx:focus-visible { 5323 color: var(--text-headings); 5324 } 5325 5326 .ipx__text { 5327 display: inline-block; 5328 transition: transform 0.2s ease; 5329 } 5330 5331 .ipx__text::before { 5332 content: ""; 5333 position: absolute; 5334 left: calc(-1 * var(--ipx-offset)); 5335 top: 50%; 5336 width: 0.625rem; 5337 height: 0.625rem; 5338 background-color: currentColor; 5339 opacity: 0; 5340 pointer-events: none; 5341 transform: translateY(-50%); 5342 transition: opacity 0.2s ease; 5343 } 5344 5345 .ipx:hover .ipx__text, 5346 .ipx:focus-visible .ipx__text { 5347 transform: translateX(var(--ipx-offset)); 5348 } 5349 5350 .ipx:hover .ipx__text::before, 5351 .ipx:focus-visible .ipx__text::before { 5352 opacity: 1; 5353 } 5354 5355 .ipx__label { 5356 font-size: 0.875rem; 5357 line-height: 1.75rem; 5358 } 5359</style> </li><li> <a class="ipx" href="/security" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Security</span> </span> </a> <style> 5360 .ipx { 5361 --ipx-offset: 1.125rem; 5362 display: inline-block; 5363 position: relative; 5364 padding-right: var(--ipx-offset); 5365 color: var(--text-body); 5366 transition: color 0.2s ease; 5367 cursor: pointer; 5368 } 5369 5370 .ipx:hover, 5371 .ipx:focus-visible { 5372 color: var(--text-headings); 5373 } 5374 5375 .ipx__text { 5376 display: inline-block; 5377 transition: transform 0.2s ease; 5378 } 5379 5380 .ipx__text::before { 5381 content: ""; 5382 position: absolute; 5383 left: calc(-1 * var(--ipx-offset)); 5384 top: 50%; 5385 width: 0.625rem; 5386 height: 0.625rem; 5387 background-color: currentColor; 5388 opacity: 0; 5389 pointer-events: none; 5390 transform: translateY(-50%); 5391 transition: opacity 0.2s ease; 5392 } 5393 5394 .ipx:hover .ipx__text, 5395 .ipx:focus-visible .ipx__text { 5396 transform: translateX(var(--ipx-offset)); 5397 } 5398 5399 .ipx:hover .ipx__text::before, 5400 .ipx:focus-visible .ipx__text::before { 5401 opacity: 1; 5402 } 5403 5404 .ipx__label { 5405 font-size: 0.875rem; 5406 line-height: 1.75rem; 5407 } 5408</style> </li><li> <a class="ipx" href="/partners" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Partners</span> </span> </a> <style> 5409 .ipx { 5410 --ipx-offset: 1.125rem; 5411 display: inline-block; 5412 position: relative; 5413 padding-right: var(--ipx-offset); 5414 color: var(--text-body); 5415 transition: color 0.2s ease; 5416 cursor: pointer; 5417 } 5418 5419 .ipx:hover, 5420 .ipx:focus-visible { 5421 color: var(--text-headings); 5422 } 5423 5424 .ipx__text { 5425 display: inline-block; 5426 transition: transform 0.2s ease; 5427 } 5428 5429 .ipx__text::before { 5430 content: ""; 5431 position: absolute; 5432 left: calc(-1 * var(--ipx-offset)); 5433 top: 50%; 5434 width: 0.625rem; 5435 height: 0.625rem; 5436 background-color: currentColor; 5437 opacity: 0; 5438 pointer-events: none; 5439 transform: translateY(-50%); 5440 transition: opacity 0.2s ease; 5441 } 5442 5443 .ipx:hover .ipx__text, 5444 .ipx:focus-visible .ipx__text { 5445 transform: translateX(var(--ipx-offset)); 5446 } 5447 5448 .ipx:hover .ipx__text::before, 5449 .ipx:focus-visible .ipx__text::before { 5450 opacity: 1; 5451 } 5452 5453 .ipx__label { 5454 font-size: 0.875rem; 5455 line-height: 1.75rem; 5456 } 5457</style> </li> </ul> </div><div class="footer-ig88__column"> <h3 class="footer-ig88__column-title">Solutions</h3> <ul class="footer-ig88__column-links"> <li> <a class="ipx" href="/industries/financial-services" data-event="CTA Clicked" data-e
5457="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Financial Services</span> </span> </a> <style> 5458 .ipx { 5459 --ipx-offset: 1.125rem; 5460 display: inline-block; 5461 position: relative; 5462 padding-right: var(--ipx-offset); 5463 color: var(--text-body); 5464 transition: color 0.2s ease; 5465 cursor: pointer; 5466 } 5467 5468 .ipx:hover, 5469 .ipx:focus-visible { 5470 color: var(--text-headings); 5471 } 5472 5473 .ipx__text { 5474 display: inline-block; 5475 transition: transform 0.2s ease; 5476 } 5477 5478 .ipx__text::before { 5479 content: ""; 5480 position: absolute; 5481 left: calc(-1 * var(--ipx-offset)); 5482 top: 50%; 5483 width: 0.625rem; 5484 height: 0.625rem; 5485 background-color: currentColor; 5486 opacity: 0; 5487 pointer-events: none; 5488 transform: translateY(-50%); 5489 transition: opacity 0.2s ease; 5490 } 5491 5492 .ipx:hover .ipx__text, 5493 .ipx:focus-visible .ipx__text { 5494 transform: translateX(var(--ipx-offset)); 5495 } 5496 5497 .ipx:hover .ipx__text::before, 5498 .ipx:focus-visible .ipx__text::before { 5499 opacity: 1; 5500 } 5501 5502 .ipx__label { 5503 font-size: 0.875rem; 5504 line-height: 1.75rem; 5505 } 5506</style> </li><li> <a class="ipx" href="/industries/technology" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Technology</span> </span> </a> <style> 5507 .ipx { 5508 --ipx-offset: 1.125rem; 5509 display: inline-block; 5510 position: relative; 5511 padding-right: var(--ipx-offset); 5512 color: var(--text-body); 5513 transition: color 0.2s ease; 5514 cursor: pointer; 5515 } 5516 5517 .ipx:hover, 5518 .ipx:focus-visible { 5519 color: var(--text-headings); 5520 } 5521 5522 .ipx__text { 5523 display: inline-block; 5524 transition: transform 0.2s ease; 5525 } 5526 5527 .ipx__text::before { 5528 content: ""; 5529 position: absolute; 5530 left: calc(-1 * var(--ipx-offset)); 5531 top: 50%; 5532 width: 0.625rem; 5533 height: 0.625rem; 5534 background-color: currentColor; 5535 opacity: 0; 5536 pointer-events: none; 5537 transform: translateY(-50%); 5538 transition: opacity 0.2s ease; 5539 } 5540 5541 .ipx:hover .ipx__text, 5542 .ipx:focus-visible .ipx__text { 5543 transform: translateX(var(--ipx-offset)); 5544 } 5545 5546 .ipx:hover .ipx__text::before, 5547 .ipx:focus-visible .ipx__text::before { 5548 opacity: 1; 5549 } 5550 5551 .ipx__label { 5552 font-size: 0.875rem; 5553 line-height: 1.75rem; 5554 } 5555</style> </li><li> <a class="ipx" href="/industries/healthcare" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Healthcare</span> </span> </a> <style> 5556 .ipx { 5557 --ipx-offset: 1.125rem; 5558 display: inline-block; 5559 position: relative; 5560 padding-right: var(--ipx-offset); 5561 color: var(--text-body); 5562 transition: color 0.2s ease; 5563 cursor: pointer; 5564 } 5565 5566 .ipx:hover, 5567 .ipx:focus-visible { 5568 color: var(--text-headings); 5569 } 5570 5571 .ipx__text { 5572 display: inline-block; 5573 transition: transform 0.2s ease; 5574 } 5575 5576 .ipx__text::before { 5577 content: ""; 5578 position: absolute; 5579 left: calc(-1 * var(--ipx-offset)); 5580 top: 50%; 5581 width: 0.625rem; 5582 height: 0.625rem; 5583 background-color: currentColor; 5584 opacity: 0; 5585 pointer-events: none; 5586 transform: translateY(-50%); 5587 transition: opacity 0.2s ease; 5588 } 5589 5590 .ipx:hover .ipx__text, 5591 .ipx:focus-visible .ipx__text { 5592 transform: translateX(var(--ipx-offset)); 5593 } 5594 5595 .ipx:hover .ipx__text::before, 5596 .ipx:focus-visible .ipx__text::before { 5597 opacity: 1; 5598 } 5599 5600 .ipx__label { 5601 font-size: 0.875rem; 5602 line-height: 1.75rem; 5603 } 5604</style> </li><li> <a class="ipx" href="/solutions/ai-security" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">AI Security Center</span> </span> </a> <style> 5605 .ipx { 5606 --ipx-offset: 1.125rem; 5607 display: inline-block; 5608 position: relative; 5609 padding-right: var(--ipx-offset); 5610 color: var(--text-body); 5611 transition: color 0.2s ease; 5612 cursor: pointer; 5613 } 5614 5615 .ipx:hover, 5616 .ipx:focus-visible { 5617 color: var(--text-headings); 5618 } 5619 5620 .ipx__text { 5621 display: inline-block; 5622 transition: transform 0.2s ease; 5623 } 5624 5625 .ipx__text::before { 5626 content: ""; 5627 position: absolute; 5628 left: calc(-1 * var(--ipx-offset)); 5629 top: 50%; 5630 width: 0.625rem; 5631 height: 0.625rem; 5632 background-color: currentColor; 5633 opacity: 0; 5634 pointer-events: none; 5635 transform: translateY(-50%); 5636 transition: opacity 0.2s ease; 5637 } 5638 5639 .ipx:hover .ipx__text, 5640 .ipx:focus-visible .ipx__text { 5641 transform: translateX(var(--ipx-offset)); 5642 } 5643 5644 .ipx:hover .ipx__text::before, 5645 .ipx:focus-visible .ipx__text::before { 5646 opacity: 1; 5647 } 5648 5649 .ipx__label { 5650 font-size: 0.875rem; 5651 line-height: 1.75rem; 5652 } 5653</style> </li> </ul> </div><div class="footer-ig88__column"> <h3 class="footer-ig88__column-title">Quick links</h3> <ul class="footer-ig88__column-links"> <li> <a class="ipx" href="/category/third-party-risk-management" data-event="CTA Clicked" data-e
5653="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Third-Party Risk Management</span> </span> </a> <style> 5654 .ipx { 5655 --ipx-offset: 1.125rem; 5656 display: inline-block; 5657 position: relative; 5658 padding-right: var(--ipx-offset); 5659 color: var(--text-body); 5660 transition: color 0.2s ease; 5661 cursor: pointer; 5662 } 5663 5664 .ipx:hover, 5665 .ipx:focus-visible { 5666 color: var(--text-headings); 5667 } 5668 5669 .ipx__text { 5670 display: inline-block; 5671 transition: transform 0.2s ease; 5672 } 5673 5674 .ipx__text::before { 5675 content: ""; 5676 position: absolute; 5677 left: calc(-1 * var(--ipx-offset)); 5678 top: 50%; 5679 width: 0.625rem; 5680 height: 0.625rem; 5681 background-color: currentColor; 5682 opacity: 0; 5683 pointer-events: none; 5684 transform: translateY(-50%); 5685 transition: opacity 0.2s ease; 5686 } 5687 5688 .ipx:hover .ipx__text, 5689 .ipx:focus-visible .ipx__text { 5690 transform: translateX(var(--ipx-offset)); 5691 } 5692 5693 .ipx:hover .ipx__text::before, 5694 .ipx:focus-visible .ipx__text::before { 5695 opacity: 1; 5696 } 5697 5698 .ipx__label { 5699 font-size: 0.875rem; 5700 line-height: 1.75rem; 5701 } 5702</style> </li><li> <a class="ipx" href="/category/attack-surface-management" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Attack Surface Management</span> </span> </a> <style> 5703 .ipx { 5704 --ipx-offset: 1.125rem; 5705 display: inline-block; 5706 position: relative; 5707 padding-right: var(--ipx-offset); 5708 color: var(--text-body); 5709 transition: color 0.2s ease; 5710 cursor: pointer; 5711 } 5712 5713 .ipx:hover, 5714 .ipx:focus-visible { 5715 color: var(--text-headings); 5716 } 5717 5718 .ipx__text { 5719 display: inline-block; 5720 transition: transform 0.2s ease; 5721 } 5722 5723 .ipx__text::before { 5724 content: ""; 5725 position: absolute; 5726 left: calc(-1 * var(--ipx-offset)); 5727 top: 50%; 5728 width: 0.625rem; 5729 height: 0.625rem; 5730 background-color: currentColor; 5731 opacity: 0; 5732 pointer-events: none; 5733 transform: translateY(-50%); 5734 transition: opacity 0.2s ease; 5735 } 5736 5737 .ipx:hover .ipx__text, 5738 .ipx:focus-visible .ipx__text { 5739 transform: translateX(var(--ipx-offset)); 5740 } 5741 5742 .ipx:hover .ipx__text::before, 5743 .ipx:focus-visible .ipx__text::before { 5744 opacity: 1; 5745 } 5746 5747 .ipx__label { 5748 font-size: 0.875rem; 5749 line-height: 1.75rem; 5750 } 5751</style> </li> </ul> </div><div class="footer-ig88__column"> <h3 class="footer-ig88__column-title">Tools</h3> <ul class="footer-ig88__column-links"> <li> <a class="ipx" href="/tools/dark-web-scan" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Dark Web Scan</span> </span> </a> <style> 5752 .ipx { 5753 --ipx-offset: 1.125rem; 5754 display: inline-block; 5755 position: relative; 5756 padding-right: var(--ipx-offset); 5757 color: var(--text-body); 5758 transition: color 0.2s ease; 5759 cursor: pointer; 5760 } 5761 5762 .ipx:hover, 5763 .ipx:focus-visible { 5764 color: var(--text-headings); 5765 } 5766 5767 .ipx__text { 5768 display: inline-block; 5769 transition: transform 0.2s ease; 5770 } 5771 5772 .ipx__text::before { 5773 content: ""; 5774 position: absolute; 5775 left: calc(-1 * var(--ipx-offset)); 5776 top: 50%; 5777 width: 0.625rem; 5778 height: 0.625rem; 5779 background-color: currentColor; 5780 opacity: 0; 5781 pointer-events: none; 5782 transform: translateY(-50%); 5783 transition: opacity 0.2s ease; 5784 } 5785 5786 .ipx:hover .ipx__text, 5787 .ipx:focus-visible .ipx__text { 5788 transform: translateX(var(--ipx-offset)); 5789 } 5790 5791 .ipx:hover .ipx__text::before, 5792 .ipx:focus-visible .ipx__text::before { 5793 opacity: 1; 5794 } 5795 5796 .ipx__label { 5797 font-size: 0.875rem; 5798 line-height: 1.75rem; 5799 } 5800</style> </li><li> <a class="ipx" href="/security-report" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Security Reports</span> </span> </a> <style> 5801 .ipx { 5802 --ipx-offset: 1.125rem; 5803 display: inline-block; 5804 position: relative; 5805 padding-right: var(--ipx-offset); 5806 color: var(--text-body); 5807 transition: color 0.2s ease; 5808 cursor: pointer; 5809 } 5810 5811 .ipx:hover, 5812 .ipx:focus-visible { 5813 color: var(--text-headings); 5814 } 5815 5816 .ipx__text { 5817 display: inline-block; 5818 transition: transform 0.2s ease; 5819 } 5820 5821 .ipx__text::before { 5822 content: ""; 5823 position: absolute; 5824 left: calc(-1 * var(--ipx-offset)); 5825 top: 50%; 5826 width: 0.625rem; 5827 height: 0.625rem; 5828 background-color: currentColor; 5829 opacity: 0; 5830 pointer-events: none; 5831 transform: translateY(-50%); 5832 transition: opacity 0.2s ease; 5833 } 5834 5835 .ipx:hover .ipx__text, 5836 .ipx:focus-visible .ipx__text { 5837 transform: translateX(var(--ipx-offset)); 5838 } 5839 5840 .ipx:hover .ipx__text::before, 5841 .ipx:focus-visible .ipx__text::before { 5842 opacity: 1; 5843 } 5844 5845 .ipx__label { 5846 font-size: 0.875rem; 5847 line-height: 1.75rem; 5848 } 5849</style> </li><li> <a class="ipx" href="/instant-security-score" data-event="CTA Clicked" data-e
5849="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Instant Security Score</span> </span> </a> <style> 5850 .ipx { 5851 --ipx-offset: 1.125rem; 5852 display: inline-block; 5853 position: relative; 5854 padding-right: var(--ipx-offset); 5855 color: var(--text-body); 5856 transition: color 0.2s ease; 5857 cursor: pointer; 5858 } 5859 5860 .ipx:hover, 5861 .ipx:focus-visible { 5862 color: var(--text-headings); 5863 } 5864 5865 .ipx__text { 5866 display: inline-block; 5867 transition: transform 0.2s ease; 5868 } 5869 5870 .ipx__text::before { 5871 content: ""; 5872 position: absolute; 5873 left: calc(-1 * var(--ipx-offset)); 5874 top: 50%; 5875 width: 0.625rem; 5876 height: 0.625rem; 5877 background-color: currentColor; 5878 opacity: 0; 5879 pointer-events: none; 5880 transform: translateY(-50%); 5881 transition: opacity 0.2s ease; 5882 } 5883 5884 .ipx:hover .ipx__text, 5885 .ipx:focus-visible .ipx__text { 5886 transform: translateX(var(--ipx-offset)); 5887 } 5888 5889 .ipx:hover .ipx__text::before, 5890 .ipx:focus-visible .ipx__text::before { 5891 opacity: 1; 5892 } 5893 5894 .ipx__label { 5895 font-size: 0.875rem; 5896 line-height: 1.75rem; 5897 } 5898</style> </li><li> <a class="ipx" href="/webscan" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">Website Security Scanner</span> </span> </a> <style> 5899 .ipx { 5900 --ipx-offset: 1.125rem; 5901 display: inline-block; 5902 position: relative; 5903 padding-right: var(--ipx-offset); 5904 color: var(--text-body); 5905 transition: color 0.2s ease; 5906 cursor: pointer; 5907 } 5908 5909 .ipx:hover, 5910 .ipx:focus-visible { 5911 color: var(--text-headings); 5912 } 5913 5914 .ipx__text { 5915 display: inline-block; 5916 transition: transform 0.2s ease; 5917 } 5918 5919 .ipx__text::before { 5920 content: ""; 5921 position: absolute; 5922 left: calc(-1 * var(--ipx-offset)); 5923 top: 50%; 5924 width: 0.625rem; 5925 height: 0.625rem; 5926 background-color: currentColor; 5927 opacity: 0; 5928 pointer-events: none; 5929 transform: translateY(-50%); 5930 transition: opacity 0.2s ease; 5931 } 5932 5933 .ipx:hover .ipx__text, 5934 .ipx:focus-visible .ipx__text { 5935 transform: translateX(var(--ipx-offset)); 5936 } 5937 5938 .ipx:hover .ipx__text::before, 5939 .ipx:focus-visible .ipx__text::before { 5940 opacity: 1; 5941 } 5942 5943 .ipx__label { 5944 font-size: 0.875rem; 5945 line-height: 1.75rem; 5946 } 5947</style> </li><li> <a class="ipx" href="/tools/ai-policy-generator" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">AI Policy Generator</span> </span> </a> <style> 5948 .ipx { 5949 --ipx-offset: 1.125rem; 5950 display: inline-block; 5951 position: relative; 5952 padding-right: var(--ipx-offset); 5953 color: var(--text-body); 5954 transition: color 0.2s ease; 5955 cursor: pointer; 5956 } 5957 5958 .ipx:hover, 5959 .ipx:focus-visible { 5960 color: var(--text-headings); 5961 } 5962 5963 .ipx__text { 5964 display: inline-block; 5965 transition: transform 0.2s ease; 5966 } 5967 5968 .ipx__text::before { 5969 content: ""; 5970 position: absolute; 5971 left: calc(-1 * var(--ipx-offset)); 5972 top: 50%; 5973 width: 0.625rem; 5974 height: 0.625rem; 5975 background-color: currentColor; 5976 opacity: 0; 5977 pointer-events: none; 5978 transform: translateY(-50%); 5979 transition: opacity 0.2s ease; 5980 } 5981 5982 .ipx:hover .ipx__text, 5983 .ipx:focus-visible .ipx__text { 5984 transform: translateX(var(--ipx-offset)); 5985 } 5986 5987 .ipx:hover .ipx__text::before, 5988 .ipx:focus-visible .ipx__text::before { 5989 opacity: 1; 5990 } 5991 5992 .ipx__label { 5993 font-size: 0.875rem; 5994 line-height: 1.75rem; 5995 } 5996</style> </li><li> <a class="ipx" href="/tools" data-event="CTA Clicked" data-e="CTA Clicked"> <span class="ipx__text"> <span class="ipx__label">All tools</span> </span> </a> <style> 5997 .ipx { 5998 --ipx-offset: 1.125rem; 5999 display: inline-block; 6000 position: relative; 6001 padding-right: var(--ipx-offset); 6002 color: var(--text-body); 6003 transition: color 0.2s ease; 6004 cursor: pointer; 6005 } 6006 6007 .ipx:hover, 6008 .ipx:focus-visible { 6009 color: var(--text-headings); 6010 } 6011 6012 .ipx__text { 6013 display: inline-block; 6014 transition: transform 0.2s ease; 6015 } 6016 6017 .ipx__text::before { 6018 content: ""; 6019 position: absolute; 6020 left: calc(-1 * var(--ipx-offset)); 6021 top: 50%; 6022 width: 0.625rem; 6023 height: 0.625rem; 6024 background-color: currentColor; 6025 opacity: 0; 6026 pointer-events: none; 6027 transform: translateY(-50%); 6028 transition: opacity 0.2s ease; 6029 } 6030 6031 .ipx:hover .ipx__text, 6032 .ipx:focus-visible .ipx__text { 6033 transform: translateX(var(--ipx-offset)); 6034 } 6035 6036 .ipx:hover .ipx__text::before, 6037 .ipx:focus-visible .ipx__text::before { 6038 opacity: 1; 6039 } 6040 6041 .ipx__label { 6042 font-size: 0.875rem; 6043 line-height: 1.75rem; 6044 } 6045</style> </li> </ul> </div> </div> </div> </div> <div class="footer-ig88__bottom"> <div class="footer-ig88__bottom-row"> <div class="footer-ig88__copyright"> 6046© 2026 UpGuard, Inc 6047</div> <ul class="footer-ig88__social"> <li> <a class="footer-ig88__social-link" href="https://x.com/UpGuard" aria-label="X" target="_blank" rel="noopener noreferrer" data-event="CTA Clicked" data-e
6047="CTA Clicked"> <span><svg aria-hidden="true" style="display:block; width:16px; height:16px;" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 512 512" fill="none"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z" fill="currentColor"/></svg></span> </a> </li><li> <a class="footer-ig88__social-link" href="https://www.linkedin.com/company/7579497" aria-label="LinkedIn" target="_blank" rel="noopener noreferrer" data-event="CTA Clicked" data-e="CTA Clicked"> <span><svg aria-hidden="true" style="display:block; width:17px; height:16px;" xmlns="http://www.w3.org/2000/svg" width="17" height="16" viewBox="0 0 17 16" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M0.7 0.000488281H15.3C15.7 0.000488281 16 0.300488 16.1 0.700488V15.3005C16.1 15.7005 15.8 16.0005 15.4 16.0005H0.7C0.3 16.0005 0 15.7005 0 15.4005V0.700488C0 0.300488 0.3 0.000488281 0.7 0.000488281ZM2.39999 13.6005H4.69999H4.79999V6.00049H2.39999V13.6005ZM3.60001 5.0005C2.80001 5.0005 2.20001 4.3005 2.20001 3.6005C2.20001 2.8005 2.80001 2.2005 3.60001 2.2005C4.40001 2.2005 5.00001 2.8005 5.00001 3.6005C4.90001 4.3005 4.30001 5.0005 3.60001 5.0005ZM11.2 13.6005H13.5V9.40054C13.5 7.40054 13.1 5.80054 10.7 5.80054C9.60001 5.80054 8.80001 6.40054 8.50001 7.00054V6.00054H6.20001V13.7005H8.60001V9.90054C8.60001 8.90054 8.80001 7.90054 10 7.90054C11.2 7.90054 11.2 9.00054 11.2 9.90054V13.6005Z" fill="currentColor"/></svg></span> </a> </li><li> <a class="footer-ig88__social-link" href="https://www.facebook.com/UpGuard" aria-label="Facebook" target="_blank" rel="noopener noreferrer" data-event="CTA Clicked" data-e="CTA Clicked"> <span><svg aria-hidden="true" style="display:block; width:16px; height:16px;" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M6.02293 16L6 9H3V6H6V4C6 1.3008 7.67151 0 10.0794 0C11.2328 0 12.2241 0.08587 12.5129 0.12425V2.94507L10.843 2.94583C9.53343 2.94583 9.27987 3.5681 9.27987 4.48124V6H13L12 9H9.27986V16H6.02293Z" fill="currentColor"/></svg></span> </a> </li><li> <a class="footer-ig88__social-link" href="https://github.com/ScriptRock" aria-label="GitHub" target="_blank" rel="noopener noreferrer" data-event="CTA Clicked" data-e="CTA Clicked"> <span><svg aria-hidden="true" style="display:block; width:16px; height:16px;" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"><g clip-path="url(#clip0)"><path d="M8.00044 0.186524C6.09591 0.185958 4.25365 0.86487 2.80493 2.10118C1.35622 3.33749 0.396089 5.05009 0.0971964 6.93102C-0.201696 8.81196 0.180257 10.7378 1.17437 12.3623C2.16849 13.9868 3.70955 15.2034 5.52044 15.7932H5.71377C5.8081 15.799 5.90259 15.7848 5.99098 15.7513C6.07936 15.7179 6.15963 15.666 6.22646 15.5992C6.29328 15.5324 6.34514 15.4521 6.37858 15.3637C6.41202 15.2753 6.42629 15.1808 6.42044 15.0865V14.9465C6.42044 14.8332 6.42044 14.6799 6.42044 14.2199C6.4139 14.1762 6.39874 14.1342 6.37585 14.0965C6.35296 14.0587 6.3228 14.0259 6.28711 13.9999C6.24838 13.9685 6.20313 13.9463 6.15467 13.9347C6.10622 13.9232 6.0558 13.9227 6.00711 13.9332C4.22044 14.3199 3.84044 13.1999 3.81377 13.1265C3.59005 12.5339 3.1898 12.0243 2.66711 11.6665C2.63579 11.6394 2.60235 11.6149 2.56711 11.5932C2.64458 11.5515 2.73319 11.5352 2.82044 11.5465C2.988 11.5698 3.14667 11.6361 3.28102 11.7389C3.41537 11.8417 3.52082 11.9775 3.58711 12.1332C3.84501 12.5822 4.26703 12.9138 4.76438 13.058C5.26173 13.2022 5.79564 13.1479 6.25377 12.9065C6.30294 12.885 6.34618 12.852 6.37984 12.8102C6.4135 12.7684 6.43658 12.7191 6.44711 12.6665C6.47263 12.3582 6.60462 12.0683 6.82044 11.8465C6.86835 11.804 6.90299 11.7485 6.92019 11.6868C6.9374 11.6251 6.93645 11.5597 6.91746 11.4985C6.89846 11.4373 6.86223 11.3829 6.8131 11.3417C6.76397 11.3006 6.70403 11.2745 6.64044 11.2665C5.06044 11.0865 3.44711 10.5332 3.44711 7.80652C3.43379 7.12178 3.68444 6.45816 4.14711 5.95319C4.18972 5.90612 4.21801 5.84787 4.22863 5.78527C4.23926 5.72268 4.2318 5.65835 4.20711 5.59986C4.02183 5.08221 4.02419 4.51594 4.21377 3.99986C4.82966 4.10903 5.40773 4.37283 5.89377 4.76652C5.93393 4.79487 5.97996 4.81378 6.02844 4.82186C6.07692 4.82994 6.1266 4.82698 6.17377 4.81319C6.7693 4.65165 7.3834 4.56872 8.00044 4.56652C8.61979 4.56704 9.23631 4.64999 9.83377 4.81319C9.87997 4.82594 9.9284 4.82836 9.97564 4.8203C10.0229 4.81223 10.0678 4.79387 10.1071 4.76652C10.5939 4.37407 11.
60471717 4.11042 11.7871 3.99986C11.9686 4.51318 11.9686 5.0732 11.7871 5.58652C11.7624 5.64502 11.755 5.70935 11.7656 5.77194C11.7762 5.83453 11.8045 5.89279 11.8471 5.93986C12.305 6.43977 12.5553 7.09532 12.5471 7.77319C12.5471 10.4999 10.9271 11.0465 9.34044 11.2265C9.27536 11.2333 9.21372 11.2591 9.16319 11.3007C9.11266 11.3422 9.07549 11.3977 9.0563 11.4603C9.0371 11.5228 9.03675 11.5897 9.05527 11.6524C9.07378 11.7152 9.11036 11.7711 9.16044 11.8132C9.30811 11.9656 9.42095 12.1483 9.49116 12.3485C9.56137 12.5488 9.58728 12.7619 9.56711 12.9732V15.0932C9.56381 15.1974 9.58362 15.3011 9.62511 15.3967C9.6666 15.4924 9.72876 15.5777 9.80711 15.6465C9.90689 15.7212 10.0227 15.7716 10.1454 15.7936C10.2681 15.8156 10.3943 15.8086 10.5138 15.7732C12.3125 15.1714 13.8389 13.9502 14.8207 12.3273C15.8024 10.7044 16.1756 8.78548 15.8737 6.91294C15.5717 5.04041 14.6143 3.33606 13.1722 2.10402C11.7301 0.871979 9.89716 0.192394 8.00044 0.186524V0.186524Z" fill="currentColor"/></g><defs><clipPath id="clip0"><rect width="16" height="16" fill="currentColor"/></clipPath></defs></svg></span> </a> </li><li> <a class="footer-ig88__social-link" href="https://wellfound.com/company/upguard" aria-label="Wellfound" target="_blank" rel="noopener noreferrer" data-event="CTA Clicked" data-e="CTA Clicked"> <span><svg style="display:block; overflow:visible; width:20px; height:20px;" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.5 15.9-2 4h3.3l2 8.5L5.6 4h3.2l2.3 8.5L13 4h3.3L12.9 16H9.4L7.2 7.4 5 15.9zM20.1 16a2 2 0 0 0 1.9-2c0-1-.8-2-1.9-2a2 2 0 0 0-1.9 2q.2 1.8 2 2M20.1 8A2 2 0 0 0 22 6q-.1-1.8-1.9-2a2 2 0 0 0-1.9 2c0 1 .9 2 2 2" fill="currentColor"/></svg></span> </a> </li><li> <a class="footer-ig88__social-link" href="https://www.youtube.com/@UpGuardInc" aria-label="YouTube" target="_blank" rel="noopener noreferrer" data-event="CTA Clicked" data-e="CTA Clicked"> <span><svg aria-hidden="true" style="display:block; width:20px; height:20px;" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 576 512" fill="none"><path d="M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zm-317.5 213.5V175.2l142.7 81.2-142.7 81.2z" fill="currentColor"/></svg></span> </a> </li> </ul> <div class="footer-ig88__legal"> <div class="footer-ig88__legal-links"> <a class="footer-ig88__legal-link" href="/company/terms-and-conditions" data-event="CTA Clicked" data-e="CTA Clicked"> Website Terms & Conditions </a><a class="footer-ig88__legal-link" href="/company/platform-terms-and-conditions" data-event="CTA Clicked" data-e="CTA Clicked"> Platform Terms & Conditions </a><a class="footer-ig88__legal-link" href="/company/research-guidelines" data-event="CTA Clicked" data-e="CTA Clicked"> Research Guidelines </a><a class="footer-ig88__legal-link" href="/company/cookies" data-event="CTA Clicked" data-e="CTA Clicked"> Cookies </a><a class="footer-ig88__legal-link" href="/company/privacy" data-event="CTA Clicked" data-e="CTA Clicked"> Privacy </a> </div> </div> </div> <div class="footer-ig88__privacy"> 6048Do not sell or share my personal information 6049</div> </div> </footer>
6049<script> 6050 ;(() => { 6051 document.querySelectorAll(".footer-ig88__privacy").forEach(($el) => 6052 $el.addEventListener("click", () => { 6053 UC_UI.showSecondLayer() 6054 }), 6055 ) 6056 })() 6057</script>
6057 <style> 6058 /* Reset styles */ 6059 :where(.footer-ig88 ul) { 6060 list-style: none; 6061 padding: 0; 6062 margin: 0; 6063 } 6064 :where(.footer-ig88 a) { 6065 text-decoration: none; 6066 color: inherit; 6067 } 6068 .footer-ig88 svg { 6069 display: block; 6070 } 6071 6072 /* Theme styles */ 6073 .footer-ig88 { 6074 --gap: 1.25rem; 6075 --container-max-width: 88.5rem; 6076 --container-width: calc(100% - 2 * var(--gap)); 6077 } 6078 /* Theme variables */ 6079 .footer-ig88[data-theme="dark"] { 6080 --background: #0a0a0a; 6081 --text-headings: #fff; 6082 --text-body: #bababa; 6083 --divider: #3a3a3a; 6084 } 6085 .footer-ig88[data-theme="light"] { 6086 --background: #fff; 6087 --text-headings: #0a0a0a; 6088 --text-body: #6b6b6b; 6089 --divider: #c9c7c7; 6090 font-size: 16px; 6091 } 6092 .footer-ig88--bfSoft[data-theme="light"] { 6093 --background: #f9f9f9; 6094 } 6095 @media (min-width: 480px) { 6096 .footer-ig88 { 6097 --gap: clamp(0.969rem, -0rem + 3.229vw, 1.55rem); 6098 } 6099 } 6100 @media (min-width: 768px) { 6101 .footer-ig88 { 6102 --gap: clamp(1.55rem, 0rem + 3.229vw, 2rem); 6103 } 6104 } 6105 @media (min-width: 992px) { 6106 .footer-ig88 { 6107 --gap: clamp(0.984rem, 0.001rem + 1.587vw, 1.5rem); 6108 --container-width: calc(100% - 4 * var(--gap)); 6109 } 6110 } 6111 6112 /* Footer styles */ 6113 .footer-ig88 { 6114 font-size: 0.875rem; 6115 line-height: 1.75rem; 6116 letter-spacing: -0.01em; 6117 color: var(--text-body); 6118 background-color: var(--background); 6119 padding-top: 1px; /* contains child margins */ 6120 } 6121 .footer-ig88__bd { 6122 margin-left: auto; 6123 margin-right: auto; 6124 max-width: var(--container-max-width); 6125 width: var(--container-width); 6126 } 6127 6128 .footer-ig88__brand { 6129 padding-top: 6rem; 6130 margin-bottom: 5rem; 6131 } 6132 6133 .footer-ig88__brand-link { 6134 display: inline-flex; 6135 align-items: center; 6136 gap: 0.5rem; 6137 color: var(--text-headings); 6138 } 6139 6140 .footer-ig88__brand-text { 6141 position: absolute !important; 6142 height: 1px; 6143 width: 1px; 6144 overflow: hidden; 6145 clip: rect(1px, 1px, 1px, 1px); 6146 white-space: nowrap; 6147 border: 0; 6148 padding: 0; 6149 margin: -1px; 6150 } 6151 6152 .footer-ig88__columns { 6153 display: grid; 6154 grid-template-columns: repeat(12, 1fr); 6155 grid-template-rows: auto auto; 6156 gap: 1.25rem 1.5rem; 6157 margin-bottom: 3.75rem; 6158 } 6159 6160 .footer-ig88__group--platform { 6161 grid-column: 1 / span 2; 6162 grid-row: 1; 6163 } 6164 6165 .footer-ig88__group--products { 6166 grid-column: 3 / span 4; 6167 grid-row: 1; 6168 } 6169 6170 .footer-ig88__products-cols { 6171 display: grid; 6172 grid-template-columns: 1fr 1fr; 6173 gap: 0 1.5rem; 6174 margin-top: 1rem; 6175 } 6176 6177 .footer-ig88__group--nav { 6178 grid-column: 7 / span 6; 6179 grid-row: 1 / span 2; 6180 display: grid; 6181 grid-template-columns: repeat(3, 1fr); 6182 grid-template-rows: auto auto; 6183 gap: 1.5rem; 6184 } 6185 6186 .footer-ig88__column-title { 6187 font-size: 1rem; 6188 font-weight: 400; 6189 line-height: 1.5rem; 6190 color: var(--text-headings); 6191 margin-bottom: 1.75rem; 6192 } 6193 6194 .footer-ig88__column-links { 6195 display: flex; 6196 flex-direction: column; 6197 gap: 0.25rem; 6198 } 6199 6200 .footer-ig88__link { 6201 display: flex; 6202 align-items: center; 6203 gap: 0.75rem; 6204 color: var(--text-body); 6205 transition: color 0.2s ease; 6206 } 6207 6208 .footer-ig88__group--products .footer-ig88__link { 6209 margin-bottom: 1rem; 6210 } 6211 6212 .footer-ig88__link:hover, 6213 .footer-ig88__link:focus-visible { 6214 color: var(--text-headings); 6215 } 6216 6217 .footer-ig88__link-icon { 6218 display: flex; 6219 align-items: center; 6220 flex-shrink: 0; 6221 } 6222 6223 .footer-ig88__link-icon svg { 6224 width: 1rem; 6225 height: 1rem; 6226 } 6227 6228 .footer-ig88__bottom { 6229 padding-top: 1.25rem; 6230 padding-bottom: 0.5rem; 6231 margin-left: auto; 6232 margin-right: auto; 6233 max-width: var(--container-max-width); 6234 width: var(--container-width); 6235 display: flex; 6236 flex-direction: column; 6237 align-items: end; 6238 gap: 1rem; 6239 border-top: 1px solid var(--divider); 6240 } 6241 6242 .footer-ig88__bottom-row { 6243 display: flex; 6244 flex-flow: wrap; 6245 justify-content: space-between; 6246 width: 100%; 6247 gap: 1rem; 6248 } 6249 6250 .footer-ig88__copyright { 6251 font-size: 0.875rem; 6252 color: var(--text-body); 6253 } 6254 6255 .footer-ig88__social { 6256 display: flex; 6257 gap: 1rem;
6258 align-items: center; 6259 margin-left: auto; 6260 } 6261 6262 .footer-ig88__social-link { 6263 display: flex; 6264 align-items: center; 6265 color: var(--text-body); 6266 transition: color 0.2s ease; 6267 } 6268 6269 .footer-ig88__social-link:hover, 6270 .footer-ig88__social-link:focus-visible { 6271 color: var(--text-headings); 6272 } 6273 6274 .footer-ig88__legal { 6275 display: flex; 6276 flex-direction: column; 6277 align-items: flex-end; 6278 gap: 0.5rem; 6279 margin-left: auto; 6280 } 6281 6282 .footer-ig88__legal-links { 6283 display: flex; 6284 flex-wrap: wrap; 6285 gap: 2rem; 6286 margin-left: auto; 6287 } 6288 6289 .footer-ig88__legal-link { 6290 font-size: 0.875rem; 6291 color: var(--text-body); 6292 transition: color 0.2s ease; 6293 line-height: 1.4rem; 6294 } 6295 6296 .footer-ig88__legal-link:hover, 6297 .footer-ig88__legal-link:focus-visible { 6298 color: var(--text-headings); 6299 } 6300 6301 .footer-ig88__privacy { 6302 font-size: 0.75rem; 6303 color: var(--text-body); 6304 opacity: 0.5; 6305 letter-spacing: normal; 6306 } 6307 6308 @media (max-width: 991px) { 6309 .footer-ig88__bottom { 6310 gap: 0.5rem; 6311 } 6312 6313 .footer-ig88__group--platform { 6314 grid-column: span 4; 6315 } 6316 6317 .footer-ig88__group--products { 6318 grid-column: span 8; 6319 grid-row: 1; 6320 } 6321 6322 .footer-ig88__group--nav { 6323 margin-top: 2rem; 6324 grid-column: 1 / -1; 6325 grid-row: 2; 6326 grid-template-columns: repeat(3, 1fr); 6327 gap: 2rem; 6328 } 6329 6330 .footer-ig88__legal-links { 6331 gap: 1.2rem; 6332 grid-row-gap: 0rem; 6333 } 6334 } 6335 6336 /* Mobile: stack columns, smaller brand margin, stack bottom bar */ 6337 @media (max-width: 479px) { 6338 .footer-ig88__brand { 6339 margin-top: 3rem; 6340 margin-bottom: 2.5rem; 6341 } 6342 6343 .footer-ig88__columns { 6344 gap: 0; 6345 margin-bottom: 2rem; 6346 } 6347 6348 .footer-ig88__social { 6349 padding-left: 0.5rem; 6350 } 6351 6352 .footer-ig88__group--platform { 6353 grid-column: 1 / span 6; 6354 grid-row: 1; 6355 } 6356 6357 .footer-ig88__group--products { 6358 grid-column: 7 / span 6; 6359 grid-row: 1; 6360 } 6361 6362 .footer-ig88__group--nav { 6363 margin-top: 2rem; 6364 grid-column: 1 / -1; 6365 grid-row: 2; 6366 grid-template-columns: 1fr 1fr; 6367 gap: 2rem; 6368 } 6369 6370 .footer-ig88__products-cols { 6371 grid-template-columns: 1fr; 6372 gap: 0; 6373 } 6374 6375 .footer-ig88__bottom-row { 6376 grid-row-gap: 1.5rem; 6377 } 6378 6379 .footer-ig88__legal { 6380 /* align-items: center; */ 6381 } 6382 6383 .footer-ig88__legal-links { 6384 grid-column-gap: 1.5rem; 6385 grid-row-gap: 0rem; 6386 justify-content: start; 6387 flex-flow: wrap; 6388 } 6389 } 6390</style> </body></html><!-- This script is automatically inserted by Netlify for Real User Monitoring (RUM). -->
6391<script async id="netlify-rum-container" src="/.netlify/scripts/rum" data-netlify-cwv-token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzaXRlX2lkIjoiNmUyMjZlZGItNzA2Zi00M2UzLWE5NWYtOTU1ZDU5MGE1NTgwIiwiYWNjb3VudF9pZCI6IjY4Yjc3MGQ5MjRkOTdjZmU1MGI4ODJlNyIsImRlcGxveV9pZCI6IjZhYjRhM2NiYjM2ZTgyMDAwOGUyYWU5YyIsImlzcyI6Im5ldGxpZnkifQ.RcAFYYx001QEy39z72HvzKjvpRT0WoKY1UxhLUdAH90"></script>
vendor: 1 bytes, line 6391
6391
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.