1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 8 <title>Sign in - CSA Research</title> 9 <meta name="description" content="Our unique market research insights help business and technology leaders create value while profitably growing their global businesses across borders, languages, and cultures."> 10 <meta name="keywords" content="CSA Research, Common Sense Advisory, latest localization market trends, independent market research, translation industry, global business insights, language technology"> 11 <meta name="robots" content="index, follow" /> 12 <link rel="canonical" href="https://csa-research.com/auth/signin" /> 13 14 <link rel="stylesheet" href="https://csa-research.com/assets/css/datepicker-bs5.min.css"> 15 <link rel="stylesheet" href="https://csa-research.com/assets/css/dark-editable.css"> 16 <link rel="stylesheet" href="https://csa-research.com/assets/css/intlTelInput.min.css"> 17 <link rel="stylesheet" href="https://csa-research.com/assets/css/nice-select2.css"> 18 <link rel="stylesheet" href="https://csa-research.com/assets/fontawesome/css/all.min.css"> 19 <link rel="stylesheet" href="https://csa-research.com/assets/js/swiper/swiper-bundle.min.css"> 20 <link rel="stylesheet" href="https://csa-research.com/assets/css/bootstrap.min.css"> 21 <link rel="stylesheet" href="https://csa-research.com/assets/css/app.css?v=20260922"> 22 <link rel="stylesheet" href="https://csa-research.com/assets/css/orgchart.css?v=20260922"> 23 <link rel="stylesheet" href="https://csa-research.com/assets/css/intranet.css?v=20260922"> 24 <link rel="stylesheet" href="https://csa-research.com/assets/css/styles.css?v=20260922"> 25 <link rel="stylesheet" href="https://csa-research.com/assets/css/typography.css?v=20260922"> 26 <link rel="stylesheet" href="https://csa-research.com/assets/css/new-template.css?v=20260922"> 27 <link rel="stylesheet" href="https://csa-research.com/assets/css/councils.css?v=20260922"> 28 29 30 31 32 33 <link rel="icon" type="image/x-icon" href="/favicon.ico" /> 34 <!--[if IE]><link rel="shortcut icon" href="/favicon.ico" /><![endif]--> 35 36 <link rel="manifest" href="/manifest.json"> 37 <link rel="apple-touch-icon" sizes="180x180" href="/assets/icons/apple-touch-icon.png"> 38 <link rel="icon" type="image/png" sizes="32x32" href="/assets/icons/favicon-32x32.png"> 39 <link rel="icon" type="image/png" sizes="16x16" href="/assets/icons/favicon-16x16.png"> 40 <link rel="mask-icon" href="/assets/icons/safari-pinned-tab.svg" color="#035e9b"> 41 <meta name="msapplication-TileColor" content="#035e9b"> 42 <meta name="theme-color" content="#035e9b"> 43 44 45
45<script src="https://csa-research.com/assets/js/bootstrap.bundle.min.js"></script>
45 46 47 48 <!-- Google tag (gtag.js) -->
vendor: 72 bytes, lines 48-49
48 49 <script async src="https://www.googletagmanager.com/gtag/js?id=
49G-8GX1M2XQP2
vendor: 20 bytes, lines 49-50
49"></script> 50
50<script> 51
vendor: 195 bytes, lines 51-57
51window.dataLayer = window.dataLayer || []; 52 53 function gtag() { 54 dataLayer.push(arguments); 55 } 56 gtag('js', new Date()); 57 gtag('config', '
57G-8GX1M2XQP2
vendor: 12 bytes, lines 57-58
57'); 58
58</script>
58 59
59<script type="text/javascript"> 60 (function(c, l, a, r, i, t, y) { 61 c[a] = c[a] || function() { 62 (c[a].q = c[a].q || []).push(arguments) 63 }; 64 t = l.createElement(r); 65 t.async = 1; 66 t.src = "https://www.clarity.ms/tag/" + i; 67 y = l.getElementsByTagName(r)[0]; 68 y.parentNode.insertBefore(t, y); 69 })(window, document, "clarity", "script", "vaztkb99jw"); 70 </script>
70 71 72 73</head> 74 75<body > 76 77 <div class="scrolltop d-print-none" id="scroll-top" role="button" aria-label="Scroll back to top"> 78 <i class="fas fa-arrow-up scrolltop__icon" aria-hidden="true"></i> 79 </div> 80 81 <div id="pageloader"> 82 <img src="https://csa-research.com/assets/images/loader.svg" alt="Loading......" loading="eager" decoding="async" /> 83 </div> 84 85 <noscript> 86 <div class="alert alert-danger">This website requires javascript enabled in your browser to function</div> 87 </noscript> 88 89 <a 90 id="veda-cta" 91 class="veda-cta d-print-none" 92 href="https://csa-research.com/l/veda-ai-assistant" 93 data-bs-toggle="tooltip" 94 data-bs-placement="left" 95 data-bs-title="Ask questions and explore CSA Research insights instantly" 96 aria-label="Discover CSA AI Veda assistant"> 97 98 <span class="veda-icon"> 99 <i class="fal fa-comment" aria-hidden="true"></i> 100 </span> 101 102 <span class="veda-label"> 103 Discover CSA AI Veda⢠104 </span> 105 </a> 106 107 108
108<script> 109 document.addEventListener("DOMContentLoaded", () => { 110 const footer = document.querySelector("footer"); 111 const btn = document.querySelector(".veda-cta"); 112 113 if (!footer || !btn) return; 114 115 const observer = new IntersectionObserver((entries) => { 116 entries.forEach(entry => { 117 if (entry.isIntersecting) { 118 btn.classList.remove("footer-hide"); 119 120 // restart animation 121 btn.classList.remove("animate"); 122 void btn.offsetWidth; 123 124 btn.classList.add("footer-hide", "animate"); 125 } else { 126 btn.classList.remove("footer-hide", "animate"); 127 } 128 }); 129 }, { 130 threshold: 0.1 131 }); 132 133 observer.observe(footer); 134 }); 135 </script>
135 136 137 138 139 <!-- App Sidebar --> 140 <div class="modal fade panelbox panelbox-left" id="sidebarPanel" tabindex="-1" role="dialog" aria-label="Sidebar Navigation"> 141 <div class="modal-dialog" role="document"> 142 <div class="modal-content"> 143 <div class="modal-body p-0"> 144 <div class="profileBox bg-primary"> 145 <div class="in"> 146 <strong>CSA Research</strong> 147 <div class="text-muted"> 148 Navigate </div> 149 </div> 150 <a href="javascript:;" class="close-sidebar-button" data-bs-dismiss="modal" aria-label="Close Sidebar"> 151 <i class="fal fa-times" aria-hidden="true"></i> 152 </a> 153 </div> 154 155 156 157 <ul class="listview flush transparent no-line image-listview mt-2"> 158 <div class="listview-title mt-2 mb-1"> 159 <span>Navigate</span> 160 </div> 161 <!-- Mobile Navbar --> 162 <ul class="mobile-navigation-menu list-unstyled border-bottom"> 163 <!-- What We Offer --> 164 <li class="menu-item"> 165 <a class="d-flex justify-content-between align-items-center py-2 link-highlighted" 166 data-bs-toggle="collapse" 167 href="#offerMenu" 168 role="button" 169 aria-expanded="false" 170 aria-controls="offerMenu"> 171 What We Offer <i class="far fa-chevron-down small hide-laptop" aria-hidden="true"></i> 172 </a> 173 <div id="offerMenu" class="collapse mega-mobile-navigation-menu" data-bs-parent=".mobile-navigation-menu"> 174 <div class="mega-container ps-3 pb-2"> 175 <a class="d-block py-1" href="/l/veda-ai-assistant">CSA AI Vedaâ¢</a> 176 <a href="/l/research" class="d-block py-1">Research</a> 177 <a href="/l/interactive-tools" class="d-block py-1">Interactive Tools</a> 178 <a href="/l/advisory-and-consulting" class="d-block py-1">Advisory and Consulting</a> 179 <a href="/l/councils" class="d-block py-1">Leadership Council</a> 180 <a href="/l/mergers-and-acquisitions" class="d-block py-1">M&A</a> 181 </div> 182 </div> 183 </li> 184 185 <!-- Insights --> 186 <li class="menu-item"> 187 <a class="d-flex justify-content-between align-items-center py-2 link-highlighted" 188 data-bs-toggle="collapse" 189 href="#insightsMenu" 190 role="button" 191 aria-expanded="false" 192 aria-controls="insightsMenu"> 193 Insights <i class="far fa-chevron-down small hide-laptop" aria-hidden="true"></i> 194 </a> 195 <div id="insightsMenu" class="collapse mega-mobile-navigation-menu" data-bs-parent=".mobile-navigation-menu"> 196 <div class="mega-container ps-3 pb-2"> 197 <a href="/l/post-tms-global-content-layer" class="d-block py-1">The Evolution of the TMS</a> 198 <a href="/l/post-localization-workshop" class="d-block py-1">The Post-Localization Workshop</a> 199 <a href="/l/the-transformational-imperative-reframing-global-content"
199class="d-block py-1">The Transformational Imperative</a> 200 <a href="/l/language-risk-in-depth-series" class="d-block py-1">Language Risk In-Depth Series</a> 201 <a href="/l/gen-ai" class="d-block py-1">GenAI Program</a> 202 <a href="/l/gms" class="d-block py-1">Global Market Survey</a> 203 <a href="/l/open-access-resources" class="d-block py-1">Open Access Resources</a> 204 <a href="/l/leadership" class="d-block py-1">Thought Leadership</a> 205 <a href="/l/research-for-marketers" class="d-block py-1">Research for Marketers</a> 206 <a href="/l/knowledge-graphs" class="d-block py-1">Knowledge Graphs</a> 207 <a href="/l/gender-family-survey" class="d-block py-1">Gender and Family Survey</a> 208 </div> 209 </div> 210 </li> 211 212 <!-- Blogs & Events --> 213 <li class="menu-item"> 214 <a class="d-flex justify-content-between align-items-center py-2 link-highlighted" 215 data-bs-toggle="collapse" 216 href="#blogsMenu" 217 role="button" 218 aria-expanded="false" 219 aria-controls="blogsMenu"> 220 Blogs & Events <i class="far fa-chevron-down small hide-laptop" aria-hidden="true"></i> 221 </a> 222 <div id="blogsMenu" class="collapse mega-mobile-navigation-menu" data-bs-parent=".mobile-navigation-menu"> 223 <div class="mega-container ps-3 pb-2"> 224 <a href="/l/blog" class="d-block py-1">Blogs</a> 225 <a href="/l/events" class="d-block py-1">Events</a> 226 <a href="/l/media" class="d-block py-1">Media</a> 227 <a href="/l/interact-with-us" class="d-block py-1">Interact With Us</a> 228 </div> 229 </div> 230 </li> 231 232 <!-- About Us --> 233 <li class="menu-item"> 234 <a class="d-flex justify-content-between align-items-center py-2 link-highlighted" 235 data-bs-toggle="collapse" 236 href="#aboutMenu" 237 role="button" 238 aria-expanded="false" 239 aria-controls="aboutMenu"> 240 About Us <i class="far fa-chevron-down small hide-laptop" aria-hidden="true"></i> 241 </a> 242 <div id="aboutMenu" class="collapse mega-mobile-navigation-menu" data-bs-parent=".mobile-navigation-menu"> 243 <div class="mega-container ps-3 pb-2"> 244 <a href="/l/our-story" class="d-block py-1">Our Story</a> 245 <a href="/l/leadership-members" class="d-block py-1">Our Team</a> 246 <a href="/l/contact" class="d-block py-1">Contact Us</a> 247 </div> 248 </div> 249 </li> 250 </ul> 251 252 <div class="listview-title mt-2 mb-1">
253 <span>Log in</span> 254 </div> 255 256 <li> 257 <a href="#" type="button" data-bs-toggle="modal" data-bs-target="#accessModal" class="item"> 258 <div class="icon-box text-dark me-1"> 259 <i class="fa-light fa-book"></i> 260 </div> 261 <div class="in"> 262 Access Research 263 </div> 264 </a> 265 </li> 266 <li> 267 <a href="/l/contact" class="item arrowed"> 268 <div class="icon-box text-dark me-1"> 269 <i class="fal fa-sign-in-alt"></i> 270 </div> 271 <div class="in"> 272 Become a Client 273 </div> 274 </a> 275 </li> 276 277 <li> 278 <a href="https://csa-research.com/auth/signin" type="button" class="item arrowed" target="_blank" rel="noopener"> 279 <div class="icon-box text-primary me-1"> 280 <i class="fal fa-sign-in-alt" aria-hidden="true"></i> 281 </div> 282 <div class="in text-primary"> 283 Sign in </div> 284 </a> 285 </li> 286 287 <div class="listview-title mt-2 mb-1 border-top pt-3"> 288 <span>Follow us</span> 289 </div> 290 <li> 291 <a rel="nofollow noopener noreferrer" target="_blank" href="https://www.facebook.com/CSAResearch" class="item arrowed" aria-label="Visit CSA Research on Facebook"> 292 <div class="icon-box text-dark me-1"> 293 <i class="fab fa-facebook-f" aria-hidden="true"></i> 294 </div> 295 <div class="in"> 296 <div>Facebook</div> 297 </div> 298 </a> 299 </li> 300 <li> 301 <a rel="nofollow noopener noreferrer" target="_blank" href="https://x.com/csa_research" class="item arrowed" aria-label="Visit CSA Research on X"> 302 <div class="icon-box text-dark me-1"> 303 <i class="fab fa-x" aria-hidden="true"></i> 304 </div> 305 <div class="in"> 306 <div>X</div> 307 </div> 308 </a> 309 </li> 310 <li> 311 <a rel="nofollow noopener noreferrer" target="_blank" href="https://www.linkedin.com/company/csa-research" class="item arrowed" aria-label="Visit CSA Research on LinkedIn"> 312 <div class="icon-box text-dark me-1"> 313 <i class="fab fa-linkedin" aria-hidden="true"></i> 314 </div> 315 <div class="in"> 316 <div>Linkedin</div> 317 </div> 318 </a> 319 </li> 320 321 </ul> 322 323 </div> 324 325 </div> 326 </div> 327 </div> 328 <!-- * App Sidebar --> 329 330 <!-- Access Research Modal --> 331 <div class="modal fade" id="accessModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"> 332 <div class="modal-dialog"> 333 <div class="modal-content"> 334 <div class="modal-header"> 335 <h1 class="modal-title fs-5" id="exampleModalLabel">Legal Notice and Usage Restrictions</h1> 336 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 337 </div> 338 <div class="modal-body"> 339 <p>CSA Research materials are copyrighted and provided solely to authorized users.</p> 340 <p>You are <span class="fw-semibold">prohibited</span> from submitting any CSA Research content to generative AI tools, machine-learning systems, public or shared platforms, or any service capable of storing, training on, or redistributing the material. You may not copy, record, share, translate, or upload any portion of this content beyond your licensed rights</p> 341 <p class="mb-0">Unauthorized use, disclosure, or distribution may violate applicable laws. For permissions or to report misuse, contact <a href="mailto:[email protected]" target="_blank" rel="noopener noreferrer" class="text-primary text-decoration-underline">
341[email protected].</a></p> 342 </div> 343 <div class="modal-footer"> 344 <a href="https://insights.csa-research.com/" id="agreeContinueBtn" target="_blank" rel="noopener noreferrer" type="button" class="btn btn-primary rounded">Agree and continue</a> 345 </div> 346 </div> 347 </div> 348 </div> 349 350
350<script> 351 const navbar = document.getElementById('stickyHeader'); 352 const separator = document.querySelector('.nav-separator'); 353 354 if (navbar && separator) { 355 356 const updateHeight = () => { 357 separator.style.height = navbar.offsetHeight + 'px'; 358 }; 359 360 // Initial run 361 updateHeight(); 362 363 // Watch navbar size changes (BEST way) 364 const resizeObserver = new ResizeObserver(updateHeight); 365 resizeObserver.observe(navbar); 366 367 // Also update on scroll (for sticky/shrinking navbars) 368 window.addEventListener('scroll', updateHeight); 369 370 // Safety on window resize 371 window.addEventListener('resize', updateHeight); 372 } 373 </script>
373 374 375
375<script> 376 document.getElementById('agreeContinueBtn').addEventListener('click', function() { 377 // Open the site in a new tab 378 window.open('https://insights.csa-research.com/', '_blank'); 379 380 // Get the modal instance and hide it 381 const modalEl = document.getElementById('accessModal'); 382 const modalInstance = bootstrap.Modal.getInstance(modalEl); 383 384 if (modalInstance) { 385 modalInstance.hide(); 386 } 387 }); 388 </script>
388 389 390
390<script> 391 window.addEventListener('load', function() { 392 /*==================== SHOW SCROLL TOP ====================*/ 393 const scrollTop = document.getElementById('scroll-top'); 394 395 function scrollUp() { 396 // When the scroll is higher than 560 viewport height, add the show-scroll class to the a tag with the scroll-top class 397 this.scrollY >= 50 ? 398 scrollTop.classList.add('show-scroll') : 399 scrollTop.classList.remove('show-scroll'); 400 } 401 402 scrollTop.addEventListener('click', function() { 403 document.body.scrollTop = 0; 404 document.documentElement.scrollTop = 0; 405 }) 406 407 408 window.addEventListener('scroll', scrollUp); 409 410 }) 411 </script>
411<section class="centeral position-relative overflow-hidden"> 412 <div class="gradient-blur"></div> 413 <div class="container position-relative"> 414 <div class="row"> 415 <div class="col-12 col-md-8 col-lg-7 col-xl-5 mx-auto"> 416 <div class="text-center my-5"> 417 <a href="https://csa-research.com/"> 418 <img class="img-fluid" style="max-width:230px;" src="https://csa-research.com/assets/images/logoDark.png" alt="CSA Research"> 419 </a> 420 </div> 421 <div class="bg-white shadow p-3 pt-sm-4 pb-sm-5 px-sm-5 mb-4 rounded"> 422 <h3 class="text-center mb-2">Sign in</h3> 423 <p class="text-center mb-4 px-lg-3">Sign up or log in to access CSA Researchâs interactive Data Tools. Looking for our Research library? <a target="_blank" href="https://insights.csa-research.com/" class="text-primary">Click here</a></p> 424 <hr class="mx-n3 mx-sm-n5"> 425 <form method="post" action="https://csa-research.com/auth/signin" class="submitedForm"> 426 <div class="mb-3"> 427 <label for="email" class="form-label">Email</label> 428 <input type="email" class="form-control" required name="email" id="email" maxlength="60" dir="ltr"> 429 </div> 430 <div class="mb-3"> 431 <label for="password" class="form-label">Password</label> 432 <input type="password" class="form-control" required name="password" id="password" maxlength="32" /> 433 </div> 434 <div class="d-flex flex-column flex-sm-row justify-content-sm-between align-items-sm-center my-3"> 435 <div class="d-grid gap-2 mb-3"> 436 <button class="btn btn-primary btn-lg fs-5 py-2" type="submit" id="sendnow">Sign in</button> 437 </div> 438 <div class="form-checkbox-area mb-3"> 439 <input type="checkbox" name="remember" value="1" class="checkboxed" id="remember" style="display:none" checked /> 440 <label for="remember" class="toggle"><span></span></label> 441 <label for="remember" class="form-checkbox">Stay connected</label> 442 </div> 443 </div> 444 <div class="text-muted mb-1"> 445 Forgot password? <a href="https://csa-research.com/auth/reset"> Reset password</a> 446 </div> 447 <div class="text-muted mb-1"> 448 You donât have an account? <a href="https://csa-research.com/auth/signup"> Sign up</a> 449 </div> 450 <!-- <div class="text-muted mb-0"> 451 You didnât receive a confirmation email. <a href="https://csa-research.com/auth/resend"> Resend confirmation</a> 452 </div> --> 453 <input type="hidden" name="token" id="token" value="29b039f2548a0fb58d950d66624172f6b3ced0200e0a241ca24a5354d26f2c83" /> </form> 454 </div> 455 </div> 456 </div> 457 </div> 458</section> 459 460<!-- Form Action Sheet --> 461<div class="modal fade action-sheet" id="actionSheetForm" tabindex="-1" role="dialog" aria-hidden="true"> 462 <div class="modal-dialog" role="document"> 463 <div class="modal-content"> 464 <div class="modal-header"> 465 <h5 class="modal-title">Please Sign In to Continue</h5> 466 </div> 467 <div class="modal-body"> 468 <div class="action-sheet-content"> 469 // TEXT 470 </div> 471 </div> 472 </div> 473 </div> 474</div> 475 476<!-- Notification Modal --> 477<div class="modal fade notification-modal" id="Model" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="ModelLabel" aria-hidden="true"> 478 <div class="modal-dialog modal-dialog-centered"> 479 <div class="modal-content"> 480 <div class="modal-header"> 481 <h5 class="modal-title" id="ModelLabel"><i class="fas fa-bell shaking me-2" aria-hidden="true"></i> Notification</h5> 482 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" title="Close"></button> 483 </div> 484 <div class="modal-body"> 485 <div id="responsestatus" class="py-3 fs-6 text-center"></div> 486 <div id="SuccessAnim" class="text-center" style="display:none;"> 487 <svg id="successAnimation" class="animated" xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewB
487ox="0 0 70 70" aria-hidden="true"> 488 <circle id="successAnimationCircle" cx="35" cy="35" r="24" stroke="#61a743" stroke-width="2" stroke-linecap="round" fill="transparent" /> 489 <polyline id="successAnimationCheck" stroke="#61a743" stroke-width="2" points="23 34 34 43 47 27" fill="transparent" /> 490 </svg> 491 </div> 492 </div> 493 </div> 494 </div> 495</div> 496 497<div class="modal fade notification-modal" id="contactSalesModel" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="contactSalesModelTitle" aria-hidden="true"> 498 <div class="modal-dialog modal-dialog-centered"> 499 <div class="modal-content"> 500 <div class="modal-header"> 501 <h5 class="modal-title text-primary" id="contactSalesModelTitle"></h5> 502 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" title="Close"></button> 503 </div> 504 <div class="modal-body"> 505 <div class="border-bottom pt-3 mb-3 fs-6" id="contactSalesModelContent"></div> 506 <a href="https://csa-research.com/contact" class="btn btn-secondary mb-0"> 507 Contact sales <i class="fal fa-arrow-right ms-3" aria-hidden="true"></i> 508 </a> 509 </div> 510 </div> 511 </div> 512</div> 513 514<div class="modal fade notification-modal" id="acceptTermsModel" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="acceptTermsModelTitle" aria-hidden="true"> 515 <div class="modal-dialog modal-dialog-centered modal-lg"> 516 <div class="modal-content"> 517 <div class="modal-header"> 518 <h5 class="modal-title text-primary" id="acceptTermsModelTitle">Legal Notice and Usage Restrictions</h5> 519 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" title="Close"></button> 520 </div> 521 <div class="modal-body"> 522 <p class="fs-6"> 523 CSA Research materials are copyrighted and provided solely to authorized users.<br><br>You are prohibited from submitting any CSA Research content to generative AI tools, machine-learning systems, public or shared platforms, or any service capable of storing, training on, or redistributing the material. You may not copy, record, share, translate, or upload any portion of this content beyond your licensed rights.<br><br>Unauthorized use, disclosure, or distribution may violate applicable laws. For permissions or to report misuse, contact <a href="mailto:[email protected]">[email protected]</a>. </p> 524 </div> 525 <div class="modal-footer justify-content-end"> 526 <button type="button" class="btn btn-primary" id="acceptTerms" data-action="https://insights.csa-research.com/">Agree and continue</button> 527 </div> 528 </div> 529 </div> 530</div> 531 532 <div id="custom-cookie-banner" role="region" aria-label="Cookie Consent" style="display: none; position: fixed; bottom: 0; left: 0; width: 100%; background-color: #02426d; background-image: radial-gradient(37.73% 127.55% at 32.29% -27.55%, #066291 0%, #02426d 100%); color: white; padding: 15px 20px; text-align: center; z-index: 9999; box-sizing: border-box;"> 533 <p style="font-size: 15px; max-width: 768px; margin: 0 auto 10px;"> 534 We use cookies and similar tracking technologies to analyze site traffic and understand how you interact with our website. This includes using tools to capture behavioral metrics and heatmaps so we can improve our site design. By clicking 'Accept', you consent to this tracking. You can learn more in our <a href="/l/privacy" style="color: white; text-decoration: underline;" target="_blank" rel="noopener">Privacy Policy</a>. 535 </p> 536 <div style="display: flex; justify-content: center; gap: 10px;"> 537 <button id="btn-accept-cookies" class="btn btn-success btn-sm">Accept</button> 538 <button id="btn-decline-cookies" class="btn btn-danger btn-sm">Decline</button> 539 </div> 540 </div> 541 542
542<script> 543 document.addEventListener("DOMContentLoaded", function() { 544 const banner = document.getElementById('custom-cookie-banner'); 545 const btnAccept = document.getElementById('btn-accept-cookies'); 546 const btnDecline = document.getElementById('btn-decline-cookies'); 547 548 // 1. Check localStorage for existing consent 549 const userConsent = localStorage.getItem('site_cookie_consent'); 550 551 if (!userConsent) { 552 // Show banner if no choice has been made yet 553 banner.style.display = 'block'; 554 } else if (userConsent === 'granted') { 555 // If previously accepted, tell Clarity on page load 556 window.clarity('consentv2', { 557 'ad_Storage': 'granted', 558 'analytics_Storage': 'granted' 559 }); 560 } else if (userConsent === 'denied') { 561 // If previously declined, enforce denial on page load 562 window.clarity('consentv2', { 563 'ad_Storage': 'denied', 564 'analytics_Storage': 'denied' 565 }); 566 } 567 568 // 2. Event Listener for 'Accept' 569 btnAccept.addEventListener('click', function() { 570 // Save choice in the browser 571 localStorage.setItem('site_cookie_consent', 'granted'); 572 573 // Push the consent signal to Clarity 574 window.clarity('consentv2', { 575 'ad_Storage': 'granted', 576 'analytics_Storage': 'granted' 577 }); 578 579 // Hide the banner 580 banner.style.display = 'none'; 581 }); 582 583 // 3. Event Listener for 'Decline' 584 btnDecline.addEventListener('click', function() { 585 // Save choice in the browser 586 localStorage.setItem('site_cookie_consent', 'denied'); 587 588 // Push the denial signal to Clarity 589 window.clarity('consentv2', { 590 'ad_Storage': 'denied', 591 'analytics_Storage': 'denied' 592 }); 593 594 // Hide the banner 595 banner.style.display = 'none'; 596 }); 597 }); 598 </script>
598 599 600
601<script src="https://csa-research.com/assets/js/app.js?v=20260922"></script>
vendor: 1 bytes, line 601
601
602<script src="/assets/js/contact-section.js"></script>
602 603</body> 604 605</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.