1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <!-- Resource hints: warm up connections to third-party origins on the critical path --> 5 <link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin> 6 <link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin> 7 <link rel="preconnect" href="https://code.jquery.com" crossorigin> 8 <link rel="dns-prefetch" href="https://www.googletagmanager.com"> 9 <link rel="dns-prefetch" href="https://www.google.com"> 10 <link rel="dns-prefetch" href="https://www.gstatic.com"> 11<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 11-12
11 12<script async src="https://www.googletagmanager.com/gtag/js?id=
12G-YJPNEFJBKP
vendor: 12 bytes, line 12
12"></script>
13<script> 14
vendor: 127 bytes, lines 14-15
14window.dataLayer = window.dataLayer || []; function gtag() {dataLayer.push(arguments);} 15 gtag('js', new Date); gtag('config', '
15G-YJPNEFJBKP
vendor: 4 bytes, line 15
15');
16</script>
16 17 <meta charset="UTF-8"> 18 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 19 20<title>Guardian Gaze , WordPress Security by RedSecLabs | guardiangaze.com</title> 21<meta name="description" content="Guardian Gaze is the WordPress security platform from RedSecLabs. Code-level scanning, malware-pattern updates, expert escalation. Sign-up and pricing at guardiangaze.com."> 22<meta property="og:title" content="Guardian Gaze. WordPress Security for Agencies | RedSecLabs"> 23<meta property="og:description" content="Guardian Gaze is RedSecLabs' WordPress security product for agencies and site owners. Code-level scanning, malware-pattern updates, expert escalation. Available at guardiangaze.com."> 24<meta property="og:type" content="website"> 25<meta property="og:url" content="https://www.redseclabs.com/products/guardian-gaze"> 26<meta property="og:image" content="https://www.redseclabs.com/images/banner-bg.png"> 27<meta name="twitter:card" content="summary_large_image"> <link rel="canonical" href="https://www.redseclabs.com/products/guardian-gaze" /> <link rel="preload" href="/css/cookie-consent.css?v=20260602" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="/css/cookie-consent.css?v=20260602"></noscript>
28<script src="/js/cookie-consent.js?v=20260526g" defer></script>
28 <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'" 29 integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" 30 crossorigin="anonymous" 31 referrerpolicy="no-referrer" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" 32 integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" 33 crossorigin="anonymous" 34 referrerpolicy="no-referrer" /></noscript> 35 <link href="/css/bootstrap.min.css?v=20260526g" rel="stylesheet" /> 36 <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'" 37 integrity="sha512-17EgCFERpgZKcm0j0fEq1YCJuyAWdz9KUtv1EjVuaOz8pDnh/0nZxmU6BBXwaaxqoi9PQXnRWqlcDB027hgv9A==" 38 crossorigin="anonymous" 39 referrerpolicy="no-referrer" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick-theme.min.css" 40 integrity="sha512-17EgCFERpgZKcm0j0fEq1YCJuyAWdz9KUtv1EjVuaOz8pDnh/0nZxmU6BBXwaaxqoi9PQXnRWqlcDB027hgv9A==" 41 crossorigin="anonymous" 42 referrerpolicy="no-referrer" /></noscript> 43 <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'" 44 integrity="sha512-yHknP1/AwR+yx26cB1y0cjvQUMvEa2PFzt1c9LlS4pRQ5NOTZFWbhBig+X9G9eYW/8m0/4OXNx8pxJ6z57x0dw==" 45 crossorigin="anonymous" 46 referrerpolicy="no-referrer" /><noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.css" 47 integrity="sha512-yHknP1/AwR+yx26cB1y0cjvQUMvEa2PFzt1c9LlS4pRQ5NOTZFWbhBig+X9G9eYW/8m0/4OXNx8pxJ6z57x0dw==" 48 crossorigin="anonymous" 49 referrerpolicy="no-referrer" /></noscript> 50 <link href="/css/style.css?v=20260821a" rel="stylesheet" /> 51<link href="/css/custom.css?v=20260602" rel="stylesheet" /> <link href="/css/improvements.css?v=20260827a" rel="stylesheet" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css" /> <link rel="icon" type="image/png" href="/images/favicon.png"> 52 <link rel="preload" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css" as="style" onload="this.onload=null;this.rel='stylesheet'"><noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css"></noscript> 53 <!-- Include Google CAPTCHA API script --> 54
54<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
54 55
55<script src="https://code.jquery.com/jquery-3.6.0.min.js" defer></script>
55 <style> 56 /* Add inside or below your existing 'header {. }' SCSS */ 57#header { 58 transition: transform 320ms cubic-bezier(.2.8.2,1), box-shadow 220ms ease, height 220ms ease, background-color 220ms ease; will-change: transform; 59 -webkit-backface-visibility: hidden; 60 /* height: 100px !important; */ /* When hidden (scrolling down) */ 61 &.is-hidden { 62 transform: translateY(-120%); pointer-events: none; 63 } /* When user scrolled down a bit, compact look */ 64 &.is-scrolled { 65 background-color: rgba(250,250,250,0.98); /* tune to match your design */ 66 box-shadow: 0 8px 20px rgba(16,24,40,0.08); 67 /* height: 72px; reduces header height, tune as needed */ /* shrink logo a little */ 68 .navbar-brand img { 69 transform: scale(0.90); transition: transform 220ms ease; 70 } /* reduce vertical padding of nav links for compactness */ 71 nav.navbar.nav-link { 72 padding: 6px 12px; transition: padding 220ms ease, color 160ms ease; 73 } 74 } /* optional: ensure transitions feel smooth on show/hide */ 75 &.is-hidden, 76 &.is-scrolled, 77 & { 78 /* ensure the nav-toggler icon doesn't jump */ 79 .navbar-toggler { transition: transform 220ms ease; } 80 } /* Always sticky on mobile (max-width: 768px) */ 81@media (max-width: 767px) { 82 #header { 83 position: sticky !important; top: 0; transform: none !important; height: 72px !important; /* adjust if you want smaller */ 84 background-color: #fff !important; /* optional */ 85 box-shadow: 0 4px 12px rgba(0,0,0,0.08); /* optional */ 86 } #header.is-hidden { 87 transform: none !important; /* prevent hiding */ 88 } #header.is-scrolled { 89 background-color: #fff !important; height: 72px !important; 90 } 91} 92 93} /* Why RedSecLabs Section - Service Badges */ 94 .swift-reasons-section { 95 background: linear-gradient(180deg, #f7f8fb 0%, #ffffff 100%); position: relative; overflow: hidden; 96 } 97 .swift-reasons-section::before { 98 content: ''; position: absolute; top: -150px; right: -150px; width: 500px; height: 500px; background: radial-gradient(circle, rgba(197, 18, 48, 0.06) 0%, transparent 70%); pointer-events: none; z-index: 0; 99 } 100 .swift-reasons-container { 101 position: relative; z-index: 1; 102 } 103 .swift-reasons-grid { 104 display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 40px; 105 } 106 @media (max-width: 767px) { 107 .swift-reasons-grid { grid-template-columns: 1fr; } 108 } 109 .swift-reason-card { 110 background: #ffffff; border: 1px solid rgba(23, 20, 40, 0.08); border-radius: 14px; padding: 22px 24px; display: flex; align-items: center; gap: 18px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; 111 } 112 .swift-reason-card::after { 113 content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, #C51230, #8B0000); transform: scaleY(0); transform-origin: top; transition: transform 0.35s ease; 114 } 115 .swift-reason-card:hover { 116 transform: translateX(6px); box-shadow: 0 12px 32px rgba(197, 18, 48, 0.1); border-color: rgba(197, 18, 48, 0.22); 117 } 118 .swift-reason-card:hover::after { 119 transform: scaleY(1); 120 } 121 .swift-reason-badge { 122 flex-shrink: 0; width: 52px; height: 52px; border-radius: 12px; background: linear-gradient(135deg, #C51230 0%, #8B0000 100%); display: flex; align-items: center; justify-content: center; color: #ffffff; font-size: 22px; box-shadow: 0 6px 16px rgba(197, 18, 48, 0.25); transition: all 0.3s ease; 123 } 124 .swift-reason-card:hover.swift-reason-badge { 125 transform: rotate(-6deg) scale(1.05); 126 } 127 .swift-reason-content { 128 flex: 1; min-width: 0; 129 } 130 .swift-reason-title { 131 font-size: 16px; font-weight: 700; color: #171428; margin: 0 0 4px; line-height: 1.3; 132 } 133 .swift-reason-subtitle { 134 font-size: 13px; color: rgba(23, 20, 40, 0.6); margin: 0; line-height: 1.4; 135 } /* Featured (top) card spanning full width */ 136 .swift-reason-card-featured { 137 grid-column: span 2; background: linear-gradient(135deg, #171428 0%, #2d2847 100%); border: 1px solid rgba(197, 18, 48, 0.3); padding: 28px 32px; 138 } 139 @media (max-width: 767px) { 140 .swift-reason-card-featured { grid-column: span 1; } 141 } 142 .swift-reason-card-featured::after { 143 background: linear-gradient(180deg, #ff6b7a, #C51230); transform: scaleY(1); 144 } 145 .swift-reason-card-featured.swift-reason-title { 146 color: #ffffff; font-size: 18px; 147 } 148 .swift-reason-card-featured.swift-reason-subtitle { 149 color: rgba(255, 255, 255, 0.65); 150 } 151 .swift-reason-card-featured.swift-reason-badge { 152 background: rgba(255, 255, 255, 0.12); border: 1px solid rgba(255, 255, 255, 0.2); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3); 153 } 154 .swift-reason-card-featured:hover { 155 transform: translateX(0) translateY(-4px); box-shadow: 0 20px 48px rgba(0, 0, 0, 0.25); 156 } 157 /* Who Needs Section - Icon Tiles */ 158 .swift-who-section { 159 background: linear-gradient(180deg, #ffffff 0%, #f7f8fb 100%); 160 } 161 .swift-who-grid { 162 display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 40px; 163 } 164 @media (max-width: 991px) { 165 .swift-who-grid { grid-template-columns: repeat(2, 1fr); } 166 } 167 @media (max-width: 575px) { 168 .swift-who-grid { grid-template-columns: 1fr; } 169 } 170 .swift-who-tile { 171 display: flex; flex-direction: column; align-items: center; background: #ffffff; border: 1px solid rgba(23, 20, 40, 0.08); border-radius: 14px; padding: 28px 20px; text-align: center; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; 172 } 173 .swift-who-tile::before { 174 content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, #C51230, #8B0000); transform: scaleX(0); transform-origin: left; transition: transform 0.35s ease; 175 } 176 .swift-who-tile:hover { 177 transform: translateY(-6px); box-shadow: 0 16px 40px rgba(197, 18, 48, 0.12); border-color: rgba(197, 18, 48, 0.25); 178 } 179 .swift-who-tile:hover::before { transform: scaleX(1); } 180 .swift-who-icon { 181 width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 14px; background: linear-gradient(135deg, rgba(197, 18, 48, 0.1), rgba(139, 0, 0, 0.05)); display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; 182 } 183 .swift-who-tile:hover.swift-who-icon { 184 background: linear-gradient(135deg, #C51230, #8B0000); transform: scale(1.08); 185 } 186 .swift-who-icon i { 187 font-size: 28px; color: #C51230; transition: color 0.3s ease; 188 } 189 .swift-who-tile:hover.swift-who-icon i { 190 color: #ffffff; 191 } 192 .swift-who-title { 193 font-size: 15px; font-weight: 700; color: #171428; line-height: 1.4; margin: 0; 194 } 195 .swift-who-footer { 196 max-width: 900px; margin: 30px auto 0; padding: 20px 30px; background: rgba(197, 18, 48, 0.04); border-left: 3px solid #C51230; border-radius: 0 10px 10px 0; text-align: left; 197 } 198 .swift-who-footer p { 199 margin: 0; color: rgba(23, 20, 40, 0.8); font-size: 15px; line-height: 1.6; 200 } 201 </style> <style> 202/* Tier packages section */ 203.rsl-tier-section { 204 padding: 70px 0; background: #fafbfc; 205} 206.rsl-tier-grid { 207 display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; max-width: 1100px; margin: 0 auto; 208} 209.rsl-tier-card { 210 background: #fff; border: 1px solid #eaecef; border-radius: 12px; padding: 32px 28px 28px; position: relative; display: flex; flex-direction: column; transition: border-color 0.2s ease, transform 0.2s ease; 211} 212.rsl-tier-card:hover { 213 border-color: rgba(197,18,48,0.25); transform: translateY(-2px); 214} 215.rsl-tier-featured { 216 border-color: #C51230; border-width: 1.5px; 217} 218.rsl-tier-badge { 219 position: absolute; top: -11px; left: 50%; transform: translateX(-50%); background: #C51230; color: #fff; font-size: 11px; font-weight: 600; letter-spacing: 0.05em; padding: 4px 14px; border-radius: 12px; 220} 221.rsl-tier-name { 222 font-size: 20px; font-weight: 600; color: #171428; margin: 0 0 6px; letter-spacing: -0.01em; 223} 224.rsl-tier-tagline { 225 font-size: 13.5px; color: #666; line-height: 1.5; margin: 0 0 20px; padding-bottom: 18px; border-bottom: 1px solid #eee; 226} 227.rsl-tier-features { 228 list-style: none; padding: 0; margin: 0; 229} 230.rsl-tier-features li { 231 display: flex; align-items: flex-start; gap: 10px; padding: 7px 0; font-size: 13.5px; color: #2c2c2c; line-height: 1.5; 232} 233.rsl-tier-features li i { 234 color: #C51230; font-size: 16px; flex-shrink: 0; margin-top: 2px; 235} 236.rsl-tier-footnote { 237 text-align: center; font-size: 13px; color: #777; margin: 28px auto 0; max-width: 720px; font-style: italic; 238} 239@media (max-width: 991px) { 240 .rsl-tier-grid { grid-template-columns: 1fr; } 241} 242 243/* "Where to next", related links section before FAQ */ 244.rsl-related-section { 245 padding: 64px 0; background: linear-gradient(180deg, #fff 0%, #f5f7fa 100%); 246} 247 248/* Products dropdown, featured product card style */ 249.rsl-product-card-dropdown { 250 display: none; position: absolute; top: calc(100% + 4px); left: 50%; transform: translateX(-50%); background: #fff; border: 1px solid rgba(0,0,0,0.08); border-radius: 12px; box-shadow: 0 12px 32px rgba(0,0,0,0.14); width: 340px; z-index: 1000; overflow: hidden; padding: 0; 251} 252.rsl-nav-products:hover.rsl-product-card-dropdown { 253 display: block; 254} 255.rsl-product-card { 256 padding: 20px 22px 18px; position: relative; 257} 258.rsl-product-card::before { 259 content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, #C51230, #8B0000); 260} 261.rsl-product-card-eyebrow { 262 font-size: 11px; font-weight: 600; color: #C51230; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 8px; 263} 264.rsl-product-card-title { 265 font-size: 18px; font-weight: 700; color: #171428; letter-spacing: -0.01em; margin-bottom: 8px; 266} 267.rsl-product-card-desc { 268 font-size: 13px; color: #666; line-height: 1.5; margin-bottom: 16px; 269} 270.rsl-product-card-actions { 271 display: flex; flex-direction: column; gap: 6px; 272} 273.rsl-product-card-primary { 274 display: block; padding: 9px 14px; background: #C51230; color: #fff !important; text-decoration: none !important; border-radius: 6px; font-size: 13.5px; font-weight: 500; text-align: center; transition: background 0.18s ease; 275} 276.rsl-product-card-primary:hover { 277 background: #d4143a; 278} 279.rsl-product-card-external {
280 display: block; padding: 8px 14px; background: transparent; color: #555 !important; text-decoration: none !important; border: 1px solid #e5e7eb; border-radius: 6px; font-size: 12.5px; font-weight: 500; text-align: center; transition: all 0.18s ease; 281} 282.rsl-product-card-external:hover { 283 background: #fafafa; color: #171428 !important; border-color: #C51230; 284} 285@media (max-width: 992px) { 286 .rsl-product-card-dropdown { 287 position: static; transform: none; box-shadow: none; border: none; border-left: 3px solid #C51230; border-radius: 0; width: auto; display: block; margin: 6px 0 6px 12px; 288 } 289 .rsl-product-card { padding: 14px 16px; } 290} 291 292/* ===== Industries dropdown styling ===== */ 293.rsl-dropdown-wide { 294 min-width: 240px !important; padding: 8px 0 !important; 295} 296.rsl-dropdown-wide li a { 297 display: block !important; padding: 9px 20px !important; font-size: 13.5px !important; color: #1a1a2e !important; font-weight: 500; position: relative; border-left: 2px solid transparent; 298} 299.rsl-dropdown-wide li a:hover { 300 background: rgba(197, 18, 48, 0.05) !important; color: #C51230 !important; border-left-color: #C51230; padding-left: 22px !important; 301} 302@media (max-width: 992px) { 303 .rsl-dropdown-wide { 304 min-width: auto !important; 305 } 306} 307 308.rsl-related-grid { 309 display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; max-width: 1080px; margin: 0 auto; 310} 311.rsl-related-card { 312 display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; background: #fff; border: 1px solid #eaecef; border-radius: 10px; text-decoration: none !important; color: #171428 !important; transition: all.18s ease; 313} 314.rsl-related-card:hover { 315 border-color: rgba(197,18,48,0.4); box-shadow: 0 4px 18px rgba(197,18,48,0.10); transform: translateX(2px); color: #C51230 !important; 316} 317.rsl-related-title { 318 margin: 0 0 4px; font-size: 15px; font-weight: 600; line-height: 1.3; color: inherit; 319} 320.rsl-related-sub { 321 margin: 0; font-size: 13px; color: #666; line-height: 1.4; 322} 323.rsl-related-card:hover.rsl-related-sub { color: #888; } 324.rsl-related-arrow { 325 font-size: 18px; color: #C51230; flex-shrink: 0; transition: transform.18s ease; 326} 327.rsl-related-card:hover.rsl-related-arrow { transform: translateX(3px); } 328 329/* Process step title link styling (used on industry package cards) */ 330.process-step-link { 331 color: inherit !important; text-decoration: none !important; transition: color.15s ease; 332} 333.process-step-link:hover { 334 color: #C51230 !important; 335} 336.process-step-link i { 337 opacity: 0.5; transition: opacity.15s ease; 338} 339.process-step-link:hover i { 340 opacity: 1; 341} 342 343/* "Package includes" eyebrow above the methodology section on industry pages */ 344.package-eyebrow { 345 font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #C51230; margin-bottom: 10px; text-align: center; 346} 347 348/* Industry Package card (replaces form on industry hero pages) */ 349.industry-package-col { 350 display: flex; align-items: center; 351} 352.industry-package-card { 353 background: rgba(255, 255, 255, 0.97); border-radius: 18px; padding: 32px 32px 28px; width: 100%; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18); border: 1px solid rgba(197, 18, 48, 0.15); 354} 355.ipkg-eyebrow { 356 font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #C51230; margin-bottom: 8px; 357} 358.ipkg-title { 359 font-family: 'Switzer', sans-serif; font-size: 24px; font-weight: 700; color: #171428; line-height: 1.2; margin-bottom: 12px; letter-spacing: -0.01em; 360} 361.ipkg-tagline { 362 font-size: 14.5px; color: #555; line-height: 1.55; margin: 0 0 20px; 363} 364.ipkg-bullets { 365 list-style: none; padding: 0; margin: 0 0 24px; 366} 367.ipkg-bullets li { 368 display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; font-size: 14.5px; color: #2c2c2c; font-weight: 500; line-height: 1.4; border-bottom: 1px dashed rgba(197, 18, 48, 0.12); 369} 370.ipkg-bullets li:last-child { 371 border-bottom: none; 372} 373.ipkg-bullets li i { 374 color: #C51230; font-size: 18px; font-weight: 700; flex-shrink: 0;
374 margin-top: 1px; 375} 376.ipkg-cta { 377 display: block; background: linear-gradient(135deg, #C51230, #8B0000); color: #fff !important; text-align: center; font-weight: 600; font-size: 15px; padding: 14px 24px; border-radius: 10px; text-decoration: none; transition: all 0.18s ease; box-shadow: 0 4px 16px rgba(197, 18, 48, 0.25); 378} 379.ipkg-cta:hover { 380 background: linear-gradient(135deg, #d41538, #a40000); color: #fff; transform: translateY(-1px); box-shadow: 0 6px 20px rgba(197, 18, 48, 0.35); 381} 382.ipkg-cta i { 383 margin-right: 6px; 384} 385.ipkg-secondary { 386 display: block; text-align: center; font-size: 13.5px; color: #555 !important; text-decoration: none; margin-top: 12px; padding: 6px; 387} 388.ipkg-secondary:hover { 389 color: #C51230 !important; text-decoration: underline; 390} 391@media (max-width: 768px) { 392 .industry-package-card { padding: 24px 22px 20px; } 393 .ipkg-title { font-size: 20px; } 394} 395 396/* Hero positioning: lead paragraph stands out as the value prop */ 397.hero-lead { 398 color: #fff; font-size: 19px; line-height: 1.55; font-weight: 500; margin: 16px 0 18px; letter-spacing: -0.01em; max-width: 96%; 399} 400.hero-supporting { 401 color: rgba(255, 255, 255, 0.82) !important; font-size: 15.5px !important; line-height: 1.65 !important; font-weight: 400 !important; text-align: left !important; 402} 403@media (max-width: 768px) { 404 .hero-lead { font-size: 16px; margin: 12px 0 14px; } 405 .hero-supporting { font-size: 14px !important; } 406} 407 408/* Canonical service-page additions (Stats strip, Industries, Deliverables, CTA, Reasons) */ 409.rsl-stats-section { padding: 60px 0 30px; background: #fff; } 410.rsl-stat-card { 411 padding: 24px 16px; background: linear-gradient(135deg, #f8f8fc 0%, #ffffff 100%); border: 1px solid rgba(23, 20, 40, 0.08); border-radius: 12px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); height: 100%; 412} 413.rsl-stat-card:hover { 414 transform: translateY(-4px); box-shadow: 0 12px 32px rgba(197,18,48,0.12); border-color: rgba(197,18,48,0.2); 415} 416.rsl-stat-number { 417 font-size: 36px; font-weight: 800; color: #C51230; line-height: 1; margin-bottom: 8px; font-family: 'Switzer', sans-serif; 418} 419.rsl-stat-label { 420 font-size: 14px; color: #555; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; 421} 422 423/* Deliverables list */ 424.rsl-deliverables-list { 425 list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 24px; margin: 0; 426} 427.rsl-deliverables-list li { 428 background: #f8f8fc; border-left: 4px solid #C51230; padding: 14px 18px; border-radius: 0 8px 8px 0; font-size: 14.5px; color: #333; line-height: 1.5; 429} 430@media (max-width: 767px) { 431 .rsl-deliverables-list { grid-template-columns: 1fr; } 432} 433 434/* Industries strip */ 435.rsl-industries-section { padding: 60px 0; } 436.rsl-industry-chip { 437 display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 22px 16px; background: #fff; border: 1px solid rgba(23, 20, 40, 0.08); border-radius: 12px; text-align: center; height: 100%; transition: all 0.25s; 438} 439.rsl-industry-chip:hover { 440 border-color: #C51230; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(197,18,48,0.1); 441} 442.rsl-industry-chip i { font-size: 28px; color: #C51230; margin-bottom: 10px; } 443.rsl-industry-chip span { font-size: 13.5px; font-weight: 600; color: #1a1a2e; } 444 445/* Enhanced CTA */ 446.enhanced-cta-section { 447 background: linear-gradient(135deg, #0f0d1c 0%, #1e1535 100%); color: #fff; padding: 80px 0; text-align: center; 448} 449.enhanced-cta-section .cta-heading { 450 font-size: 36px; font-weight: 800; margin-bottom: 12px; color: #fff; 451} 452.enhanced-cta-section .cta-sub { 453 font-size: 17px; color: rgba(255,255,255,0.7); margin-bottom: 32px; max-width: 640px; margin-left: auto; margin-right: auto; 454} 455.enhanced-cta-section .cta-buttons .btn-primary { 456 background: #C51230; border-color: #C51230; padding: 14px 32px; font-weight: 700; border-radius: 50px; 457} 458.enhanced-cta-section .cta-buttons .btn-outline-light { 459 padding: 14px 32px; font-weight: 700; border-radius: 50px; border-width: 2px; 460} 461 462/* Why RedSecLabs section - featured paragraph + uniform badge grid */ 463.swift-reasons-section { padding: 64px 0; background: linear-gradient(180deg, #fafbfc 0%, #f5f7fa 100%); } 464.swift-reasons-container { max-width: 1140px; } 465 466.swift-reason-featured { 467 background: #fff; border: 1px solid rgba(197,18,48,0.15); border-radius: 16px; padding: 32px 40px; margin: 0 auto 32px; max-width: 880px; text-align: center; font-size: 16.5px; color: #2c2c2c; line-height: 1.65; box-shadow: 0 2px 12px rgba(197,18,48,0.04); 468} 469.swift-reason-featured p { margin: 0; } 470 471.swift-reasons-grid { 472 display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1080px; margin: 0 auto; 473} 474@media (max-width: 900px) {.swift-reasons-grid { grid-template-columns: repeat(2, 1fr); } } 475@media (max-width: 560px) {.swift-reasons-grid { grid-template-columns: 1fr; } } 476 477.swift-reason-card { 478 display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid #eaecef; border-radius: 12px; padding: 18px 20px; transition: all.18s ease; height: 100%; 479} 480.swift-reason-card:hover { 481 border-color: rgba(197,18,48,0.3); box-shadow: 0 4px 16px rgba(197,18,48,0.08); transform: translateY(-2px); 482} 483.swift-reason-icon { 484 flex-shrink: 0; width: 44px; height: 44px; border-radius: 10px; background: linear-gradient(135deg, #C51230, #8B0000); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 20px; 485} 486.swift-reason-text { font-size: 14.5px; color: #2c2c2c; font-weight: 500; line-height: 1.45; } 487</style> 488<!-- rsl-schema-jsonld -->
489<script type="application/ld+json"> 490{ 491 "@context": "https://schema.org", 492 "@type": "Organization", 493 "name": "RedSecLabs", 494 "alternateName": [ 495 "RedSecLabs Ltd", 496 "Red Sec Labs" 497 ], 498 "url": "https://www.redseclabs.com", 499 "logo": "https://www.redseclabs.com/images/logo.png", 500 "description": "UK-based cybersecurity consulting firm. CREST member and PCI SSC-listed QSA Company, with PCI ASV scans delivered in partnership with an SSC-approved vendor. Specialists in penetration testing, PCI DSS, ISO 27001, SOC 2, GDPR, DORA, SWIFT CSP, and incident response.", 501 "foundingDate": "2023", 502 "address": { 503 "@type": "PostalAddress", 504 "addressCountry": "GB", 505 "addressLocality": "London" 506 }, 507 "contactPoint": { 508 "@type": "ContactPoint", 509 "telephone": "+44-20-3996-1505", 510 "contactType": "customer service", 511 "email": "[email protected]", 512 "areaServed": [ 513 "GB", 514 "EU", 515 "US", 516 "AE", 517 "SA", 518 "QA", 519 "BH", 520 "KW", 521 "SG" 522 ], 523 "availableLanguage": [ 524 "English" 525 ] 526 }, 527 "sameAs": [ 528 "https://www.linkedin.com/company/redseclabs", 529 "https://twitter.com/redseclabs"], 530 "hasCredential": [ 531 { 532 "@type": "EducationalOccupationalCredential", 533 "name": "CREST Member" 534 }, 535 { 536 "@type": "EducationalOccupationalCredential", 537 "name": "QSA-Aligned PCI DSS Methodology" 538 }, 539 { 540 "@type": "EducationalOccupationalCredential", 541 "name": "PCI ASV partner network" 542 } 543 ] 544} 545</script>
vendor: 1 bytes, line 545
545
546<script type="application/ld+json"> 547{ 548 "@context": "https://schema.org", 549 "@type": "BreadcrumbList", 550 "itemListElement": [ 551 { 552 "@type": "ListItem", 553 "position": 1, 554 "name": "Home", 555 "item": "https://www.redseclabs.com/" 556 }, 557 { 558 "@type": "ListItem", 559 "position": 2, 560 "name": "Products", 561 "item": "https://www.redseclabs.com/products" 562 }, 563 { 564 "@type": "ListItem", 565 "position": 3, 566 "name": "Guardian Gaze. WordPress Security for Agencies", 567 "item": "https://www.redseclabs.com/products/guardian-gaze" 568 } 569 ] 570} 571</script>
571 572<style id="rsl-sticky-cta-css"> 573.rsl-sticky-cta { 574 position: fixed; 575 bottom: 0; 576 left: 0; 577 right: 0; 578 background: #fff; 579 border-top: 1px solid #eaecef; 580 box-shadow: 0 -4px 18px rgba(20,20,40,0.06); 581 padding: 10px 14px; 582 z-index: 9998; 583 transform: translateY(100%); 584 transition: transform 0.32s cubic-bezier(.2.8.2,1); 585 display: none; 586} 587.rsl-sticky-cta.is-visible { transform: translateY(0); } 588@media (max-width: 991px) { 589 .rsl-sticky-cta { display: block; } 590 body.has-sticky-cta { padding-bottom: 76px; } 591} 592.rsl-sticky-cta-inner { 593 display: grid; 594 grid-template-columns: 1fr 1fr auto; 595 gap: 8px; 596 align-items: center; 597} 598.rsl-sticky-cta a { 599 display: inline-flex; 600 align-items: center; 601 justify-content: center; 602 gap: 6px; 603 padding: 11px 12px; 604 border-radius: 8px; 605 font-size: 13px; 606 font-weight: 600; 607 text-decoration: none !important; 608 white-space: nowrap; 609 line-height: 1.2; 610} 611.rsl-sticky-cta-primary { 612 background: #C51230; 613 color: #fff !important; 614} 615.rsl-sticky-cta-primary:hover { background: #d4143a; color: #fff !important; } 616.rsl-sticky-cta-secondary { 617 background: #fafbfc; 618 color: #171428 !important; 619 border: 1px solid #eaecef; 620} 621.rsl-sticky-cta-secondary:hover { background: #fff; color: #171428 !important; } 622.rsl-sticky-cta-close { 623 background: transparent; 624 border: none; 625 color: #888; 626 font-size: 22px; 627 line-height: 1; 628 padding: 0 8px; 629 cursor: pointer; 630 font-weight: 300; 631} 632.rsl-sticky-cta-close:hover { color: #171428; } 633</style> 634<link rel="stylesheet" href="/css/modern.css?v=20260819b"> 635<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 635-636
635 636<script async src="https://www.googletagmanager.com/gtag/js?id=
636AW-18361393988
vendor: 13 bytes, lines 636-637
636"> 637</script>
638<script> 639
vendor: 134 bytes, lines 639-643
639window.dataLayer = window.dataLayer || []; 640 function gtag(){dataLayer.push(arguments);} 641 gtag('js', new Date()); 642 643 gtag('config', '
643AW-18361393988
vendor: 4 bytes, line 643
643');
644</script>
644 645</head> <body> 646 <header id="header"> 647<div class="nav-wrapper"> 648<div class="container"> 649<nav class="navbar navbar-light navbar-expand-lg"> 650<a class="navbar-brand" href="/"> 651<img alt="Logo" loading="lazy" src="/images/redseclabs-logo.svg"/> 652</a> 653<button aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" class="navbar-toggler" data-bs-target="#navbarSupportedContent" data-bs-toggle="collapse" type="button"> 654<span class="navbar-toggler-icon"></span> 655</button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> 656<ul class="navbar-nav mx-auto"> 657<li class="nav-item"> 658<a aria-current="page" class="nav-link active" href="/">Home</a> 659</li> <!-- Desktop Mega Menu --> 660<li class="nav-item d-none d-md-inline-block"> 661<a class="nav-link nav-service dropdown-toggle" href="/services">Services</a> 662<div class="mega-menu"> 663<div class="mega-menu-container"> 664<div class="mega-menu-sidebar"> 665<ul> 666<li class="sidebar-item"> 667<a class="sidebar-link active" data-category="network" href="#"> 668<i class="bi bi-shield-check"></i> Penetration Testing 669 </a> 670</li> 671<li class="sidebar-item"> 672<a class="sidebar-link" data-category="adversary" href="#"> 673<i class="bi bi-bug"></i> Red Team & Adversary Simulation 674 </a> 675</li> 676<li class="sidebar-item"> 677<a class="sidebar-link" data-category="compliance" href="#"> 678<i class="bi bi-file-check"></i> Compliance & Audit 679 </a> 680</li> 681<li class="sidebar-item"> 682<a class="sidebar-link" data-category="compliance2" href="#"> 683<i class="bi bi-shield-lock"></i> Data Protection & Resilience 684 </a> 685</li> 686<li class="sidebar-item"> 687<a class="sidebar-link" data-category="forensics" href="#"> 688<i class="bi bi-file-medical"></i> Incident Response & Forensics 689 </a> 690</li> 691 692<li class="sidebar-item"> 693<a class="sidebar-link" data-category="reviews" href="#"> 694<i class="bi bi-search"></i> Security Reviews & Code Audit 695 </a> 696</li> 697<li class="sidebar-item"> 698<a class="sidebar-link" data-category="assessments" href="#"> 699<i class="bi bi-clipboard-check"></i> Advisory & vCISO 700 </a> 701</li> 702<li class="sidebar-item"> 703<a class="sidebar-link" data-category="web3" href="#"> 704<i class="bi bi-currency-bitcoin"></i> Blockchain & Web3 Security 705 </a> 706</li> 707 708</ul> 709</div> <div class="mega-menu-content"> <div class="category-content" id="content-assessments"> 710<div class="services-simple-grid"> 711<a class="service-simple-card" href="/services/cspa-maturity-benchmarking-services"> 712<div class="service-simple-title">C.S.P.A & Maturity Benchmarking</div> 713<p class="service-simple-description">Gap analysis, implementation, audits & more from dedicated ISO consultants</p> 714</a> <a class="service-simple-card" href="/services/threat-risk-assessment-services"> 715<div class="service-simple-title">Threat Risk Assessment</div> 716<p class="service-simple-description">Structured threat and risk assessment to identify potential security vulnerabilities</p> 717</a> <a class="service-simple-card" href="/services/security-gap-assessment-services"> 718<div class="service-simple-title">Security Gap Assessment</div> 719<p class="service-simple-description">Identify gaps between your current controls and target security standards</p> 720</a> <a class="service-simple-card" href="/services/vulnerability-assessment-services"> 721<div class="service-simple-title">Vulnerability Assessment</div> 722<p class="service-simple-description">Systematic identification and analysis of security vulnerabilities in your systems</p> 723</a> <a class="service-simple-card" href="/services/privacy-risk-impact-assessment-services"> 724<div class="service-simple-title">Privacy Risk/Impact Assessment</div> 725<p class="service-simple-description">DPIA and privacy risk assessments for GDPR and data-protection obligations</p> 726</a> <a class="service-simple-card" href="/services/cybersecurity-architecture-assessment-services"> 727<div class="service-simple-title">Cybersecurity Architecture Assessment</div> 728<p class="service-simple-description">Independent evaluation of your cybersecurity architecture and design</p> 729</a> 730</div> 731</div> <div class="category-content" id="content-reviews"> 732<div class="services-simple-grid"> 733<a class="service-simple-card" href="/services/security-configuration-review-services"> 734<div class="service-simple-title">Security Configuration Review</div> 735<p class="service-simple-description">Detailed review of your security configurations and settings</p> 736</a> <a class="service-simple-card" href="/services/secure-code-review-services"> 737<div class="service-simple-title">
737Secure Code Review</div> 738<p class="service-simple-description">In-depth analysis of your application source code for security vulnerabilities</p> 739</a> <a class="service-simple-card" href="/services/application-threat-modelling-services"> 740<div class="service-simple-title">Application Threat Modelling</div> 741<p class="service-simple-description">Systematic approach to identify and mitigate application security threats</p> 742</a> 743<a class="service-simple-card" href="/services/amazon-sp-api-audit-services"> 744<div class="service-simple-title">Amazon SP-API Audit Services</div> 745<p class="service-simple-description">Independent audit services for Amazon Selling Partner API compliance</p> 746</a> 747</div> 748</div> <div class="category-content active" id="content-network"> 749<div class="services-simple-grid"> 750<a class="service-simple-card" href="/services/pentesting-services/"> 751<div class="service-simple-title">Penetration Testing Services</div> 752<p class="service-simple-description">Manual, CREST-accredited testing across web, API, mobile, network and cloud</p> 753</a> <a class="service-simple-card" href="/services/pentesting-services/web-app-pentesting-services"> 754<div class="service-simple-title">Web Application Penetration Testing</div> 755<p class="service-simple-description">Hands-on security testing of web applications to identify vulnerabilities</p> 756</a> <a class="service-simple-card" href="/services/pentesting-services/mobile-app-pentesting-services"> 757<div class="service-simple-title">Mobile Application Testing</div> 758<p class="service-simple-description">Security assessment of mobile applications across iOS and Android platforms</p> 759</a> <a class="service-simple-card" href="/services/pentesting-services/api-pentesting-services"> 760<div class="service-simple-title">API Penetration Testing</div> 761<p class="service-simple-description">Advanced security testing for APIs to safeguard your applications from exploitation.</p> 762</a> <a class="service-simple-card" href="/services/pentesting-services/network-pentesting-services"> 763<div class="service-simple-title">Internal & External Network Penetration Testing</div> 764<p class="service-simple-description">Internal and external network security assessment and penetration testing</p> 765</a> <a class="service-simple-card" href="/services/pentesting-services/gcp-pentesting-services"> 766<div class="service-simple-title">GCP Penetration Testing</div> 767<p class="service-simple-description">Security assessment of Google Cloud Platform services and configurations</p> 768</a> <a class="service-simple-card" href="/services/pentesting-services/aws-pentesting-services"> 769<div class="service-simple-title">AWS Penetration Testing</div> 770<p class="service-simple-description">Hands-on security testing of Amazon Web Services cloud infrastructure</p> 771</a> <a class="service-simple-card" href="/services/pentesting-services/crest-penetration-testing-services"> 772<div class="service-simple-title">CREST Penetration Testing</div> 773<p class="service-simple-description">Independent, CREST-accredited penetration testing to validate your defences under real-world attack conditions.</p> 774</a> 775<a class="service-simple-card" href="/services/pentesting-services/ai-llm-penetration-testing-services"> 776<div class="service-simple-title">AI & LLM Penetration Testing</div> 777<p class="service-simple-description">Security testing for AI systems: prompt injection, model abuse and data-leak paths.</p> 778</a> 779<a class="service-simple-card" href="/services/pentesting-services/penetration-testing-as-a-service-ptaas"> 780<div class="service-simple-title">Penetration Testing as a Service</div> 781<p class="service-simple-description">Continuous PTaaS with retesting included, built for teams that ship weekly.</p> 782</a> 783<a class="service-simple-card" href="/services/pentesting-services/penetration-testing-services-in-uk"> 784<div class="service-simple-title">UK Penetration Testing</div> 785<p class="service-simple-description">CREST-accredited testing delivered UK-wide, on-site or remote-first.</p> 786</a> 787<a class="service-simple-card" href="/services/pentesting-services/penetration-testing-services-in-us"> 788<div class="service-simple-title">US Penetration Testing</div> 789<p class="service-simple-description">Remote-first testing across US time zones with SOC 2-ready reporting.</p> 790</a> 791</div> 792</div> <div class="category-content" id="content-adversary"> 793<div class="services-simple-grid"> 794<a class="service-simple-card" href="/services/red-team-assessments-services"> 795<div class="service-simple-title">Red Team Assessments</div> 796<p class="service-simple-description">Full-scope adversary simulation to test your overall security posture</p> 797</a> 798<a class="service-simple-card" href="/services/adversary-simulation-services"> 799<div class="service-simple-title">Adversary Simulation</div> 800<p class="service-simple-description">Intelligence-led emulation of the threat actors targeting your sector.</p> 801</a> 802<a class="service-simple-card" href="/services/purple-team-assessment-services"> 803<div class="service-simple-title">Purple Team Assessment</div> 804<p class="service-simple-description">Improve detection in real time, red and blue in the same room.</p> 805</a> 806<a class="service-simple-card" href="/services/social-engineering-services"> 807<div class="service-simple-title">Social Engineering</div> 808<p class="service-simple-description">
808Phishing, pretexting and MFA-fatigue tested end to end, ethically.</p> 809</a> 810<a class="service-simple-card" href="/services/spear-phishing-simulation-services"> 811<div class="service-simple-title">Spear Phishing Simulation</div> 812<p class="service-simple-description">Realistic phishing campaigns to test employee security awareness</p> 813</a> 814</div> 815</div> <div class="category-content" id="content-forensics"> 816<div class="services-simple-grid"> 817<a class="service-simple-card" href="/services/computer-forensics-services"> 818<div class="service-simple-title">Computer Forensics</div> 819<p class="service-simple-description">Expert digital forensics investigation and evidence collection</p> 820</a> <a class="service-simple-card" href="/services/incident-response-services"> 821<div class="service-simple-title">Incident Response</div> 822<p class="service-simple-description">Rapid response to security incidents and breach containment</p> 823</a> <a class="service-simple-card" href="/services/security-breach-incident-response-services"> 824<div class="service-simple-title">Security Breach Response</div> 825<p class="service-simple-description">Rapid breach response and recovery services</p> 826</a> 827<!-- ir-retainer-card-injected --> 828<a class="service-simple-card" href="/services/incident-response-retainer"> 829<div class="service-simple-title">Incident Response Retainer</div> 830<p class="service-simple-description">Pre-arranged standby with contracted SLA, dedicated lead, quarterly tabletops</p> 831</a> 832</div> 833</div> <div class="category-content" id="content-compliance"> 834<div class="services-simple-grid"> 835<a class="service-simple-card" href="/services/cyber-essentials-certification-services"> 836<div class="service-simple-title">Cyber Essentials Certification</div> 837<p class="service-simple-description">The five core controls, IASME requirements, fees and timelines to pass first time</p> 838</a> 839 840<a class="service-simple-card" href="/services/pci-dss-compliance-services"> 841<div class="service-simple-title">PCI DSS</div> 842<p class="service-simple-description">Payment Card Industry Data Security Standard compliance assessment</p> 843</a> 844 845 846 847 848<a class="service-simple-card" href="/services/pci-asv-scanning-services"> 849<div class="service-simple-title">PCI ASV Scanning</div> 850<p class="service-simple-description">Quarterly external vulnerability scans by an Approved Scanning Vendor</p> 851</a> 852<a class="service-simple-card" href="/services/soc2-compliance-services"> 853<div class="service-simple-title">SOC 2 Compliance</div> 854<p class="service-simple-description">Independent SOC 2 readiness and compliance support to build client trust</p> 855</a> 856 857 858 859<a class="service-simple-card" href="/services/iso-27001-certification-services"> 860<div class="service-simple-title">ISO 27001 Certification</div> 861<p class="service-simple-description">Full ISMS implementation, gap analysis, internal audit, and certification body liaison</p> 862</a> 863<a class="service-simple-card" href="/services/iso-27001-internal-audit-services"> 864<div class="service-simple-title">ISO 27001 Internal Audit</div> 865<p class="service-simple-description">Independent annual internal audit programme, IRCA-qualified auditors only</p> 866</a> 867<a class="service-simple-card" href="/services/ny-23-nycrr-500-services"> 868<div class="service-simple-title">NY 23 NYCRR 500</div> 869<p class="service-simple-description">New York State cybersecurity regulation compliance services</p> 870</a> 871<a class="service-simple-card" href="/services/office-365-cis-security-services"> 872<div class="service-simple-title">Office 365 CIS Security</div> 873<p class="service-simple-description">Microsoft 365 security configuration review against CIS benchmarks</p> 874</a> 875</div> 876</div> <div class="category-content" id="content-compliance2"> 877<div class="services-simple-grid"> 878<a class="service-simple-card" href="/services/gdpr-data-protection-compliance-services"> 879<div class="service-simple-title">GDPR & Data Protection</div> 880<p class="service-simple-description">DPIAs, ROPA, breach response, and ICO investigation support</p> 881</a> 882<a class="service-simple-card" href="/services/dpo-services"> 883<div class="service-simple-title">DPO Services</div> 884<p class="service-simple-description">Expert data protection guidance to ensure compliance and safeguard privacy</p> 885</a> 886<a class="service-simple-card" href="/services/dpo-as-a-service"> 887<div class="service-simple-title">DPO as a Service</div> 888<p class="service-simple-description">Outsourced Article 37 Data Protection Officer on a fixed monthly retainer</p> 889</a> 890<a class="service-simple-card" href="/services/dora-compliance-services"> 891<div class="service-simple-title">DORA Compliance</div> 892<p class="service-simple-description">Digital Operational Resilience Act compliance for EU financial entities and ICT providers</p> 893</a> 894 895 896 897<a class="service-simple-card" href="/services/dora-tlpt-penetration-testing"> 898<div class="service-simple-title">DORA TLPT & Pentesting</div> 899<p class="service-simple-description">
899Threat-led penetration testing to support DORA operational resilience readiness</p> 900</a> 901<a class="service-simple-card" href="/services/swift-csp-assessment-services"> 902<div class="service-simple-title">SWIFT CSP Assessment</div> 903<p class="service-simple-description">SWIFT Customer Security Programme assessment to meet financial messaging security controls</p> 904</a> 905 906 907 908<a class="service-simple-card" href="/services/virtual-ciso-testing-services"> 909<div class="service-simple-title">Virtual CISO Services</div> 910<p class="service-simple-description">Strategic security leadership on demand, tailored to your organisation</p> 911</a> 912</div> 913</div> <div class="category-content" id="content-web3"> 914<div class="services-simple-grid"> 915<a class="service-simple-card" href="/services/smart-contract-security-services"> 916<div class="service-simple-title">Smart Contract Security</div> 917<p class="service-simple-description">Independent security auditing of smart contracts and DeFi protocols</p> 918</a> <a class="service-simple-card" href="/services/wallet-security-services"> 919<div class="service-simple-title">Wallet Security</div> 920<p class="service-simple-description">Security assessment of cryptocurrency wallets and key management</p> 921</a> <a class="service-simple-card" href="/services/decentralized-application-security-services"> 922<div class="service-simple-title">dApp Security</div> 923<p class="service-simple-description">Decentralized application security testing and vulnerability assessment</p> 924</a> <a class="service-simple-card" href="/services/non-fungible-token-security-services"> 925<div class="service-simple-title">NFT Security</div> 926<p class="service-simple-description">Non-fungible token platform and marketplace security auditing</p> 927</a> <a class="service-simple-card" href="/services/decentralized-finance-security-services"> 928<div class="service-simple-title">DeFi Security</div> 929<p class="service-simple-description">Decentralized finance protocol security assessment and testing</p> 930</a> <a class="service-simple-card" href="/services/security-engineering-services"> 931<div class="service-simple-title">Security Engineering</div> 932<p class="service-simple-description">Blockchain security architecture and implementation consulting</p> 933</a> 934</div> 935</div> 936</div> <div class="mega-menu-promo" id="promo-content"> 937</div> 938</div> 939</div> 940</li> 941<!-- Mobile Mega Menu --> 942<li class="nav-item d-block d-md-none"> 943<a class="nav-link nav-service dropdown-toggle">Services</a> 944<div class="mega-menu"> 945<div class="mega-menu-container"> 946<!-- Left Sidebar - Reordered and Renamed for Mobile --> 947<div class="mega-menu-sidebar"> 948<ul> 949<li class="sidebar-item"> 950<a class="sidebar-link active" data-category="network" href="#"> 951<i class="bi bi-shield-check"></i> Penetration Testing 952 </a> 953</li> 954<li class="sidebar-item"> 955<a class="sidebar-link" data-category="adversary" href="#"> 956<i class="bi bi-bug"></i> Red Team & Adversary Simulation 957 </a> 958</li> 959<li class="sidebar-item"> 960<a class="sidebar-link" data-category="compliance" href="#"> 961<i class="bi bi-file-check"></i> Compliance & Audit 962 </a> 963</li> 964<li class="sidebar-item"> 965<a class="sidebar-link" data-category="compliance2" href="#"> 966<i class="bi bi-shield-lock"></i> Data Protection & Resilience 967 </a> 968</li> 969<li class="sidebar-item"> 970<a class="sidebar-link" data-category="forensics" href="#"> 971<i class="bi bi-file-medical"></i> Incident Response & Forensics 972 </a> 973</li> 974 975<li class="sidebar-item"> 976<a class="sidebar-link" data-category="reviews" href="#"> 977<i class="bi bi-search"></i> Security Reviews & Code Audit 978 </a> 979</li> 980<li class="sidebar-item"> 981<a class="sidebar-link" data-category="assessments" href="#"> 982<i class="bi bi-clipboard-check"></i> Advisory & vCISO 983 </a> 984</li> 985<li class="sidebar-item"> 986<a class="sidebar-link" data-category="web3" href="#"> 987<i class="bi bi-currency-bitcoin"></i> Blockchain & Web3 Security 988 </a> 989</li> 990 991</ul> 992</div> <!-- Main Content - Content Blocks Updated for Mobile --> 993<div class="mega-menu-content"> <!-- Advisory & vCISO Content (Modified from original Security Assessments) --> 994<div class="category-content" id="content-assessments"> 995<div class="services-simple-grid"> 996<a class="service-simple-card" href="/services/cspa-maturity-benchmarking-services"> 997<div class="service-simple-title">C.S.P.A & Maturity Benchmarking</div> 998<p class="service-simple-description">
998Gap analysis, implementation, audits & more from dedicated ISO consultants</p> 999</a> <a class="service-simple-card" href="/services/threat-risk-assessment-services"> 1000<div class="service-simple-title">Threat Risk Assessment</div> 1001<p class="service-simple-description">Structured threat and risk assessment to identify potential security vulnerabilities</p> 1002</a> <a class="service-simple-card" href="/services/security-gap-assessment-services"> 1003<div class="service-simple-title">Security Gap Assessment</div> 1004<p class="service-simple-description">Identify gaps between your current controls and target security standards</p> 1005</a> <a class="service-simple-card" href="/services/vulnerability-assessment-services"> 1006<div class="service-simple-title">Vulnerability Assessment</div> 1007<p class="service-simple-description">Systematic identification and analysis of security vulnerabilities in your systems</p> 1008</a> <a class="service-simple-card" href="/services/privacy-risk-impact-assessment-services"> 1009<div class="service-simple-title">Privacy Risk/Impact Assessment</div> 1010<p class="service-simple-description">DPIA and privacy risk assessments for GDPR and data-protection obligations</p> 1011</a> <a class="service-simple-card" href="/services/cybersecurity-architecture-assessment-services"> 1012<div class="service-simple-title">Cybersecurity Architecture Assessment</div> 1013<p class="service-simple-description">Independent evaluation of your cybersecurity architecture and design</p> 1014</a> 1015</div> 1016</div> <!-- Security Reviews & Code Audit Content (UNCHANGED) --> 1017<div class="category-content" id="content-reviews"> 1018<div class="services-simple-grid"> 1019<a class="service-simple-card" href="/services/security-configuration-review-services"> 1020<div class="service-simple-title">Security Configuration Review</div> 1021<p class="service-simple-description">Detailed review of your security configurations and settings</p> 1022</a> <a class="service-simple-card" href="/services/secure-code-review-services"> 1023<div class="service-simple-title">Secure Code Review</div> 1024<p class="service-simple-description">In-depth analysis of your application source code for security vulnerabilities</p> 1025</a> <a class="service-simple-card" href="/services/application-threat-modelling-services"> 1026<div class="service-simple-title">Application Threat Modelling</div> 1027<p class="service-simple-description">Systematic approach to identify and mitigate application security threats</p> 1028</a> 1029<a class="service-simple-card" href="/services/amazon-sp-api-audit-services"> 1030<div class="service-simple-title">Amazon SP-API Audit Services</div> 1031<p class="service-simple-description">Independent audit services for Amazon Selling Partner API compliance</p> 1032</a> 1033 1034</div> 1035</div> <!-- Penetration Testing Content (UNCHANGED from End-to-End Cybersecurity Solutions) --> 1036<div class="category-content active" id="content-network"> 1037<div class="services-simple-grid"> 1038<a class="service-simple-card" href="/services/pentesting-services/"> 1039<div class="service-simple-title">Penetration Testing Services</div> 1040<p class="service-simple-description">Hands-on penetration testing to identify and validate exploitable vulnerabilities</p> 1041</a> <a class="service-simple-card" href="/services/pentesting-services/web-app-pentesting-services"> 1042<div class="service-simple-title">Web Application Penetration Testing</div> 1043<p class="service-simple-description">Hands-on security testing of web applications to identify vulnerabilities</p> 1044</a> <a class="service-simple-card" href="/services/pentesting-services/mobile-app-pentesting-services"> 1045<div class="service-simple-title">Mobile Application Testing</div> 1046<p class="service-simple-description">Security assessment of mobile applications across iOS and Android platforms</p> 1047</a> <a class="service-simple-card" href="/services/pentesting-services/api-pentesting-services"> 1048<div class="service-simple-title">API Penetration Testing</div> 1049<p class="service-simple-description">Advanced security testing for APIs to safeguard your applications from exploitation.</p> 1050</a> <a class="service-simple-card" href="/services/pentesting-services/network-pentesting-services"> 1051<div class="service-simple-title">Internal & External Network Penetration Testing</div> 1052<p class="service-simple-description">Internal and external network security assessment and penetration testing</p> 1053</a> <a class="service-simple-card" href="/services/pentesting-services/gcp-pentesting-services"> 1054<div class="service-simple-title">GCP Penetration Testing</div> 1055<p class="service-simple-description">Security assessment of Google Cloud Platform services and configurations</p> 1056</a> <a class="service-simple-card" href="/services/pentesting-services/aws-pentesting-services"> 1057<div class="service-simple-title">AWS Penetration Testing</div> 1058<p class="service-simple-description">Hands-on security testing of Amazon Web Services cloud infrastru
1058cture</p> 1059</a> <a class="service-simple-card" href="/services/pentesting-services/crest-penetration-testing-services"> 1060<div class="service-simple-title">CREST Penetration Testing</div> 1061<p class="service-simple-description">Independent, CREST-accredited penetration testing to validate your defences under real-world attack conditions</p> 1062</a> 1063<a class="service-simple-card" href="/services/pentesting-services/ai-llm-penetration-testing-services"> 1064<div class="service-simple-title">AI & LLM Penetration Testing</div> 1065<p class="service-simple-description">Security testing for AI systems: prompt injection, model abuse and data-leak paths.</p> 1066</a> 1067<a class="service-simple-card" href="/services/pentesting-services/penetration-testing-as-a-service-ptaas"> 1068<div class="service-simple-title">Penetration Testing as a Service</div> 1069<p class="service-simple-description">Continuous PTaaS with retesting included, built for teams that ship weekly.</p> 1070</a> 1071<a class="service-simple-card" href="/services/pentesting-services/penetration-testing-services-in-uk"> 1072<div class="service-simple-title">UK Penetration Testing</div> 1073<p class="service-simple-description">CREST-accredited testing delivered UK-wide, on-site or remote-first.</p> 1074</a> 1075<a class="service-simple-card" href="/services/pentesting-services/penetration-testing-services-in-us"> 1076<div class="service-simple-title">US Penetration Testing</div> 1077<p class="service-simple-description">Specialist US penetration testing and compliance assessments.</p> 1078</a> 1079</div> 1080</div> <!-- Adversary Simulation Content (UNCHANGED) --> 1081<div class="category-content" id="content-adversary"> 1082<div class="services-simple-grid"> 1083<a class="service-simple-card" href="/services/red-team-assessments-services"> 1084<div class="service-simple-title">Red Team Assessments</div> 1085<p class="service-simple-description">Full-scope adversary simulation to test your overall security posture</p> 1086</a> 1087<a class="service-simple-card" href="/services/adversary-simulation-services"> 1088<div class="service-simple-title">Adversary Simulation</div> 1089<p class="service-simple-description">Intelligence-led emulation of the threat actors targeting your sector.</p> 1090</a> 1091<a class="service-simple-card" href="/services/purple-team-assessment-services"> 1092<div class="service-simple-title">Purple Team Assessment</div> 1093<p class="service-simple-description">Improve detection in real time, red and blue in the same room.</p> 1094</a> 1095<a class="service-simple-card" href="/services/social-engineering-services"> 1096<div class="service-simple-title">Social Engineering</div> 1097<p class="service-simple-description">Phishing, pretexting and MFA-fatigue tested end to end, ethically.</p> 1098</a> 1099<a class="service-simple-card" href="/services/spear-phishing-simulation-services"> 1100<div class="service-simple-title">Spear Phishing Simulation</div> 1101<p class="service-simple-description">Realistic phishing campaigns to test employee security awareness</p> 1102</a> 1103</div> 1104</div> <!-- Incident Response & Forensics Content (UNCHANGED from original Forensics) --> 1105<div class="category-content" id="content-forensics"> 1106<div class="services-simple-grid"> 1107<a class="service-simple-card" href="/services/computer-forensics-services"> 1108<div class="service-simple-title">Computer Forensics</div> 1109<p class="service-simple-description">Expert digital forensics investigation and evidence collection</p> 1110</a> <a class="service-simple-card" href="/services/incident-response-services"> 1111<div class="service-simple-title">Incident Response</div> 1112<p class="service-simple-description">Rapid response to security incidents and breach containment</p> 1113</a> <a class="service-simple-card" href="/services/security-breach-incident-response-services"> 1114<div class="service-simple-title">Security Breach Response</div> 1115<p class="service-simple-description">Rapid breach response and recovery services</p> 1116</a> 1117<!-- ir-retainer-card-injected --> 1118<a class="service-simple-card" href="/services/incident-response-retainer"> 1119<div class="service-simple-title">Incident Response Retainer</div> 1120<p class="service-simple-description">Pre-arranged standby with contracted SLA, dedicated lead, quarterly tabletops</p> 1121</a> 1122</div> 1123</div> <!-- Managed Security Content (NEW CONTENT BLOCK, holding moved items) --> 1124 <!-- Compliance Services Content (Modified to include moved items) --> 1125<div class="category-content" id="content-compliance"> 1126<div class="services-simple-grid"> 1127<a class="service-simple-card" href="/services/cyber-essentials-certification-services"> 1128<div class="service-simple-title">Cyber Essentials Certification</div> 1129<p class="service-simple-description">The five core controls, IASME requirements, fees and timelines to pass first time</p> 1130</a> 1131
1132<a class="service-simple-card" href="/services/pci-dss-compliance-services"> 1133<div class="service-simple-title">PCI DSS</div> 1134<p class="service-simple-description">Payment Card Industry Data Security Standard compliance assessment</p> 1135</a> 1136 1137 1138 1139 1140<a class="service-simple-card" href="/services/pci-asv-scanning-services"> 1141<div class="service-simple-title">PCI ASV Scanning</div> 1142<p class="service-simple-description">Quarterly external vulnerability scans by an Approved Scanning Vendor</p> 1143</a> 1144<a class="service-simple-card" href="/services/soc2-compliance-services"> 1145<div class="service-simple-title">SOC 2 Compliance</div> 1146<p class="service-simple-description">Independent SOC 2 readiness and compliance support to build client trust</p> 1147</a> 1148 1149 1150 1151<a class="service-simple-card" href="/services/iso-27001-certification-services"> 1152<div class="service-simple-title">ISO 27001 Certification</div> 1153<p class="service-simple-description">Full ISMS implementation, gap analysis, internal audit, and certification body liaison</p> 1154</a> 1155<a class="service-simple-card" href="/services/iso-27001-internal-audit-services"> 1156<div class="service-simple-title">ISO 27001 Internal Audit</div> 1157<p class="service-simple-description">Independent annual internal audit programme, IRCA-qualified auditors only</p> 1158</a> 1159<a class="service-simple-card" href="/services/ny-23-nycrr-500-services"> 1160<div class="service-simple-title">NY 23 NYCRR 500</div> 1161<p class="service-simple-description">New York State cybersecurity regulation compliance services</p> 1162</a> 1163<a class="service-simple-card" href="/services/office-365-cis-security-services"> 1164<div class="service-simple-title">Office 365 CIS Security</div> 1165<p class="service-simple-description">Microsoft 365 security configuration review against CIS benchmarks</p> 1166</a> 1167</div> 1168</div> <div class="category-content" id="content-compliance2"> 1169<div class="services-simple-grid"> 1170<a class="service-simple-card" href="/services/gdpr-data-protection-compliance-services"> 1171<div class="service-simple-title">GDPR & Data Protection</div> 1172<p class="service-simple-description">DPIAs, ROPA, breach response, and ICO investigation support</p> 1173</a> 1174<a class="service-simple-card" href="/services/dpo-services"> 1175<div class="service-simple-title">DPO Services</div> 1176<p class="service-simple-description">Expert data protection guidance to ensure compliance and safeguard privacy</p> 1177</a> 1178<a class="service-simple-card" href="/services/dpo-as-a-service"> 1179<div class="service-simple-title">DPO as a Service</div> 1180<p class="service-simple-description">Outsourced Article 37 Data Protection Officer on a fixed monthly retainer</p> 1181</a> 1182<a class="service-simple-card" href="/services/dora-compliance-services"> 1183<div class="service-simple-title">DORA Compliance</div> 1184<p class="service-simple-description">Digital Operational Resilience Act compliance for EU financial entities and ICT providers</p> 1185</a> 1186 1187 1188 1189<a class="service-simple-card" href="/services/dora-tlpt-penetration-testing"> 1190<div class="service-simple-title">DORA TLPT & Pentesting</div> 1191<p class="service-simple-description">Threat-led penetration testing to support DORA operational resilience readiness</p> 1192</a> 1193<a class="service-simple-card" href="/services/swift-csp-assessment-services"> 1194<div class="service-simple-title">SWIFT CSP Assessment</div> 1195<p class="service-simple-description">SWIFT Customer Security Programme assessment to meet financial messaging security controls</p> 1196</a> 1197 1198 1199 1200<a class="service-simple-card" href="/services/virtual-ciso-testing-services"> 1201<div class="service-simple-title">Virtual CISO Services</div> 1202<p class="service-simple-description">Strategic security leadership on demand, tailored to your organisation</p> 1203</a> 1204</div> 1205</div> <div class="category-content" id="content-web3"> 1206<div class="services-simple-grid"> 1207<a class="service-simple-card" href="/services/smart-contract-security-services"> 1208<div class="service-simple-title">Smart Contract Security</div> 1209<p class="service-simple-description">Independent security auditing of smart contracts and DeFi protocols</p> 1210</a> <a class="service-simple-card" href="/services/wallet-security-services"> 1211<div class="service-simple-title">Wallet Security</div> 1212<p class="service-simple-description">
1212Security assessment of cryptocurrency wallets and key management</p> 1213</a> <a class="service-simple-card" href="/services/decentralized-application-security-services"> 1214<div class="service-simple-title">dApp Security</div> 1215<p class="service-simple-description">Decentralized application security testing and vulnerability assessment</p> 1216</a> <a class="service-simple-card" href="/services/non-fungible-token-security-services"> 1217<div class="service-simple-title">NFT Security</div> 1218<p class="service-simple-description">Non-fungible token platform and marketplace security auditing</p> 1219</a> <a class="service-simple-card" href="/services/decentralized-finance-security-services"> 1220<div class="service-simple-title">DeFi Security</div> 1221<p class="service-simple-description">Decentralized finance protocol security assessment and testing</p> 1222</a> <a class="service-simple-card" href="/services/security-engineering-services"> 1223<div class="service-simple-title">Security Engineering</div> 1224<p class="service-simple-description">Blockchain security architecture and implementation consulting</p> 1225</a> 1226</div> 1227</div> 1228</div> <!-- Dynamic Promotional Sidebar --> 1229<div class="mega-menu-promo" id="promo-content"> 1230<!-- Content will be dynamically updated based on category --> 1231</div> 1232</div> 1233</div> 1234</li> <li class="nav-item rsl-nav-dropdown rsl-nav-industries"> 1235<a class="nav-link dropdown-toggle" href="#" onclick="return false;">Industries</a> 1236<div class="rsl-mega-panel rsl-industries-panel"> 1237<div class="rsl-mega-grid"> 1238<a class="rsl-mega-item" href="/industries/financial-services-cybersecurity"> 1239<i class="bi bi-bank"></i> 1240<div><span class="rsl-mega-t">Financial Services</span><span class="rsl-mega-d">Banks, fintech & payments under FCA, PCI & DORA</span></div> 1241</a> 1242<a class="rsl-mega-item" href="/industries/saas-technology-cybersecurity"> 1243<i class="bi bi-cloud"></i> 1244<div><span class="rsl-mega-t">SaaS & Technology</span><span class="rsl-mega-d">Product security & SOC 2 for software firms</span></div> 1245</a> 1246<a class="rsl-mega-item" href="/industries/healthcare-cybersecurity"> 1247<i class="bi bi-heart-pulse"></i> 1248<div><span class="rsl-mega-t">Healthcare</span><span class="rsl-mega-d">HealthTech & NHS suppliers, DSPT & clinical safety</span></div> 1249</a> 1250<a class="rsl-mega-item" href="/industries/ecommerce-retail-cybersecurity"> 1251<i class="bi bi-cart"></i> 1252<div><span class="rsl-mega-t">E-commerce & Retail</span><span class="rsl-mega-d">PCI DSS & web security for online retail</span></div> 1253</a> 1254<a class="rsl-mega-item" href="/industries/hospitality-cybersecurity"> 1255<i class="bi bi-buildings"></i> 1256<div><span class="rsl-mega-t">Hospitality</span><span class="rsl-mega-d">Card data & guest systems for hotels & travel</span></div> 1257</a> 1258<a class="rsl-mega-item" href="/industries/manufacturing-industrial-cybersecurity"> 1259<i class="bi bi-gear-wide-connected"></i> 1260<div><span class="rsl-mega-t">Manufacturing & Industrial</span><span class="rsl-mega-d">OT/ICS & supply-chain security</span></div> 1261</a> 1262<a class="rsl-mega-item" href="/industries/education-research-cybersecurity"> 1263<i class="bi bi-mortarboard"></i> 1264<div><span class="rsl-mega-t">Education & Research</span><span class="rsl-mega-d">Universities, edtech & research data protection</span></div> 1265</a> 1266<a class="rsl-mega-item" href="/industries/government-public-sector-cybersecurity"> 1267<i class="bi bi-building-check"></i> 1268<div><span class="rsl-mega-t">Public Sector Suppliers</span><span class="rsl-mega-d">Assurance for firms supplying government</span></div> 1269</a> 1270</div> 1271</div> 1272</li> <li class="nav-item rsl-nav-dropdown rsl-nav-products"> 1273<a class="nav-link dropdown-toggle" href="#" onclick="return false;">Products</a> 1274<div class="rsl-dropdown-menu rsl-product-card-dropdown"> 1275<div class="rsl-product-card"> 1276<div class="rsl-product-card-eyebrow">From our research team</div> 1277<div class="rsl-product-card-title">Guardian Gaze</div> 1278<div class="rsl-product-card-desc">WordPress security platform for agencies and site owners. Code-level scanning, malware-pattern updates, expert escalation.</div> 1279<div class="rsl-product-card-actions"> 1280<a class="rsl-product-card-primary" href="/products/guardian-gaze">Explore product <span aria-hidden="true">â</span></a> 1281<a class="rsl-product-card-external" href="https://guardiangaze.com" rel="noopener" target="_blank">guardiangaze.com <span aria-hidden="true">â</span></a> 1282</div> 1283</div> 1284</div> 1285</li> <li class="nav-item"> 1286<a aria-current="page" class="nav-link" href="/rsl-signals">RSL Signals</a> 1287</li> 1288<li class="nav-item rsl-nav-dropdown rsl-nav-resources"> 1289<a class="nav-link dropdown-toggle" href="#" onclick="return false;">Resources</a> 1290<div class="rsl-mega-panel rsl-resources-panel">
1291<div class="rsl-mega-grid rsl-mega-grid-2"> 1292<a class="rsl-mega-item" href="/about"> 1293<i class="bi bi-building"></i> 1294<div><span class="rsl-mega-t">About Us</span><span class="rsl-mega-d">Who we are and how we work</span></div> 1295</a> 1296<a class="rsl-mega-item" href="/research"> 1297<i class="bi bi-search"></i> 1298<div><span class="rsl-mega-t">Research Lab</span><span class="rsl-mega-d">CVEs and original vulnerability research</span></div> 1299</a> 1300<a class="rsl-mega-item" href="/publications"> 1301<i class="bi bi-journal-text"></i> 1302<div><span class="rsl-mega-t">Publications</span><span class="rsl-mega-d">Books and research papers from our team</span></div> 1303</a> 1304<a class="rsl-mega-item" href="/resources/sample-pentest-report"> 1305<i class="bi bi-file-earmark-text"></i> 1306<div><span class="rsl-mega-t">Sample Report</span><span class="rsl-mega-d">See exactly what you receive</span></div> 1307</a> 1308<a class="rsl-mega-item" href="/media-coverage"> 1309<i class="bi bi-newspaper"></i> 1310<div><span class="rsl-mega-t">Media Coverage</span><span class="rsl-mega-d">RedSecLabs in the press</span></div> 1311</a> 1312<a class="rsl-mega-item" href="/careers"> 1313<i class="bi bi-people"></i> 1314<div><span class="rsl-mega-t">Careers</span><span class="rsl-mega-d">Join the team</span></div> 1315</a> 1316</div> 1317</div> 1318</li> <li class="nav-item"> 1319<a class="nav-link" href="/blog/">Blog</a> 1320</li> 1321<li class="nav-item"> 1322<a class="nav-link" href="/contact">Contact</a> 1323</li> 1324</ul> 1325<div class="navbar-cta-wrapper"> 1326<a class="btn btn-cta d-none d-md-inline-block" href="https://calendly.com/redseclabs-info" rel="noopener noreferrer" target="_blank">Book A Consultation</a> 1327</div> 1328</div> 1329</nav> 1330</div> 1331</div> 1332</header> <a href="tel:+442039961505" class="float" target="_blank"> 1333 <i class="fa fa-phone"></i> 1334 </a> <style> 1335 .gg-hero { 1336 background: linear-gradient(135deg, #0f0e1d 0%, #1a1430 50%, #2a1d3a 100%); 1337 color: #fff; 1338 padding: 70px 0 80px; 1339 position: relative; 1340 overflow: hidden; 1341 } 1342 .gg-hero::before { 1343 content: ""; 1344 position: absolute; 1345 inset: 0; 1346 background: 1347 radial-gradient(700px circle at 90% 15%, rgba(197,18,48,0.14), transparent 55%), 1348 radial-gradient(600px circle at 10% 90%, rgba(90,40,140,0.16), transparent 60%); 1349 pointer-events: none; 1350 } 1351 .gg-hero::after { 1352 content: ""; 1353 position: absolute; 1354 inset: 0; 1355 background-image: 1356 linear-gradient(rgba(255,255,255,0.022) 1px, transparent 1px), 1357 linear-gradient(90deg, rgba(255,255,255,0.022) 1px, transparent 1px); 1358 background-size: 56px 56px; 1359 pointer-events: none; 1360 } 1361 .gg-hero .container { position: relative; z-index: 2; max-width: 900px; } .gg-eyebrow { 1362 display: inline-flex; 1363 align-items: center; 1364 gap: 10px; 1365 color: #ff8095; 1366 font-size: 11.5px; 1367 font-weight: 600; 1368 letter-spacing: 0.18em; 1369 text-transform: uppercase; 1370 margin-bottom: 22px; 1371 padding: 6px 14px; 1372 background: rgba(255,255,255,0.04); 1373 border: 1px solid rgba(255,128,149,0.18); 1374 border-radius: 100px; 1375 } 1376 .gg-eyebrow::before { 1377 content: ""; 1378 width: 6px; 1379 height: 6px; 1380 background: #C51230; 1381 border-radius: 50%; 1382 box-shadow: 0 0 12px rgba(197,18,48,0.7); 1383 } 1384 .gg-h1 { 1385 font-size: 40px; 1386 font-weight: 700; 1387 color: #fff; 1388 line-height: 1.15; 1389 letter-spacing: -0.022em; 1390 margin-bottom: 20px; 1391 } 1392 .gg-h1 em { 1393 color: #C51230; 1394 font-style: italic; 1395 } 1396 .gg-hero-lede { 1397 font-size: 16px; 1398 color: rgba(255,255,255,0.7); 1399 line-height: 1.7; 1400 margin-bottom: 28px; 1401 max-width: 680px; 1402 } 1403 .gg-actions { 1404 display: flex; 1405 gap: 12px; 1406 flex-wrap: wrap; 1407 } 1408 .gg-primary { 1409 display: inline-flex; 1410 align-items: center; 1411 gap: 8px; 1412 padding: 14px 26px; 1413 background: #C51230; 1414 color: #fff !important; 1415 border-radius: 8px; 1416 font-size: 14.5px; 1417 font-weight: 600; 1418 text-decoration: none !important; 1419 transition: background 0.18s ease, transform 0.18s ease; 1420 } 1421 .gg-primary:hover { 1422 background: #d4143a; 1423 transform: translateY(-1px); 1424 color: #fff !important; 1425 } 1426 .gg-secondary { 1427 display: inline-flex; 1428 align-items: center; 1429 gap: 8px; 1430 padding: 14px 26px; 1431 background: rgba(255,255,255,0.05); 1432 color: #fff !important; 1433 border: 1px solid rgba(255,255,255,0.15); 1434 border-radius: 8px; 1435 font-size: 14.5px; 1436 font-weight: 500; 1437 text-decoration: none !important; 1438 transition: all 0.18s ease; 1439 } 1440 .gg-secondary:hover { 1441 background: rgba(255,255,255,0.1); 1442 border-color: rgba(255,255,255,0.25); 1443 color: #fff !important; 1444 } .gg-overview { background: #fff; padding: 70px 0; } 1445 .gg-overview .container { max-width: 980px; } 1446 .gg-overview-grid { 1447 display: grid; 1448 grid-template-columns: 1.2fr 1fr; 1449 gap: 50px; 1450 align-items: start; 1451 } 1452 .gg-overview-eyebrow { 1453 color: #C51230; 1454 font-size: 11.5px; 1455 font-weight: 600; 1456 letter-spacing: 0.18em; 1457 text-transform: uppercase; 1458 margin-bottom: 14px; 1459 padding-left: 26px; 1460 position: relative; 1461 display: inline-block; 1462 } 1463 .gg-overview-eyebrow::before { 1464 content: ""; 1465 position: absolute; 1466 left: 0; 1467 top: 50%; 1468 width: 18px; 1469 height: 1.5px; 1470 background: #C51230; 1471 transform: translateY(-50%); 1472 } 1473 .gg-overview h2 { 1474 font-size: 28px; 1475 font-weight: 700; 1476 color: #171428; 1477 line-height: 1.25; 1478 letter-spacing: -0.015em; 1479 margin: 0 0 18px; 1480 } 1481 .gg-overview h2 span { color: #C51230; } 1482 .gg-overview p { 1483 font-size: 15px; 1484 color: #555; 1485 line-height: 1.7; 1486 margin-bottom: 0; 1487 } 1488 .gg-coverage { 1489 background: #fafbfc; 1490 border: 1px solid #eaecef; 1491 border-radius: 12px; 1492 padding: 28px 30px; 1493 } 1494 .gg-coverage-label { 1495 font-size: 11px; 1496 font-weight: 600; 1497 letter-spacing: 0.12em; 1498 text-transform: uppercase; 1499 color: #888; 1500 margin-bottom: 16px; 1501 padding-bottom: 14px; 1502 border-bottom: 1px solid #eaecef; 1503 } 1504 .gg-coverage ul { 1505 list-style: none; 1506 padding: 0; 1507 margin: 0; 1508 display: flex; 1509 flex-direction: column; 1510 gap: 11px; 1511 } 1512 .gg-coverage li { 1513 font-size: 13.5px; 1514 color: #2c2c2c; 1515 line-height: 1.5; 1516 padding-left: 24px; 1517 position: relative; 1518 } 1519 .gg-coverage li::before { 1520 content: ""; 1521 position: absolute; 1522 left: 0; 1523 top: 6px; 1524 width: 14px; 1525 height: 8px; 1526 border-left: 1.5px solid #C51230; 1527 border-bottom: 1.5px solid #C51230; 1528 transform: rotate(-45deg); 1529 } 1530 .gg-coverage li strong { color: #171428; font-weight: 600; } .gg-context { 1531 background: #fafbfc; 1532 padding: 60px 0; 1533 border-top: 1px solid #eef0f3; 1534 border-bottom: 1px solid #eef0f3; 1535 } 1536 .gg-context .container { max-width: 820px; text-align: center; } 1537 .gg-context h2 { 1538 font-size: 22px; 1539 font-weight: 600; 1540 color: #171428; 1541 letter-spacing: -0.01em; 1542 margin-bottom: 14px; 1543 } 1544 .gg-context p { 1545 font-size: 14.5px; 1546 color: #555; 1547 line-height: 1.7; 1548 margin: 0; 1549 } 1550 .gg-context p strong { color: #171428; } 1551 .gg-context-link { 1552 color: #C51230; 1553 font-weight: 500; 1554 text-decoration: underline; 1555 } .gg-cta { 1556 background: linear-gradient(135deg, #0f0e1d 0%, #1a1430 50%, #2a1d3a 100%); 1557 color: #fff; 1558 padding: 70px 0; 1559 text-align: center; 1560 position: relative; 1561 overflow: hidden; 1562 } 1563 .gg-cta::before { 1564 content: ""; 1565 position: absolute; 1566 inset: 0; 1567 background: radial-gradient(700px circle at 50% 50%, rgba(197,18,48,0.16), transparent 65%); 1568 } 1569 .gg-cta .container { position: relative; z-index: 2; max-width: 680px; } 1570 .gg-cta h2 { 1571 font-size: 26px; 1572 font-weight: 700; 1573 color: #fff; 1574 line-height: 1.25; 1575 letter-spacing: -0.015em; 1576 margin-bottom: 14px; 1577 } 1578 .gg-cta p { 1579 font-size: 15px; 1580 color: rgba(255,255,255,0.7); 1581 line-height: 1.6; 1582 margin-bottom: 26px; 1583 } @media (max-width: 991px) { 1584 .gg-overview-grid { grid-template-columns: 1fr; gap: 32px; } 1585 .gg-h1 { font-size: 30px; } 1586 .gg-overview h2 { font-size: 22px; } 1587 .gg-hero { padding: 50px 0 60px; } 1588 } 1589</style> 1590 1591<section class="gg-hero"> 1592 <div class="container"> 1593 <div class="gg-eyebrow">A product from our research team</div> 1594 <h1 class="gg-h1">Guardian Gaze <em>WordPress security from RedSecLabs</em></h1> 1595 <p class="gg-hero-lede">A WordPress security platform built from patterns our consultants encounter in real incident response work , code-level scanning, malware-pattern updates, and expert escalation when something looks wrong. Sign-up, pricing, and documentation live on the dedicated product site.</p> 1596 <div class="gg-actions"> 1597 <a href="https://guardiangaze.com" target="_blank" rel="noopener" class="gg-primary">Visit guardiangaze.com <span aria-hidden="true">↗</span></a> 1598 <a href="https://guardiangaze.com/wordpress/pricing" target="_blank" rel="noopener" class="gg-secondary">See pricing</a> 1599 </div> 1600 </div> 1601</section> 1602 1603<section class="gg-overview"> 1604 <div class="container"> 1605 <div class="gg-overview-grid"> 1606 <div> 1607 <span class="gg-overview-eyebrow">What it is</span> 1608 <h2>WordPress security that catches what your <span>firewall misses</span></h2> 1609 <p>Guardian Gaze is the WordPress security product from RedSecLabs. It is built for agencies and site owners managing portfolios of WordPress
1609installations , environments where vulnerabilities slip in through outdated plugins, compromised themes, and supply-chain issues that a generic firewall does not catch.</p> 1610 <p style="margin-top: 14px;">All product features, pricing, documentation, and account management live at <a href="https://guardiangaze.com" target="_blank" rel="noopener" style="color: #C51230; font-weight: 500;">guardiangaze.com</a>.</p> 1611 </div> 1612 <div class="gg-coverage"> 1613 <div class="gg-coverage-label">Coverage areas</div> 1614 <ul> 1615 <li><strong>Code-level scanning</strong> , not just URL fingerprinting</li> 1616 <li><strong>Malware pattern updates</strong> from real IR investigations</li> 1617 <li><strong>Plugin and theme integrity</strong> verification</li> 1618 <li><strong>Expert escalation</strong> path when something looks wrong</li> 1619 <li><strong>Multi-site agency dashboard</strong> for portfolios</li> 1620 </ul> 1621 </div> 1622 </div> 1623 </div> 1624</section> 1625 1626<section class="gg-context"> 1627 <div class="container"> 1628 <h2>A separate product, on purpose</h2> 1629 <p>Guardian Gaze runs as a separate product brand at <a href="https://guardiangaze.com" target="_blank" rel="noopener" class="gg-context-link">guardiangaze.com</a>. The consulting practice and the product practice are different things , <strong>RedSecLabs is a senior-led cybersecurity consulting firm</strong> (penetration testing, PCI DSS, ISO 27001, incident response). Guardian Gaze is a productised tool that emerged from patterns we kept seeing in WordPress incident response. Both teams share research, but buying model, support model, and pricing structure are independent.</p> 1630 </div> 1631</section> 1632 1633<section class="gg-cta"> 1634 <div class="container"> 1635 <h2>Get Guardian Gaze at guardiangaze.com</h2> 1636 <p>Sign-up, pricing tiers, agency portal access, and full product documentation live on the dedicated product site.</p> 1637 <div class="gg-actions" style="justify-content: center;"> 1638 <a href="https://guardiangaze.com" target="_blank" rel="noopener" class="gg-primary">Sign up at guardiangaze.com <span aria-hidden="true">↗</span></a> 1639 <a href="https://guardiangaze.com/wordpress/pricing" target="_blank" rel="noopener" class="gg-secondary">See pricing</a> 1640 </div> 1641 </div> 1642</section> 1643 1644<footer class="rsl-footer"> 1645 <div class="container"> <!-- ââ Main: brand + nav + form ââ --> 1646 <div class="rsl-footer-main"> 1647 <div class="rsl-f-inner"> <!-- Brand --> 1648 <div class="rsl-f-brand"> 1649 <svg xmlns="http://www.w3.org/2000/svg" width="140" height="38" viewBox="0 0 146 40" fill="none"> 1650 <path d="M42.9116 40.0003C42.907 34.1207 42.9028 28.2411 42.8992 22.3615C42.9058 22.2573 42.9185 22.1536 42.9372 22.0509H45.937V37.2307C46.1882 37.2476 46.378 37.2713 46.5679 37.2714C50.2224 37.2736 53.8769 37.2634 57.5312 37.2851C57.7136 37.3075 57.8978 37.2615 58.0483 37.1561C58.1988 37.0507 58.305 36.8932 58.3462 36.7142C60.2115 32.0107 62.1037 27.318 63.9603 22.6111C64.0066 22.4129 64.1271 22.2399 64.2972 22.128C64.4672 22.0161 64.6737 21.9736 64.874 22.0095C65.7111 22.0474 66.5522 21.9964 67.3889 22.0378C67.5034 22.0541 67.6127 22.0965 67.7082 22.1619C67.8037 22.2272 67.8828 22.3136 67.9395 22.4145C70.2145 28.1555 72.4754 33.9022 74.7223 39.6544C74.755 39.7674 74.7769 39.8832 74.7877 40.0003H71.4323C71.4194 39.9036 71.3987 39.8081 71.3705 39.7148C69.6079 35.1512 67.8433 30.5884 66.0767 26.0264C66.0285 25.9018 65.9572 25.7861 65.8345 25.5431L60.2876 40.0003H42.9116Z" fill="white"/> 1651 <path d="M77.7837 40C77.7961 39.7826 77.8194 39.5653 77.8195 39.3479C77.8215 33.8292 77.822 28.3106 77.821 22.7919V22.0197H78.4727C81.2872 22.0197 84.1029 21.9736 86.9157 22.0441C87.9691 22.0656 89.0133 22.2448 90.0135 22.5759C90.747 22.8007 91.3903 23.2526 91.8505 23.8664C92.3107 24.4802 92.5642 25.2242 92.5744 25.9913C92.5961 26.3089 92.5985 26.6282 92.5981 26.9466C92.6467 27.361 92.6131 27.7808 92.4992 28.1821C92.3852 28.5835 92.1932 28.9583 91.9341 29.2853C91.675 29.6122 91.3539 29.8848 90.9892 30.0874C90.6245 30.29 90.2234 30.4186 89.8089 30.4659C89.6819 30.496 89.5603 30.5487 89.2968 30.6383C89.803 30.7469 90.1717 30.8095 90.5313 30.9059C91.2156 31.0359 91.837 31.3907 92.2968 31.914C92.7566 32.4373 93.0285 33.0991 93.0694 33.7946C93.1452 34.588 93.1443 35.3868 93.0667 36.1801C93.0245 36.9047 92.7626 37.5993 92.316 38.1715C91.8695 38.7437 91.2593 39.1665 90.5666 39.3835C89.7529 39.6346 88.926 39.8405 88.0895 40L77.7837 40ZM80.9209 37.2579C83.3241 37.2579 85.6732 37.3007 88.0182 37.2228C88.2907 37.1944 88.5548 37.1125 88.7955 36.9819C89.0363 36.8512 89.2489 36.6743 89.4211 36.4613C89.7352 35.9967 89.9205 35.457 89.958 34.8973C89.9955 34.3377 89.8839 33.7781 89.6345 33.2757C89.2397 32.2913 88.3095 32.1021 87.3428 32.1019C85.3899 32.1012 83.437 32.1011 81.4841 32.1016H80.9209L80.9209 37.2579ZM80.9411 24.7035V29.5584C82.4929 29.5584 84.0038 29.5636 85.5145 29.5561C86.1914 29.5715 86.8686 29.5516 87.5434 29.4966C87.8045 29.4896 88.0615 29.4292 88.2985 29.319C88.5354 29.2089 88.7472 29.0514 88.921 28.8563C89.0947 28.6611 89.2266 28.4325 89.3086 28.1844C89.3906 27.9363 89.4208 27.674 89.3976 27.4138C89.4014 27.2349 89.4003 27.0558 89.3979 26.8768C89.434 26.6012 89.4094 26.321 89.3258 26.0559C89.2423 25.7907 89.1019 25.547 88.9143 25.3419C88.7268 25.1367 88.4967 24.9749 88.2401 24.868C87.9836 24.761 87.7067 24.7114 87.429 24.7226C85.2822 24.6522 83.1313 24.7035 80.9411 24.7035Z" fill="white"/> 1652 <path d="M102.35 40.0004C101.646 39.8745 100.933 39.7869 100.24 39.6161C98.9101 39.3441 97.7298 38.5859 96.9297 37.4898C96.1295 36.3936 95.7671 35.0384 95.9132 33.6892C96.7949 33.6892 97.6859 33.6778 98.5756 33.7056C98.671 33.7086 98.8223 33.9317 98.8413 34.0675C98.8295 34.4695 98.8975 34.8699 99.0412 35.2455C99.185 35.6212 99.4017 35.9646 99.6789 36.256C99.9561 3
16526.5475 100.288 36.7811 100.656 36.9435C101.024 37.1059 101.421 37.1938 101.823 37.2022C103.125 37.4311 104.46 37.3995 105.751 37.1091C106.062 37.0827 106.365 36.9915 106.639 36.8413C106.913 36.6911 107.153 36.4851 107.342 36.2367C107.532 35.9883 107.668 35.703 107.741 35.399C107.814 35.095 107.822 34.7791 107.766 34.4716C107.778 34.0046 107.622 33.5487 107.326 33.1873C107.03 32.8259 106.614 32.5831 106.154 32.5032C105.1 32.2144 104.006 32.07 102.929 31.8673C101.871 31.6683 100.791 31.5507 99.7576 31.2645C98.804 31.0883 97.94 30.5893 97.3109 29.8512C96.6818 29.1132 96.3259 28.1811 96.303 27.2116C96.1147 26.1549 96.3103 25.0658 96.8544 24.1407C97.3986 23.2156 98.2554 22.5155 99.2704 22.1666C101.766 21.173 104.541 21.1347 107.063 22.0591C108.1 22.4461 108.977 23.1719 109.551 24.119C110.125 25.0661 110.362 26.1791 110.225 27.2779H107.484C107.448 27.2224 107.419 27.1631 107.396 27.1012C107.133 25.0563 106.381 24.249 104.312 24.0799C103.261 23.9855 102.202 24.0446 101.169 24.2553C99.5188 24.6126 99.1203 25.6751 99.4236 27.3018C99.493 27.6188 99.6605 27.9059 99.9022 28.1225C100.144 28.3391 100.448 28.4741 100.77 28.5084C102.078 28.7822 103.399 28.9872 104.711 29.238C105.677 29.3866 106.632 29.5899 107.574 29.8468C108.477 30.0645 109.283 30.5713 109.87 31.29C110.457 32.0087 110.793 32.8997 110.826 33.8271C111.034 34.8557 110.891 35.9241 110.42 36.8618C109.949 37.7995 109.177 38.5523 108.228 38.9999C107.246 39.3756 106.235 39.6708 105.204 39.8826C105.016 39.9352 104.82 39.9619 104.627 40.0005L102.35 40.0004Z" fill="white"/> 1653 <path d="M145.61 6.86999H142.641C142.605 6.59656 142.576 6.38694 142.552 6.17684C142.522 5.41031 142.229 4.67753 141.721 4.10254C141.213 3.52755 140.522 3.14569 139.765 3.02161C138.618 2.73579 137.419 2.72129 136.265 2.97925C135.438 3.11242 134.676 3.50944 134.093 4.11109C133.51 4.71274 133.137 5.48676 133.03 6.31768C132.686 8.30402 132.685 10.3346 133.028 12.3212C133.131 13.2164 133.547 14.0466 134.201 14.6665C134.855 15.2863 135.707 15.6562 136.606 15.7115C137.652 15.8309 138.71 15.7971 139.746 15.6109C140.497 15.4982 141.184 15.127 141.69 14.5614C142.195 13.9959 142.488 13.2715 142.516 12.5134C142.552 12.2181 142.585 11.9223 142.63 11.5346H145.61V12.7307C145.568 12.8798 145.512 13.0265 145.485 13.1783C145.332 14.3555 144.83 15.4599 144.043 16.3488C143.256 17.2377 142.221 17.8704 141.071 18.165C139.246 18.7234 137.302 18.7694 135.453 18.298C134.077 17.9961 132.82 17.2958 131.839 16.2844C130.859 15.2731 130.198 13.9954 129.938 12.6108C129.462 10.5641 129.437 8.43822 129.866 6.38103C130.148 4.60502 131.061 2.98999 132.436 1.83111C133.811 0.672228 135.557 0.0469068 137.355 0.0694358C138.794 -0.0269696 140.237 0.173447 141.595 0.658237C142.603 0.999225 143.498 1.61019 144.184 2.42466C144.869 3.23913 145.317 4.2259 145.481 5.27761C145.514 5.45143 145.567 5.62163 145.61 5.7935L145.61 6.86999Z" fill="#C51230"/> 1654 <path d="M54.6493 9.7429C57.0275 10.374 57.42 10.8898 57.4413 13.3117C57.4558 14.9607 57.522 16.6092 57.5659 18.2901H54.6343C54.5653 17.665 54.4618 17.0569 54.4388 16.4458C54.3993 15.3906 54.4281 14.3331 54.3948 13.2775C54.3529 11.9455 53.8354 11.4176 52.5194 11.4046C50.3648 11.3833 48.2098 11.3988 45.9648 11.3988V18.2901H42.9336V0.398451C43.0116 0.371964 43.0923 0.353953 43.1741 0.344727C46.4886 0.360384 49.8036 0.352073 53.1171 0.419014C53.834 0.462859 54.5386 0.626267 55.2016 0.902478C55.8726 1.12157 56.4659 1.52993 56.9102 2.0784C57.3544 2.62687 57.6307 3.29206 57.7057 3.99389C57.829 4.98233 57.8326 5.98203 57.7164 6.97134C57.6476 7.62483 57.3649 8.23732 56.9124 8.7138C56.4599 9.19029 55.8628 9.50413 55.2138 9.60664C55.0258 9.65275 54.8375 9.69745 54.6493 9.7429ZM45.9539 8.65412C48.2297 8.65412 50.421 8.66257 52.6122 8.64386C52.9115 8.6288 53.2044 8.55131 53.472 8.41636C54.8298 7.77814 54.5436 6.52537 54.5749 5.39542C54.6504 4.96849 54.5784 4.52858 54.3708 4.14796C54.1632 3.76734 53.8323 3.46865 53.4325 3.30096C52.9645 3.13472 52.4713 3.05032 51.9746 3.05148C50.1605 3.02324 48.3456 3.03917 46.531 3.04147C46.3584 3.04167 46.1857 3.06211 45.9896 3.07467C45.976 3.26616 45.9554 3.42208 45.9552 3.57804C45.953 5.24666 45.9539 6.91538 45.9539 8.65412Z" fill="#C51230"/> 1655 <path d="M77.6794 18.2091V0.417135C77.7507 0.382963 77.8266 0.359223 77.9047 0.346644C80.44
16550.346418 82.9786 0.269011 85.51 0.37127C86.5103 0.321095 87.5101 0.47975 88.4457 0.837133C89.3813 1.19452 90.2323 1.7428 90.9444 2.44707C91.6565 3.15134 92.2142 3.99618 92.582 4.92779C92.9497 5.8594 93.1194 6.85737 93.0803 7.85816C93.1777 9.4077 93.092 10.9633 92.825 12.4928C92.618 14.0088 91.8878 15.405 90.7608 16.4399C89.6337 17.4747 88.1805 18.0834 86.6523 18.1606C83.7013 18.3915 80.7178 18.2091 77.6794 18.2091ZM80.7641 15.5172C82.5345 15.5172 84.2769 15.6537 85.9887 15.4839C86.998 15.4781 87.9645 15.0756 88.6796 14.3633C89.3947 13.651 89.8009 12.6861 89.8106 11.6768C89.9707 10.1118 89.9707 8.53451 89.8106 6.9695C89.8089 6.03309 89.4579 5.131 88.8264 4.4396C88.1948 3.7482 87.3281 3.31721 86.3957 3.23091C84.5529 2.98611 82.6693 3.04597 80.7642 2.96994L80.7641 15.5172Z" fill="#C51230"/> 1656 <path d="M95.9286 12.2909C96.7926 12.2909 97.6668 12.2768 98.5391 12.3087C98.6487 12.3127 98.8249 12.5494 98.8428 12.6942C98.8142 13.4755 99.0932 14.237 99.6199 14.8148C100.147 15.3927 100.879 15.741 101.66 15.7849C103.017 16.0507 104.415 16.0279 105.763 15.718C106.105 15.6834 106.436 15.5729 106.73 15.3944C107.024 15.216 107.275 14.9742 107.464 14.6866C107.652 14.399 107.775 14.0729 107.821 13.732C107.868 13.3911 107.838 13.0441 107.734 12.7163C107.677 12.3361 107.504 11.9828 107.239 11.704C106.974 11.4253 106.63 11.2346 106.253 11.1577C105.096 10.8679 103.912 10.6802 102.739 10.4527C101.702 10.2516 100.641 10.1359 99.6319 9.84027C98.6926 9.64331 97.8493 9.13038 97.2424 8.38697C96.6355 7.64357 96.3018 6.71462 96.2968 5.75496C96.1257 4.73707 96.3135 3.69136 96.8279 2.79652C97.3423 1.90168 98.1515 1.21324 99.1172 0.848847C101.688 -0.237502 104.581 -0.282782 107.184 0.722558C108.188 1.1235 109.03 1.84539 109.58 2.7755C110.129 3.70561 110.356 4.79157 110.223 5.86381H107.436C107.414 5.69976 107.384 5.53151 107.371 5.36192C107.363 4.80654 107.175 4.26873 106.834 3.82996C106.494 3.39118 106.02 3.07536 105.483 2.93031C103.968 2.44397 102.337 2.45412 100.828 2.95927C100.51 3.06882 100.22 3.24609 99.9778 3.47884C99.7354 3.71158 99.5464 3.99423 99.4239 4.30722C99.3015 4.62021 99.2485 4.95607 99.2687 5.29155C99.2889 5.62704 99.3817 5.95413 99.5408 6.25019C99.7066 6.52571 99.936 6.75752 100.21 6.92621C100.484 7.09491 100.794 7.19559 101.114 7.21983C102.506 7.4833 103.91 7.67973 105.299 7.95583C106.262 8.11306 107.208 8.3561 108.127 8.68206C108.944 8.97581 109.646 9.52135 110.132 10.2399C110.618 10.9585 110.863 11.813 110.832 12.6799C110.923 13.322 110.885 13.9756 110.722 14.6031C110.559 15.2307 110.273 15.8197 109.881 16.3361C109.489 16.8526 108.999 17.2863 108.438 17.6122C107.878 17.938 107.258 18.1497 106.615 18.2348C104.492 18.7634 102.27 18.7533 100.152 18.2054C98.8406 17.9177 97.6826 17.1535 96.9023 16.0608C96.1221 14.9681 95.7751 13.6248 95.9286 12.2909Z" fill="#C51230"/> 1657 <path d="M117.122 15.611H127.452V18.2831H114.055V0.387695H127.307V3.03716H117.116V7.8138H126.719V10.4715H117.122V15.611Z" fill="#C51230"/> 1658 <path d="M61.4118 18.2863V0.396484H74.6906V3.01892H64.4982V7.84324H74.0917V10.4723H64.492V15.6004H74.8126V18.2863H61.4118Z" fill="#C51230"/> 1659 <path d="M15.58 39.5454C16.6443 38.206 17.6797 36.8424 18.7823 35.5352C19.6094 34.5782 20.0438 33.3437 19.9982 32.0797C19.9578 28.6329 19.9719 25.1851 19.9987 21.738C20.0027 21.233 19.8282 21.0655 19.372 20.9366C13.1342 19.1743 6.89979 17.4002 0.668649 15.6144C0.461383 15.5552 0.256291 15.488 0.0336133 15.4194C0.0254048 15.2399 0.0119014 15.083 0.0118399 14.9262C0.0106291 11.6184 0.016971 8.3105 0.00229816 5.00276C-0.00938603 4.84797 0.0236549 4.69308 0.0974884 4.55654C0.171322 4.41999 0.282838 4.30754 0.41876 4.23257C4.78946 1.2826 9.99747 -0.173697 15.2644 0.0813283C15.4567 0.0890444 15.6479 0.124424 16.0236 0.168319C15.5174 0.399904 15.1734 0.543738 14.8415 0.711378C13.9866 1.06135 13.2617 1.66846 12.7671 2.44866C12.2725 3.22886 12.0328 4.14353 12.081 5.06602C12.1454 8.21313 12.1071 11.3626 12.087 14.5108C12.0726 14.5955 12.0757 14.6823 12.0961 14.7657C12.1165 14.8491 12.1538 14.9275 12.2057 14.996C12.2576 15.0644 12.323 15.1215 12.3978 15.1637C12.4726 15.206 12.5553 15.2324 12.6407 15.2414C18.9169 17.015 25.1864 18.8118 31.4638 20.5808C31.9106 20.7067 32.0672 20.8757 32.0601 21.3421C32.0331 23.1152 32.0632 24.8892 32.0333 26.6621C32.0187 26.9444 31.8926 27.2093 31.6827 27.3986C26.433 31.4357 21.1742 35.461 15.9061 39.4743C15.83 39.5325 15.7458 39.5803 15.6654 39.633L15.58 39.5454Z" fill="#C51230"/> 1660 <path d="M31.9944 19.3543L15.5903 14.6805C16.1196 14.5171 16.4868 14.3976 16.8576 14.2906C17.7009 14.0472 18.538 13.7748 19.3933 13.5837C19.892 13.4722 19.998 13.237 19.9956 12.7611C19.9762 8.81482 19.9846 4.86842 19.9846 0.922052
1660V0.158203C20.2717 0.256398 20.477 0.322887 20.6796 0.396436C24.2986 1.70981 27.9176 3.02275 31.5368 4.33526C31.8273 4.44039 32.061 4.50957 32.0595 4.92459C32.0421 9.62829 32.0475 14.332 32.0449 19.0358C32.0347 19.1429 32.0178 19.2493 31.9944 19.3543Z" fill="white"/> 1661 <path d="M12.0979 36.3408C11.8402 36.157 11.6933 36.0584 11.553 35.9512C7.8441 33.1176 4.13785 30.2804 0.434257 27.4398C0.220211 27.2867 0.0747528 27.0558 0.0291439 26.7967C0.00345111 23.5688 0.0115154 20.3408 0.013547 17.1128C0.0220179 17.0186 0.0367857 16.9252 0.0577505 16.833L13.8549 20.7627C13.3536 21.0161 13.0009 21.2304 12.6218 21.3764C12.444 21.431 12.2919 21.5481 12.1937 21.706C12.0954 21.864 12.0576 22.0521 12.0873 22.2357C12.1047 26.6792 12.0979 31.1227 12.0979 35.5662V36.3408Z" fill="white"/> 1662 </svg> <p class="rsl-f-brand-desc"> 1663 <strong>Independent Security Assurance</strong> 1664 for Regulated & High-Risk Organisations.<br><br> 1665 Trusted by regulated organisations across finance, technology and government. 1666 </p> <div class="rsl-f-socials"> 1667 <a href="https://www.linkedin.com/company/redseclabs/posts/?feedView=all" target="_blank" rel="noopener" aria-label="LinkedIn"><i class="fa-brands fa-linkedin-in"></i></a> 1668 <a href="https://x.com/redseclabs" target="_blank" rel="noopener" aria-label="X / Twitter"><i class="fa-brands fa-x-twitter"></i></a> 1669 <a href="https://www.youtube.com/@redseclabs" target="_blank" rel="noopener" aria-label="YouTube"><i class="fa-brands fa-youtube"></i></a> 1670 <a href="https://www.facebook.com/share/19zG6oFini/" target="_blank" rel="noopener" aria-label="Facebook"><i class="fa-brands fa-facebook-f"></i></a> 1671 <a href="https://www.instagram.com/redseclabs" target="_blank" rel="noopener" aria-label="Instagram"><i class="fa-brands fa-instagram"></i></a> 1672 </div> 1673 </div> <!-- Nav columns --> 1674 <div class="rsl-f-nav"> <div class="rsl-f-nav-col"> 1675 <div class="rsl-f-nav-head">Core Services</div> 1676 <ul> 1677 <li><a href="/services/pentesting-services/">Penetration Testing</a></li> 1678 <li><a href="/services/red-team-assessments-services">Adversary Simulation</a></li> 1679 <li><a href="/services/pci-dss-compliance-services">Compliance Services</a></li> 1680 <li><a href="/services/virtual-ciso-testing-services">Security Advisory</a></li> 1681 <li><a href="/services/incident-response-services">Incident Response</a></li> 1682 </ul> 1683 </div> <div class="rsl-f-nav-col"> 1684 <div class="rsl-f-nav-head">Compliance Services</div> 1685 <ul> 1686 <li><a href="/services/office-365-cis-security-services">Office 365 CIS Security</a></li> 1687 <li><a href="/services/soc2-compliance-services">SOC2 Compliance</a> 1688 </li><li><a href="/services/fedramp-compliance-services">FedRAMP Advisory</a></li> 1689 <li><a href="/services/dora-compliance-services">DORA Compliance</a></li> 1690 <li><a href="/services/dpo-services">DPO Services</a></li> 1691 <li><a href="/services/privacy-risk-impact-assessment-services">Privacy Impact Assessment</a></li> 1692 </ul> 1693 </div> <div class="rsl-f-nav-col"> 1694 <div class="rsl-f-nav-head">Resources</div> 1695 <ul> 1696 <li><a href="/rsl-signals">RSL Signals</a></li> 1697 <li><a href="/resources/sample-pentest-report"> Penetration Testing Sample Report</a></li> 1698 <li><a href="/services/penetration-testing-estimator">Penetration Testing Estimator</a></li> 1699 <li><a href="/services/pcidss_estimator">PCI DSS Estimator</a></li> 1700 <li><a href="/blog/">Blog</a></li> 1701 <li><a href="https://calendly.com/redseclabs-info" target="_blank">Book a Consultation</a></li> 1702 </ul> 1703 </div> <div class="rsl-f-nav-col"> 1704 <div class="rsl-f-nav-head">Industries</div> 1705 <ul> 1706 <li><a href="/industries/financial-services-cybersecurity">Financial Services</a></li> 1707 <li><a href="/industries/saas-technology-cybersecurity">SaaS & Technology</a></li> 1708 <li><a href="/industries/ecommerce-retail-cybersecurity">E-commerce & Retail</a></li> 1709 <li><a href="/industries/healthcare-cybersecurity">Healthcare</a></li> 1710 <li><a href="/industries/hospitality-cybersecurity">Hospitality</a></li> 1711 <li><a href="/industries/manufacturing-industrial-cybersecurity">Manufacturing & Industrial</a></li> 1712 <li><a href="/industries/education-research-cybersecurity">Education & Research</a></li> 1713 <li><a href="/industries/government-public-sector-cybersecurity">Public Sector Suppliers</a></li> 1714 </ul> 1715</div> </div> <!-- Form box --> 1716 <div class="rsl-f-form-box"> 1717 <h4 class="rsl-f-form-heading">Engage With Our Advisors</h4> 1718 <hr class="rsl-f-form-divider"> 1719 <p class="rsl-f-form-sub">Request a consultation for penetration testing, compliance and security advisory engagements.</p> 1720 <form id="rslFooterForm" novalidate> 1721 <input type="email" name="email" id="rslFooterEmail" class="rsl-f-input" placeholder="Business Email" required /> 1722 <select name="service" id="rslFooterService" class="rsl-f-input"> 1723 <option value="" disabled selected>Select Service</option> 1724 <option value="Penetration Testing">Penetration Testing</option> 1725 <option value="Compliance Services">Compliance Services</option> 1726 <option value="Red Team / Adversary Simulation">Red Team / Adversary Simulation</option> 1727 <option value="Security Advisory / vCISO">Security Advisory / vCISO</option> 1728 <option value="Incident Response">Incident Response</option> 1729 <option value="Other">Other</option> 1730 </select> 1731 <div class="cf-turnstile" data-sitekey="0x4AAAAAADeFiu0dDrhPzfpN" data-theme="dark" data-size="flexible" style="margin-bottom:10px;"></div> 1732 <button type="submit" class="rsl-f-btn" id="rslFooterBtn"> 1733 Request Consultation <span>→</span> 1734 </button> 1735 <p id="rslFooterMsg" style="display:none;margin:10px 0 0;font-size:12px;color:#6effa0;"></p> 1736 </form> 1737 <p class="rsl-f-note"><i class="bi bi-clock"></i> 24/7 Incident Response Available</p> 1738 </div> </div> 1739 </div> <!-- ââ Contact bar ââ --> 1740 <div class="rsl-footer-contact"> 1741 <a href="tel:+442039961505"><i class="bi bi-telephone-fill"></i> +44 20 3996 1505</a> 1742 <a href="/cdn-cgi/l/email-protection#96fff8f0f9d6e4f3f2e5f3f5faf7f4e5b8f5f9fb"><i class="bi bi-envelope-fill"></i> <span class="__cf_email__" data-cfemail="0861666e67487a6d6c7b6d6b64696a7b266b6765">[email protected]</span></a> 1743 </div> <!-- ââ Offices + certifications ââ --> 1744 <div class="rsl-footer-offices"> <div class="rsl-office"> 1745 <div class="rsl-office-name"><i class="bi bi-geo-alt-fill"></i> United Kingdom</div> 1746 <p>124 City Road,<br>London, EC1V 2NX</p> 1747 </div> 1748 <div class="rsl-office-vline"></div> <div class="rsl-office"> 1749 <div class="rsl-office-name"><i class="bi bi-geo-alt-fill"></i> United States</div> 1750 <p>30 N Gould St Ste N,<br>Sheridan, WY 82801</p> 1751 </div> 1752 <div class="rsl-office-vline"></div> <div class="rsl-office"> 1753 <div class="rsl-office-name"><i class="bi bi-geo-alt-fill"></i> United Arab Emirates</div> 1754 <p>Meydan Grandstand,<br>Nad Al Sheba, Dubai</p> 1755 </div> <div class="rsl-certs"> 1756 <div class="rsl-cert-item"> 1757 <img loading="lazy" src="/images/a_300c16a4336844ea.png" alt="CREST" /> 1758 <span>CREST</span> 1759 </div> 1760 <div class="rsl-cert-item"> 1761 <img loading="lazy" src="/images/a_8679a09e40fae4d1.webp" alt="PCI DSS QSA" /> 1762 <span>PCI DSS QSA</span> 1763 </div> <div class="rsl-cert-item"> 1764 <img loading="lazy" src="/images/a_42aa6ae2f4810028.webp" alt="ISO 27001" /> 1765 <span>ISO 27001</span> 1766 </div> <div class="rsl-cert-item"> 1767 <picture><source srcset="/images/a_34b290e949205c0d.webp" type="image/webp" /><img loading="lazy" src="/images/a_34b290e949205c0d.png" alt="ISO UKAS" /></picture> 1768 <span>ISO UKAS</span> 1769 </div> <div class="rsl-cert-item"> 1770 <img loading="lazy" src="/images/cyber-essentials.webp" alt="Cyber Essentials Certification Body" /> 1771 <span>Cyber Essentials</span> 1772 </div> </div> 1773 </div> </div> <!-- ââ Bottom bar ââ --> 1774 <div class="rsl-footer-bottom"> 1775 <div class="f-bottom-links"> 1776 <a href="/privacy-policy">Privacy Policy</a> 1777 <span class="sep">·</span> 1778 <a href="javascript:openCookiePreferences">Cookie Policy</a> </div> 1779 <div class="f-copyright">© 2026 RedSecLabs. All rights reserved.</div> 1780 <div class="f-legal" style="margin-top:6px;font-size:12px;opacity:.7;">REDSECLABS LIMITED, registered in England & Wales, company no. 14885288. Registered office: 124 City Road, London EC1V 2NX, United Kingdom.</div> 1781 </div> </div> 1782</footer>
vendor: 110 bytes, lines 1782-1783
1782 1783 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1783<script> 1784document.addEventListener('DOMContentLoaded', function() { 1785 const serviceLink = document.querySelector('.nav-service.dropdown-toggle'); if (serviceLink) { 1786 serviceLink.removeAttribute('data-bs-toggle'); serviceLink.addEventListener('click', function(e) { 1787 window.location.href = this.href; 1788 }); const parentLi = serviceLink.closest('.dropdown'); if (parentLi) { 1789 parentLi.addEventListener('mouseenter', function() { 1790 const megaMenu = this.querySelector('.mega-menu'); if (megaMenu) megaMenu.classList.add('show'); 1791 }); parentLi.addEventListener('mouseleave', function() { 1792 const megaMenu = this.querySelector('.mega-menu'); if (megaMenu) megaMenu.classList.remove('show'); 1793 }); 1794} } 1795}); 1796 </script>
1796 1797
1797<script src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js" defer></script>
1797
1797<script> 1798document.addEventListener("DOMContentLoaded", function(){ 1799 1800 new WOW().init(); 1801 1802}); 1803</script>
1803 1804 <!-- Footer --> <!-- rsl-sticky-cta --> 1805<div class="rsl-sticky-cta" id="rslStickyCta" role="region" aria-label="Quick actions"> 1806 <div class="rsl-sticky-cta-inner"> 1807 <a href="tel:+442039961505" class="rsl-sticky-cta-primary" aria-label="Call RedSecLabs">ð Call us</a> 1808 <a href="/contact" class="rsl-sticky-cta-secondary" aria-label="Book a scoping call">Book a call</a> 1809 <button class="rsl-sticky-cta-close" id="rslStickyCtaClose" aria-label="Dismiss">×</button> 1810 </div> 1811</div>
1812<script> 1813(function(){ 1814 if (window.innerWidth > 991) return; // mobile only 1815 var path = window.location.pathname.replace(/\/$/, ''); 1816 // Don't show on contact, thankyou, error 1817 if (/\/(contact|thankyou|error)/.test(path)) return; 1818 var bar = document.getElementById('rslStickyCta'); 1819 var closeBtn = document.getElementById('rslStickyCtaClose'); 1820 if (!bar) return; 1821 // Respect dismissal for the session 1822 if (sessionStorage && sessionStorage.getItem('rsl-cta-dismissed') === '1') return; 1823 // Show after user scrolls past ~600px 1824 function maybeShow() { 1825 if (window.scrollY > 600) { 1826 bar.classList.add('is-visible'); 1827 document.body.classList.add('has-sticky-cta'); 1828 } 1829 } 1830 window.addEventListener('scroll', maybeShow, { passive: true }); 1831 maybeShow(); 1832 if (closeBtn) { 1833 closeBtn.addEventListener('click', function() { 1834 bar.classList.remove('is-visible'); 1835 document.body.classList.remove('has-sticky-cta'); 1836 try { sessionStorage.setItem('rsl-cta-dismissed', '1'); } catch(e) {} 1837 }); 1838 } 1839})(); 1840</script>
vendor: 1 bytes, line 1840
1840
1841<script src="/js/contactForm.js?v=20260821c" defer></script>
1841 1842
1842<script src="/js/footerForm.js?v=20260819a" defer></script>
1842
1842<script> 1843document.addEventListener("DOMContentLoaded", function(){ 1844 1845 $(document).ready(function(){ 1846 $('#quoteForm').on('submit', function(event){ 1847 event.preventDefault(); // Prevent the form from submitting the traditional way 1848 // Get the email value from the form var email = $('#quoteForm input[name="email"]').val().toLowerCase(); 1849 1850// Regex for non-business (personal) email domains 1851var personalEmailRegex = /@(gmail\.com|yahoo\.com|hotmail\.com|outlook\.com|aol\.com|icloud\.com|protonmail\.com|mail\.com)$/; if (personalEmailRegex.test(email)) { 1852 alert("Please use a valid business email address (e.g., [email protected])."); return false; 1853} 1854 $.ajax({ 1855 url: '/send_pentest_quote.php', method: 'POST', data: $(this).serialize(), dataType: 'json', success: function(response) { 1856 if(response.status === 'success') { 1857 window.location.href = '/thankyou'; 1858 } else { 1859 window.location.href = '/error'; 1860 } 1861 }, error: function() { 1862 // Redirect to error page if there's an AJAX error window.location.href = '/error'; 1863 } 1864 }); 1865 }); 1866 }); 1867 1868}); 1869</script>
1869 1870
1870<script src="/js/bootstrap.bundle.min.js?v=20260526g" defer></script>
1870 1871
1871<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.9.0/slick.min.js" 1872 integrity="sha512-HGOnQO9+SP1V92SrtZfjqxxtLmVzqZpjFFekvzZVWoiASSQgSr4cw9Kqd2+l8Llp4Gm0G8GIFJ4ddwZilcdb8A==" 1873 crossorigin="anonymous" 1874 referrerpolicy="no-referrer" defer 1875 ></script>
1875 1876
1876<script> 1877document.addEventListener("DOMContentLoaded", function(){ 1878 1879 $(".multiple-logos-slider").slick({ 1880 infinite: false, slidesToShow: 6, slidesToScroll: 1, navigation: true, responsive: [ 1881 { 1882 breakpoint: 768, settings: { 1883 arrows: false, slidesToShow: 3 1884 } 1885 }, 1886 { 1887 breakpoint: 480, settings: { 1888 arrows: false, slidesToShow: 2 1889 } 1890 } 1891 ] 1892 }); $(".review-slider").slick({ 1893 infinite: false, slidesToShow: 1, slidesToScroll: 1, navigation: true 1894 }); $(".blog-slider").slick({ 1895 infinite: false, slidesToShow: 2, slidesToScroll: 1, dots: true, pagination: true, responsive: [ 1896 { 1897 breakpoint: 768, settings: { 1898 slidesToShow: 1 1899 } 1900 }, 1901 { 1902 breakpoint: 480, settings: { 1903 slidesToShow: 1 1904 } 1905 } 1906 ] 1907 }); 1908 1909}); 1910</script>
1910 1911
1911<script src="/js/main.js?v=20260526g" defer></script>
1911 <!-- for navbar scrolling -->
1912<script> 1913document.addEventListener('DOMContentLoaded', function() { 1914 const header = document.getElementById('header'); if (!header) return; let scrollHandler; function enableDesktopBehavior() { 1915 let lastScroll = window.pageYOffset || 0; const delta = 10; const offsetToHide = 80; let lastKnownScrollY = lastScroll; let ticking = false; function updateHeader() { 1916 const current = lastKnownScrollY; if (Math.abs(current - lastScroll) <= delta) { 1917 ticking = false; return; 1918 } const navOpen = !!document.querySelector('.navbar-collapse.show'); if (current > lastScroll && current > offsetToHide && !navOpen) { 1919 header.classList.add('is-hidden'); 1920 } else { 1921 header.classList.remove('is-hidden'); 1922 } if (current > 20) { 1923 header.classList.add('is-scrolled'); 1924 } else { 1925 header.classList.remove('is-scrolled'); 1926 } lastScroll = current; ticking = false; 1927 } scrollHandler = function() { 1928 lastKnownScrollY = window.pageYOffset || 0; if (!ticking) { 1929 window.requestAnimationFrame(updateHeader); ticking = true; 1930 } 1931 }; window.addEventListener('scroll', scrollHandler, { passive: true }); 1932 } function disableDesktopBehavior() { 1933 window.removeEventListener('scroll', scrollHandler); header.classList.remove('is-hidden'); header.classList.remove('is-scrolled'); 1934 } function checkViewport() { 1935 if (window.innerWidth > 768) { 1936 disableDesktopBehavior(); enableDesktopBehavior(); 1937 } else { 1938 disableDesktopBehavior(); // mobile is always sticky 1939 } 1940 } checkViewport(); window.addEventListener('resize', checkViewport); 1941}); 1942</script>
1942 <!-- New Mega Menu JavaScript -->
1942<script> 1943 document.addEventListener('DOMContentLoaded', function() { 1944 // Desktop Mega Menu - Sidebar category switching 1945 const desktopSidebarLinks = document.querySelectorAll('.d-none.d-md-inline-block.sidebar-link'); desktopSidebarLinks.forEach(link => { 1946 link.addEventListener('click', function(e) { 1947 e.preventDefault(); const category = this.getAttribute('data-category'); const parentMenu = this.closest('.mega-menu'); 1948 // Update active sidebar item 1949 parentMenu.querySelectorAll('.sidebar-link').forEach(l => l.classList.remove('active')); this.classList.add('active'); 1950 // Update content 1951 parentMenu.querySelectorAll('.category-content').forEach(content => { 1952 content.classList.remove('active'); 1953 }); const targetContent = parentMenu.querySelector('#content-' + category); if (targetContent) { 1954 targetContent.classList.add('active'); 1955 } 1956 }); 1957 }); 1958 // Mobile Mega Menu - Sidebar category switching 1959 const mobileSidebarLinks = document.querySelectorAll('.d-block.d-md-none.sidebar-link'); mobileSidebarLinks.forEach(link => { 1960 link.addEventListener('click', function(e) { 1961 e.preventDefault(); const category = this.getAttribute('data-category'); const parentMenu = this.closest('.mega-menu'); 1962 // Update active sidebar item 1963 parentMenu.querySelectorAll('.sidebar-link').forEach(l => l.classList.remove('active')); this.classList.add('active'); 1964 // Update content 1965 parentMenu.querySelectorAll('.category-content').forEach(content => { 1966 content.classList.remove('active'); 1967 }); const targetContent = parentMenu.querySelector('#mobile-content-' + category); if (targetContent) { 1968 targetContent.classList.add('active'); 1969 } 1970 }); 1971 }); 1972 // Toggle mobile mega menu 1973 const mobileServiceLink = document.querySelector('.d-block.d-md-none.nav-service'); if (mobileServiceLink) { 1974 mobileServiceLink.addEventListener('click', function(e) { 1975 e.preventDefault(); const megaMenu = this.nextElementSibling; if (megaMenu) { 1976 megaMenu.classList.toggle('show'); 1977 } 1978 }); 1979 } 1980 // Desktop hover show/hide 1981 const desktopNavItem = document.querySelector('.d-none.d-md-inline-block'); if (desktopNavItem) { 1982 desktopNavItem.addEventListener('mouseenter', function() { 1983 const megaMenu = this.querySelector('.mega-menu'); if (megaMenu) { 1984 megaMenu.style.display = 'block'; setTimeout(() => megaMenu.classList.add('show'), 10); 1985 } 1986 }); desktopNavItem.addEventListener('mouseleave', function() { 1987 const megaMenu = this.querySelector('.mega-menu'); if (megaMenu) { 1988 megaMenu.classList.remove('show'); setTimeout(() => megaMenu.style.display = 'none', 300); 1989 } 1990 }); 1991 } 1992 }); 1993 </script>
1993 1994 <!-- New Mega Menu JavaScript --> 1995
1995<script> 1996 const ctaContent = { 1997 assessments: { 1998 icon: 'bi-clipboard-check', title: 'Comprehensive Security Assessments', description: 'Our expert team conducts thorough security assessments to identify vulnerabilities and provide actionable recommendations to strengthen your security posture.', linkText: 'Start Assessment', linkUrl: '/contact' 1999 }, reviews: { 2000 icon: 'bi-search', title: 'Expert Security Reviews & Code Audit', description: 'Get detailed security reviews from our certified professionals. We analyze your configurations, code, and architecture to ensure optimal security.', linkText: 'Request Review', linkUrl: '/contact' 2001 }, network: { 2002 icon: 'bi-shield-check', title: 'Advanced Penetration Testing', description: 'Simulate real-world attacks on your applications and network infrastructure to identify security weaknesses before malicious actors do.', linkText: 'Schedule Test', linkUrl: '/contact' 2003 }, cloud: { 2004 icon: 'bi-cloud-check', title: 'Cloud Security Excellence', description: 'Secure your cloud infrastructure with our specialized cloud penetration testing services across AWS, GCP, and Azure platforms.', linkText: 'Secure Cloud', linkUrl: '/contact' 2005 }, adversary: { 2006 icon: 'bi-bug', title: 'Red Team Operations', description: 'Test your defenses with realistic adversary simulations. Our red team exercises help you understand your true security posture.', linkText: 'Deploy Red Team', linkUrl: '/contact' 2007 }, forensics: { 2008 icon: 'bi-file-medical', title: 'Digital Forensics & Response', description: 'Expert forensics investigation and incident response services to help you recover from security breaches and prevent future incidents.', linkText: 'Get Help Now', linkUrl: '/contact' 2009 }, compliance: { 2010 icon: 'bi-file-check', title: 'Compliance Made Simple', description: 'Navigate complex compliance requirements with confidence. We help you achieve and maintain compliance with industry standards.', linkText: 'Check Compliance', linkUrl: '/contact' 2011 }, web3: { 2012 icon: 'bi-currency-bitcoin', title: 'Web3 Security Pioneers', description: 'Stay ahead in the decentralized world. Our Web3 security experts help secure your smart contracts, DeFi protocols, and blockchain applications.', linkText: 'Secure Web3', linkUrl: '/contact' 2013 }, 2014 cyberessentials: { 2015 icon: 'bi-award', 2016 title: 'Cyber Essentials', 2017 description: 'IASME-aligned certification, Plus readiness and renewal support, built around the 2026 Danzell question set.', 2018 linkText: 'Explore Cyber Essentials', 2019 linkUrl: '/services/cyber-essentials-certification-services' 2020 } 2021 }; 2022 // Function to update CTA content 2023 function updateCtaContent(category) { 2024 const promoElement = document.getElementById('promo-content'); const content = ctaContent[category] || ctaContent['compliance'] || ctaContent['assessments']; promoElement.innerHTML = ` 2025 <div class="promo-content"> 2026 <div class="promo-image"> 2027 <i class="${content.icon}"></i> 2028 </div> <h4 class="promo-title">${content.title}</h4> 2029 <p class="promo-description">${content.description}</p> <a href="${content.linkUrl}" class="promo-link"> 2030 ${content.linkText} <i class="bi bi-arrow-right"></i> 2031 </a> 2032 </div> 2033 `; 2034 } 2035 // Mega menu functionality 2036 function initMegaMenu() { 2037 const navItems = document.querySelectorAll('.navbar-nav .nav-item'); navItems.forEach(item => { 2038 const megaMenu = item.querySelector('.mega-menu'); if (megaMenu) { 2039 let hoverTimeout; 2040 // Initialize with default content 2041 updateCtaContent('assessments'); 2042 // Show mega menu on hover 2043 item.addEventListener('mouseenter', function() { 2044 clearTimeout(hoverTimeout); megaMenu.style.display = 'block'; setTimeout(() => { 2045 megaMenu.classList.add('show'); 2046 }, 10); 2047 }); 2048 // Hide mega menu on mouse leave 2049 item.addEventListener('mouseleave', function() { 2050 megaMenu.classList.remove('show'); hoverTimeout = setTimeout(() => { 2051 megaMenu.style.display = 'none'; 2052 }, 200); 2053 }); 2054 // Handle sidebar navigation 2055 const sidebarLinks = megaMenu.querySelectorAll('.sidebar-link'); const contentSections = megaMenu.querySelectorAll('.category-content'); sidebarLinks.forEach(link => { 2056 link.addEventListener('click', function(e) { 2057 e.preventDefault(); 2058 // Remove active class from all sidebar links 2059 sidebarLinks.forEach(l => l.classList.remove('active')); 2060 // Add active class to clicked link 2061 this.classList.add('active'); 2062 // Hide all content sections 2063 contentSections.forEach(section => { 2064 section.classList.remove('active'); 2065 }); 2066 // Show target content section 2067 const category = this.getAttribute('data-category'); const targetContent = document.getElementById(`content-${category}`); if (targetContent) { 2068 targetContent.classList.add('active');
2069 // Update CTA content for the selected category 2070 updateCtaContent(category); 2071 } 2072 }); 2073 }); 2074 // Make service cards clickable 2075 const serviceCards = megaMenu.querySelectorAll('.service-simple-card'); serviceCards.forEach(card => { 2076 card.addEventListener('click', function(e) { 2077 e.preventDefault(); const href = this.getAttribute('href'); if (href && href !== '#') { 2078 window.location.href = href; 2079 } 2080 }); 2081 }); 2082 } 2083 }); 2084 } 2085 // Initialize when DOM is ready 2086 document.addEventListener('DOMContentLoaded', function() { 2087 initMegaMenu(); 2088 }); 2089 </script>
2089 <!-- js for mobile dropdown -->
2090<script> 2091document.addEventListener("DOMContentLoaded", function() { 2092 // helpers 2093 const mobileBreakpoint = 768; 2094 // toggle mega-menu on clicking the Services button(s) 2095 document.querySelectorAll('.nav-service').forEach(btn => { 2096 btn.addEventListener('click', function (e) { 2097 e.preventDefault(); const menu = this.nextElementSibling; if (!menu || !menu.classList.contains('mega-menu')) return; const opened = menu.classList.toggle('show'); 2098 // prevent background scroll when menu is open 2099 document.body.style.overflow = opened ? 'hidden': ''; 2100 // ensure one section is active when opening 2101 if (opened) setInitialActive(menu); 2102 }); 2103 }); 2104 // Initialize all mega-menu blocks 2105 document.querySelectorAll('.mega-menu').forEach(menu => { 2106 setInitialActive(menu); attachSidebarHandlers(menu); 2107 }); 2108 // Set default active section based on .sidebar-link.active or first link 2109 function setInitialActive(menu) { 2110 const links = menu.querySelectorAll('.mega-menu-sidebar .sidebar-link'); const sections = menu.querySelectorAll('.mega-menu-content .category-content'); 2111 // remove existing active classes 2112 links.forEach(l => l.classList.remove('active')); sections.forEach(s => s.classList.remove('active')); 2113 // find a link already marked active or fallback to first link 2114 let initial = menu.querySelector('.mega-menu-sidebar .sidebar-link.active') || links[0]; if (!initial && links.length) initial = links[0]; if (initial) { 2115 initial.classList.add('active'); const cat = initial.dataset.category; const sec = menu.querySelector(`#content-${cat}`); if (sec) sec.classList.add('active'); 2116 } 2117 } 2118 // Attach click behavior to sidebar links (one handler per link) 2119 function attachSidebarHandlers(menu) { 2120 const links = menu.querySelectorAll('.mega-menu-sidebar .sidebar-link'); const sections = menu.querySelectorAll('.mega-menu-content .category-content'); links.forEach(link => { 2121 // avoid attaching duplicate listeners 2122 if (link._megaListenerAttached) return; link._megaListenerAttached = true; link.addEventListener('click', function (e) { 2123 e.preventDefault(); 2124 // update active classes 2125 links.forEach(l => l.classList.remove('active')); sections.forEach(s => s.classList.remove('active')); this.classList.add('active'); const cat = this.dataset.category; const target = menu.querySelector(`#content-${cat}`); if (target) { 2126 target.classList.add('active'); 2127 // On mobile: smoothly scroll the mega-menu container so the target is visible 2128 if (window.innerWidth <= mobileBreakpoint) { 2129 // compute offset of target relative to menu's scrollTop 2130 const menuRect = menu.getBoundingClientRect(); const targetRect = target.getBoundingClientRect(); const delta = targetRect.top - menuRect.top; const scrollTop = menu.scrollTop + delta; menu.scrollTo({ top: scrollTop, behavior: 'smooth' }); 2131 } else { 2132 // On desktop you may want to keep menu visible at current position; no scroll 2133 } 2134 } 2135 }); 2136 }); 2137 } 2138 // Close open menu on click outside 2139 document.addEventListener('click', (e) => { 2140 document.querySelectorAll('.mega-menu.show').forEach(menu => { 2141 const navService = menu.previousElementSibling; if (menu.contains(e.target) || (navService && navService.contains(e.target))) { 2142 return; // click inside open menu or its toggle; do nothing 2143 } 2144 // otherwise close 2145 menu.classList.remove('show'); document.body.style.overflow = ''; 2146 }); 2147 }); 2148 // close on Escape 2149 document.addEventListener('keydown', (e) => { 2150 if (e.key === 'Escape') { 2151 document.querySelectorAll('.mega-menu.show').forEach(menu => { 2152 menu.classList.remove('show'); document.body.style.overflow = ''; 2153 }); 2154 } 2155 }); 2156}); 2157</script>
2157 2158
2159<script src="/js/megamenu.js?v=20260526g" defer></script>
vendor: 1 bytes, line 2159
2159
2160<script>window.__CF$cv$params={r:'a44182193d121e95',t:'MTc5MDkyMTA1MQ==',u:'01a0fb368cdd7613b1f7357bccf88175',ut:'TMAUwgGSCtnKSuRAMyQpGq_moKyKBhwZmkGqb1JMEL8-1790921051-1.2.1.1-UsS2X96Db.I3iBeTiV1XBzQDz3x9Zr_u7u0ns2_imKPkxMXucheEHFgMJ5I5WRkG8LP6E.9L3f9EoRsEG7ZxHyacZfBKcME43oZZPa2_nJs',i:60};(function(){if(!document.body)return;var s=document.createElement('script');s.src='/cdn-cgi/challenge-platform/scripts/precursor/main.js';document.head.appendChild(s);})();</script>
2160<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"e709bc90265449bea80cef50d9519cc3","r":1,"spa":2}' crossorigin="anonymous"></script>
2160 2161</body> 2162</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.