1<!DOCTYPE html> 2<html dir="ltr" lang="en" class="no-js usn"> 3<head> 4
4<script> 5(function() { 6 const ZI = "js.zi-scripts.com"; 7 8 // Block script tags loading ZI 9 const origSetAttr = HTMLScriptElement.prototype.setAttribute; 10 HTMLScriptElement.prototype.setAttribute = function(name, value) { 11 if (name === "src" && value && value.includes(ZI)) { 12 // console.warn("Blocked ZI script:", value); 13 return; 14 } 15 return origSetAttr.apply(this, arguments); 16 }; 17 18 // Block fetch to ZI without overriding fetch globally 19 const origFetch = window.fetch; 20 window.fetch = function(url, opts) { 21 if (typeof url === "string" && url.includes(ZI)) { 22 // console.warn("Blocked ZI fetch:", url); 23 return Promise.resolve(new Response(null, { status: 403 })); 24 } 25 return origFetch(url, opts); 26 }; 27 28})(); 29</script>
29 30 31 32 33 34 35 <!-- Google Tag Manager --> 36 <link rel="dns-prefetch" href="//www.googletagmanager.com"> 37 38 <link id="headerCss" rel="stylesheet" media="(max-width: 767px)" href="/sb/sitebuilder-css-small-header-03-sm-bundle.css.v1" /> 39
39<script> 40 const cssLink = document.getElementById('headerCss'); 41 cssLink.onerror = function () { 42 const fallback = document.createElement('link'); 43 fallback.rel = 'stylesheet'; 44 fallback.href = '/css/uskinned/layouts/header-small/sitebuilder-css-small-header-03-sm-bundle.css'; 45 fallback.media = "(max-width: 767px)"; // mobile-only 46 document.head.appendChild(fallback); 47 }; 48 </script>
48 49
49<script src="https://cdn-eu.pagesense.io/js/20115217736/8731ffd5dd8c464883a9c8caeabcb0f9.js"></script>
vendor: 2 bytes, line 49
49
50<script> 51document.addEventListener("DOMContentLoaded", function () { 52 const maxCoverMB = 6; 53 const maxCvMB = 16; 54 const maxCombinedMB = 20; 55 const remove =1; 56 57 const fileInputs = { 58 cover: document.querySelector('.coverletter input[type="file"]'), 59 cv: document.querySelector('.cv2 input[type="file"]') 60 }; 61 62 function getSizeMB(file) { 63 return file ? file.size / (1024 * 1024) : 0; 64 } 65 66 function validateFiles() { 67 const coverSize = getSizeMB(fileInputs.cover?.files[0]); 68 const cvSize = getSizeMB(fileInputs.cv?.files[0]); 69 const totalSize = coverSize + cvSize; 70 71 if (coverSize > maxCoverMB) { 72 alert(`Cover Letter must be ${maxCoverMB-remove}MB or less.`); 73 fileInputs.cover.value = ""; 74 return; 75 } 76 77 if (cvSize > maxCvMB) { 78 alert(`CV must be ${maxCvMB-remove}MB or less.`); 79 fileInputs.cv.value = ""; 80 return; 81 } 82 83 if (totalSize > maxCombinedMB) { 84 alert(`Combined file size must not exceed ${maxCombinedMB-1}MB.`); 85 if (fileInputs.cover) fileInputs.cover.value = ""; 86 if (fileInputs.cv) fileInputs.cv.value = ""; 87 } 88 } 89 90 if (fileInputs.cover) { 91 fileInputs.cover.addEventListener('change', validateFiles); 92 } 93 94 if (fileInputs.cv) { 95 fileInputs.cv.addEventListener('change', validateFiles); 96 } 97}); 98 99</script>
99 100 <meta charset="utf-8"> 101 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=2"> 102 <link rel="canonical" href="https://www.futuresource-consulting.com/industries/" /> 103 <title>Industries We Serve – Markets, Solutions and Insights</title> 104 <meta name="description" content="Futuresource Consulting highlights industries served with market analysis, tailored solutions, growth insights, and expert consulting support."> 105 <link rel="alternate" hreflang="en-us" href="https://www.futuresource-consulting.com/industries/" /> 106 <meta name="twitter:card" content="summary_large_image" /> 107 <meta property="og:type" content="website"> 108 <meta property="og:title" content="Industries We Serve – Markets, Solutions and Insights" /> 109 <meta property="og:image" content="" /> 110 <meta property="og:url" content="https://www.futuresource-consulting.com/industries/" /> 111 <meta property="og:description" content="Futuresource Consulting highlights industries served with market analysis, tailored solutions, growth insights, and expert consulting support." /> 112 <meta property="og:site_name" content="Futuresource" /> 113 <meta name="robots" content="index,follow"> 114 115 116 <link href="/sb/sitebuilder-ltr-css-bundle.css.v1" media="screen" rel="stylesheet" /> 117<link href="/sb/sitebuilder-css-bundle.css.v1" media="screen" rel="stylesheet" /> 118<link href="/sb/sitebuilder-css-small-header-03-sm-bundle.css.v1" media="screen and (min-width:0) and (max-width:991px)" rel="stylesheet" /> 119<link href="/sb/sitebuilder-css-large-header-05-lg-bundle.css.v1" media="screen and (min-width:992px)" rel="stylesheet" /> 120<link rel="stylesheet" media="screen" href="/uSkinned/css/generated/61018974-53c1-45c2-b64f-cfe2df95f2eb.css?version=639240032420270000" /> 121<link href="/sb/sitebuilder-css-prnt-bundle.css.v1" media="print" rel="stylesheet" /> 122 123 124 125 126 <link rel="shortcut icon" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=32&height=32"> 127 <link rel="apple-touch-icon" sizes="57x57" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=57&height=57"> 128 <link rel="apple-touch-icon" sizes="60x60" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=60&height=60"> 129 <link rel="apple-touch-icon" sizes="72x72" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=72&height=72"> 130 <link rel="apple-touch-icon" sizes="76x76" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=76&height=76"> 131 <link rel="apple-touch-icon" sizes="114x114" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=114&height=114"> 132 <link rel="apple-touch-icon" sizes="120x120" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=120&height=120"> 133 <link rel="apple-touch-icon" sizes="144x144" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=144&height=144"> 134 <link rel="apple-touch-icon" sizes="152x152" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=152&height=152"> 135 <link rel="apple-touch-icon" sizes="180x180" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=180&height=180"> 136 <link rel="icon" sizes="16x16" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=16&height=16"> 137 <link rel="icon" sizes="32x32" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=32&height=32"> 138 <link rel="icon" sizes="96x96" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=96&height=96"> 139 <link rel="icon" sizes="192x192" type="image/png" href="/media/jsmhdqtt/favallblue.png?width=192&height=192"> 140 <meta name="msapplication-square70x70logo" content="/media/jsmhdqtt/favallblue.png?width=70&height=70" /> 141 <meta name="msapplication-square150x150logo" content="/media/jsmhdqtt/favallblue.png?width=150&height=150" /> 142 <meta name="msapplication-wide310x150logo" content="/media/jsmhdqtt/favallblue.png?width=310&height=150" /> 143 <meta name="msapplication-square310x310logo" content="/media/jsmhdqtt/favallblue.png?width=310&height=310" /> 144 145 146 <!-- Google Tag Manager --> 147
147<script>
vendor: 373 bytes, lines 147-152
147 148 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 149 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 150 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 151 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 152 })(window,document,'script','dataLayer','
152GTM-WWQKXR2
vendor: 3 bytes, line 152
152');
152</script>
152 153 <!-- End Google Tag Manager --> 154 155 156
156<script type="application/ld+json"> 157 { 158 "@context": "https://schema.org", 159 "@graph": [ 160 { 161 "@type": "Organization", 162 "@id": "https://www.futuresource-consulting.com/", 163 "name": "Futuresource Consulting", 164 "url": "https://www.futuresource-consulting.com/", 165 "logo": "https://www.futuresource-consulting.com/media/knwlxpuk/futuresource-logo-colour-large-whitebg.png", 166 "sameAs": [ 167 "https://www.linkedin.com/company/futuresource-consulting/", 168 "https://x.com/Futuresourcer", 169 "https://www.facebook.com/FuturesourceConsulting" 170 ], 171 "description": "Futuresource Consulting is a global market research and consultancy firm. For over 35 years, we have provided insights, data, and expertise to world-leading technology and media brands to help accelerate their growth journeys.", 172 "email": "[email protected]", 173 "telephone": "+44-1582-500100", 174 "address": { 175 "@type": "PostalAddress", 176 "streetAddress": "1st Floor", 177 "addressLocality": "4 Beaconsfield Rd", 178 "addressRegion": "St Albans", 179 "postalCode": "AL1 3RD", 180 "addressCountry": "GB" 181 } 182 }, 183 { 184 "@type": "Report", 185 "@id": "https://www.futuresource-consulting.com/market-reports/futuresource-audio-brand-leader-board/", 186 "name": "Futuresource Audio Brand Leader Board", 187 "headline": "Futuresource Audio Brand Leader Board", 188 "description": "The Futuresource Audio Brand Leader Board H1 2025 delivers an authoritative overview of global audio brand performance, spanning the key product categories of Headphones, True Wireless, Hi-Fi Systems, Soundbars, Wireless Speakers, and AV Receivers.", 189 "url": "https://www.futuresource-consulting.com/market-reports/futuresource-audio-brand-leader-board/", 190 "inLanguage": "en", 191 "datePublished": "2026-03-10", 192 "dateModified": "2026-03-10", 193 "author": { 194 "@type": "Organization", 195 "name": "Futuresource Consulting" 196 }, 197 "publisher": { 198 "@type": "Organization", 199 "name": "Futuresource Consulting" 200 }, 201 "about": [ 202 { "@type": "Thing", "name": "Consumer Electronics" }, 203 { "@type": "Thing", "name": "Market Forecasting" } 204 ], 205 "keywords": [ 206 "market research report", 207 "industry forecast", 208 "technology market analysis" 209 ], 210 "isAccessibleForFree": false 211 }, 212 { 213 "@type": "Article", 214 "@id": "https://www.futuresource-consulting.com/the-source/industry-pulse/soundbars-enter-new-phase-as-consumer-purchase-journey-evolves/", 215 "mainEntityOfPage": { 216 "@type": "WebPage", 217 "@id": "https://www.futuresource-consulting.com/the-source/industry-pulse/soundbars-enter-new-phase-as-consumer-purchase-journey-evolves/" 218 }, 219 "headline": "Soundbars Enter New Phase as Consumer Purchase Journey Evolves", 220 "description": "The latest Futuresource consumer research reveals how AI, influencers and retail demonstrations are reshaping soundbar buying behaviour", 221 "image": [ 222 "https://www.futuresource-consulting.com/media/knwlxpuk/futuresource-logo-colour-large-whitebg.png?format=webp" 223 ], 224 "author": { "@type": "Person", "name": "Author Name" }, 225 "publisher": { 226 "@type": "Organization", 227 "name": "Futuresource Consulting", 228 "logo": { 229 "@type": "ImageObject", 230 "url": "https://www.futuresource-consulting.com/media/knwlxpuk/futuresource-logo-colour-large-whitebg.png?format=webp" 231 } 232 }, 233 "datePublished": "2026-03-10", 234 "dateModified": "2026-03-10", 235 "articleSection": "Market Insights", 236 "keywords": [ 237 "market research", 238 "technology trends",
239 "industry analysis" 240 ], 241 "inLanguage": "en" 242 } 243 ] 244 } 245 </script>
245 246 247 248</head> 249<body 250 251 class="body-bg body-bg-linear header-05-lg header-03-sm hide_header-on-scroll-lg hide_header-on-scroll-sm directional-icons-chevron full-page has-heading-seperator-below secondary-navigation-underline-link-hover content-underline-link-hover footer-underline-link-hover zoom_hover" 252 253> 254 255 <!-- Google Tag Manager (noscript) -->
vendor: 91 bytes, lines 255-257
255 256 <noscript> 257 <iframe src="https://www.googletagmanager.com/ns.html?id=
257GTM-WWQKXR2
vendor: 123 bytes, lines 257-260
257" 258 height="0" width="0" style="display:none;visibility:hidden"></iframe> 259 </noscript> 260
260<!-- End Google Tag Manager (noscript) --> 261 262 263 264 <!-- Skip links --> 265 <a class="skip-to-content" id="skip-to-content-link" href="#site-content">Skip to main content</a> 266 <a class="skip-to-content" id="skip-to-footer-link" href="#site-footer">Skip to footer</a> 267 <!--// Skip links --> 268 269 <!-- Site --> 270 <div id="site"> 271 272 <!-- Header --> 273 <!--// Header --> 274 275 276 277 <input type="hidden" id="accordionActiveFlag" value="false" /> 278 <div id="header-section-large" class="header-section"> 279 <header id="site-header" class="header-bg header-bg-solid " tabindex="-1"> 280 281 <div class="container" > 282 283 <div class="row " style=""> 284 285 <div id="logo" > 286 <a href="/" title="Futuresource"> 287 <picture> 288 <source type="image/webp" srcset="/media/knwlxpuk/futuresource-logo-colour-large-whitebg.png?format=webp"> 289 <img src="/media/knwlxpuk/futuresource-logo-colour-large-whitebg.png?format=webp" alt="Futuresource Consulting"> 290 291 </picture> 292 <span>Futuresource</span> 293 </a> 294 </div> 295 296 297 <!-- Expand --> 298 <button id="burgerNavStyle1" class="expand-header expand-2-bars expand-uneven-lines expand-active-cross" type="button" aria-expanded="false" aria-label="Expand header"> 299 <span>Menu</span> 300 </button> 301 <!--// Expand --> 302 303 <!-- Left Column (4 columns wide) --> 304 <div class="col " style=" width: 33%;"> 305 306 </div> 307 <div id="seconcolid" class="col-12 text-end" style="width: 67%; height: auto; "> 308 <div class="lineClass" style=" position: absolute; left: 0; top: 25px; background-color: rgba(var(--secondary-navigation-link), 1); width: 0.125rem !important;bottom: 25px;"></div> 309 310 <!-- Content here --> 311 <!-- Nested Row (to divide into two rows) --> 312 <div id="fistrowid" class="row align-items-center" style="height: 55%; width: 100%;padding-left: 40px; padding-right: 5px; padding-top: 2px;"> 313 <!-- First Nested Row Content --> 314 <!-- Secondary Navigation (Starts from Left) --> 315 <div class="col-8 d-flex flex-wrap align-items-stretch" 316 style="gap: 2%; justify-content: start; margin-bottom:10px;margin-left: 30px;"> 317 <nav aria-label="Secondary" class="secondary nav-dropdown navigation-dropdown-bg navigation-dropdown-bg-solid"> 318 <ul> 319 <li><span><a href="/about/" >About</a></span></li> 320 <li><span><a href="/events/" >Events</a></span></li> 321 <li><span><a href="https://sso.futuresource-consulting.com/" target="_blank" rel="noreferrer noopener" title="Link will open in a new window/tab" ><i class="icon usn_ion-ios-log-out before"></i>Members<i class="icon usn_ion-md-open after"></i></a></span></li> 322 323 </ul> 324 </nav> 325 326 327 </div> 328 <div class="col" style=""></div> 329 <div class="col-2 d-flex flex-column align-items-end ms-auto" style=""> 330 <div style="width: 100%; display: flex; flex-direction: column; align-items: flex-end; padding-left: 15px; padding-top: 5px;align-items: center; gap: 10px; margin-right: -40px;"> 331 <div class="form site-search-form site-search" aria-label="Site search"> 332 <form role="search" action="/search/" method="get" name="searchForm"> 333 <fieldset> 334 <div class="form-group"> 335 <input type="text" class="form-control" name="search_field" aria-label="Search the site" placeholder="Search the site" value=""> 336 </div> 337 <button type="submit" role="button" aria-label="Search" class="btn base-btn-bg base-btn-bg-solid base-btn-bg-hover-solid base-btn-text base-btn-borders btn-search">
338 <span></span> 339 <i aria-hidden="true" class="icon usn_ion-ios-search"></i> 340 </button> 341 </fieldset> 342 </form> 343 <button class="expand-search" data-bs-toggle="collapse" type="button" aria-expanded="false" aria-label="Expand site search"> 344 <em>Expand Search</em> 345 <i aria-hidden="true" class="icon usn_ion-ios-search search-icon"></i> 346 <i aria-hidden="true" class="icon usn_ion-md-close close-icon"></i> 347 </button> 348 </div> 349 350 351 </div> 352 <a id="desktopSearchToggle" class="search-more-btn" 353 style=" border: 0px; 354 background-color: white; cursor: pointer;text-align:right;display: block;font-size: 16px;font-weight:bold;text-decoration: underline;margin-top:-8px;margin-bottom:-10px;"> 355 Advanced Search 356 <i aria-hidden="true" class="icon usn_ion-ios-search" style="text-decoration: underline;font-weight:bold;"> </i> 357 </a> 358 </div> 359 360 361 <div id="headerSearchResults" class="suggestion-item"></div> 362 363 </div> 364 365 366 <div id="secondrowid" class="row d-flex flex-wrap justify-content-start align-items-center mt-2" 367 style="height: 45%; width: 100%; margin: 0; padding-left: 35px;"> 368 <div class="col-6 d-flex flex-column justify-content-start align-items-start pr-2 mt-2" 369 style="gap: 2%; text-align: left;"> 370 371 <nav aria-label="Main" class="main nav-dropdown navigation-dropdown-bg navigation-dropdown-bg-solid"> 372 <ul> 373 <li class="has-child active" style=""> 374 <span> 375 <a href="/industries/" class="custom-nav-link" > 376 Industries 377 </a> 378 </span> 379 380 <button class="expand-subpages loaded" type="button" aria-expanded="false" aria-label="Expand sub pages Industries"> 381 <span aria-hidden="true">Expand sub pages Industries</span> 382 </button> 383 <ul class="multi-col " style="box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.9); margin-top:-5px !important;"> 384 <li > 385 <span> 386 <a href="/industries/audio/" class="" > 387 Audio 388 </a> 389 </span> 390 </li> 391 <li > 392 <span> 393 <a href="/industries/education/" class="" > 394 Education 395 </a> 396 </span> 397 </li> 398 <li > 399 <span> 400 <a href="/industries/collaboration/" class="" > 401 Collaboration 402 </a> 403 </span> 404 </li> 405 <li > 406 <span> 407 <a href="/industries/entertainment/" class="" > 408 Entertainment 409 </a> 410 </span> 411 </li> 412 <li > 413 <span> 414 <a href="/industries/consumer-electronics/" class="" > 415 Consumer Electronics 416 </a> 417 </span> 418 </li> 419 <li >
420 <span> 421 <a href="/industries/media-technology/" class="" > 422 Media Technology 423 </a> 424 </span> 425 </li> 426 <li > 427 <span> 428 <a href="/industries/displays/" class="" > 429 Displays 430 </a> 431 </span> 432 </li> 433 <li > 434 <span> 435 <a href="/industries/storage-media/" class="" > 436 Storage Media 437 </a> 438 </span> 439 </li> 440 <li > 441 <span> 442 <a href="/industries/semiconductors-ai/" class="" > 443 Semiconductors & AI 444 </a> 445 </span> 446 </li> 447 </ul> 448 </li> 449 <li class="has-child " style=""> 450 <span> 451 <a href="/solutions/" class="custom-nav-link" > 452 Solutions 453 </a> 454 </span> 455 456 <button class="expand-subpages loaded" type="button" aria-expanded="false" aria-label="Expand sub pages Solutions"> 457 <span aria-hidden="true">Expand sub pages Solutions</span> 458 </button> 459 <ul class="" style="box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.9); margin-top:-5px !important;"> 460 <li > 461 <span> 462 <a href="/solutions/market-outlook/" class="" > 463 Market Outlook 464 </a> 465 </span> 466 </li> 467 <li > 468 <span> 469 <a href="/solutions/consumer-end-user-insights/" class="" > 470 Consumer & End User Insights 471 </a> 472 </span> 473 </li> 474 <li > 475 <span> 476 <a href="/solutions/data-analytics/" class="" > 477 Data & Analytics 478 </a> 479 </span> 480 </li> 481 <li > 482 <span> 483 <a href="/solutions/consulting-advisory/" class="" > 484 Consulting & Advisory 485 </a> 486 </span> 487 </li> 488 <li > 489 <span> 490 <a href="/solutions/marketing-events-services/" class="" > 491 Marketing & Event Services 492 </a> 493 </span> 494 </li> 495 </ul> 496 </li> 497 <li class="no-child " style=""> 498 <span> 499 <a href="/market-reports/" class="custom-nav-link" > 500 Market Reports 501 </a> 502 </span> 503 504 </li> 505 <li class="has-child " style=""> 506 <span> 507 <a href="/the-source/" class="custom-nav-link" > 508 The Source 509 </a> 510 </span> 511 512 <button class="expand-subpages loaded" type="button" aria-expanded="false" aria-label="Expand sub pages The Source"> 513 <span aria-hidden="true">Expand sub pages The Source</span> 514 </button> 515 <ul class="" style="box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.9); margin-top:-5px !important;"> 516 <li >
517 <span> 518 <a href="/the-source/future-sessions/" class="" > 519 Future Sessions 520 </a> 521 </span> 522 </li> 523 <li > 524 <span> 525 <a href="/the-source/industry-pulse/" class="" > 526 Industry Pulse News 527 </a> 528 </span> 529 </li> 530 <li > 531 <span> 532 <a href="/the-source/case-studies/" class="" > 533 Case Studies 534 </a> 535 </span> 536 </li> 537 <li > 538 <span> 539 <a href="/the-source/downloads/" class="" > 540 Downloads 541 </a> 542 </span> 543 </li> 544 <li > 545 <span> 546 <a href="/the-source/global-event-coverage/" class="" > 547 Global Event Coverage 548 </a> 549 </span> 550 </li> 551 </ul> 552 </li> 553 </ul> 554 </nav> 555 556 557 558 </div> 559 <!-- Main Navigation (Left-aligned) --> 560 561 <div class="col"></div> 562 <!-- CTA Button (Right-aligned) --> 563 564 <div class="col-4 d-flex flex-wrap align-items-stretch justify-content-end " 565 style="gap: 2%;margin-bottom:-10px !important; "> 566 <nav aria-label="Call to actions" class="cta-links"> 567 <a class="btn c2-btn-bg c2-btn-bg-solid c2-btn-bg-hover-solid c2-btn-text c2-btn-borders" href="/talk-to-us/" > 568 <span></span> 569 Talk to us 570 </a> 571 </nav> 572 573 </div> 574 </div> 575 576 577 </div> 578 579 580 581 582 <!-- Shop Cart --> 583 </div> 584 585 586 </div> 587 </header> 588 589 590 <style> 591 /* Make sure the parent wrapper is relative */ 592 .header-search-wrapper { 593 position: relative; 594 } 595 596 /* Autocomplete box */ 597 #headerSearchResults { 598 padding-left:5px !important; 599 text-align: left; 600 position: absolute; /* relative to wrapper */ 601 top: 100%; /* below input */ 602 right: 5px; 603 margin-top: -21px; /* adjust vertical spacing */ 604 width: 360px !important; /* fixed width */ 605 max-width: 360px !important; /* max width */ 606 background-color: #fff; 607 border:1px solid rgba(var(--header-link-color), 0.4); 608 border-radius: 4px; 609 box-shadow: 0px 4px 6px rgba(0,0,0,0.1); 610 z-index: 9999; 611 display: none; 612 flex-direction: column; 613 overflow: hidden; 614 max-height: 250px; 615 overflow-y: auto; 616 display: none; 617 color: rgba(var(--header-link-color), 1); /* use theme text color */ 618 } 619 620 /* Suggestion items */ 621 #headerSearchResults .suggestion-item { 622 623 padding: 8px 12px; 624 cursor: pointer; 625 color: inherit; /* inherit modal's text color */ 626 } 627 628 #headerSearchResults .suggestion-item:last-child { 629 border-bottom: none; 630 } 631 632 #headerSearchResults .suggestion-item:hover { 633 background-color: rgba(var(--base-highlight), 0.1); /* subtle hover */ 634 } 635 #headerSearchResults .suggestion-item .suggestion-text { 636 font-size: 0.85em; 637 color: rgba(var(--header-link-color), 1); 638 margin-left: 3px; 639} 640#headerSearchResults mark { 641 background-color: rgba(var(--base-highlight), 1); 642 color: #fff; /* text inside highlight should stay white */ 643 padding: 0 2px; 644 border-radius: 2px; 645 } 646 647 648 649 650 651 652 </style> 653 654
654<script> 655document.addEventListener("DOMContentLoaded", function () { 656 657 const input = document.querySelector( 658 '.site-search-form input[name="search_field"]' 659 ); 660 const box = document.getElementById("headerSearchResults"); 661 662 if (!input || !box) return; 663 664 input.setAttribute("autocomplete", "off"); 665 666 // Escape regex safely 667 function escapeRegex(text) { 668 return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); 669 } 670 671 input.addEventListener("input", function () { 672 const query = this.value.trim(); 673 674 if (query.length < 2) { 675 box.style.display = "none"; 676 box.innerHTML = ""; 677 return; 678 } 679 680 const apiUrl = 681 `/umbraco/api/searchapi/autocomplete?term=${encodeURIComponent(query)}&mode=text`; 682 683 fetch(apiUrl) 684 .then(res => res.json()) 685 .then(data => { 686 687 box.innerHTML = ""; 688 689 if (!data.results || !data.results.length) { 690 box.style.display = "none"; 691 return; 692 } 693 694 box.style.display = "block"; 695 696 const regex = new RegExp(`(${escapeRegex(query)})`, "gi"); 697 698 data.results.forEach(item => { 699 700 // Use title first, fallback to text 701 const value = item.title || item.text; 702 if (!value) return; 703 704 const div = document.createElement("div"); 705 div.className = "suggestion-item"; 706 div.innerHTML = value.replace(regex, "<mark>$1</mark>"); 707 708 // â Click â fill input, close dropdown 709 div.addEventListener("click", function () { 710 input.value = value; 711 box.style.display = "none"; 712 }); 713 714 box.appendChild(div); 715 }); 716 }) 717 .catch(() => { 718 box.style.display = "none"; 719 }); 720 }); 721 722 // Prevent close when clicking inside 723 input.addEventListener("click", e => e.stopPropagation()); 724 box.addEventListener("click", e => e.stopPropagation()); 725 726 // Close on outside click 727 document.addEventListener("click", function (e) { 728 if (!input.contains(e.target) && !box.contains(e.target)) { 729 box.style.display = "none"; 730 } 731 }); 732 733}); 734</script>
734 735 736 737 738 739 </div> 740 <div id="mobilesearchModal" class="Mobilemodal base-bg" 741 role="dialog" aria-modal="true" aria-labelledby="searchModalTitle" aria-hidden="true" 742 style="margin-top: calc(var(--large-header) + 30px); box-shadow: 4px 4px 10px rgba(0,0,0,0.9); max-height:80vh; overflow-y:auto;"> 743 744 <div class="container modal-content " style="padding-left: 15px; padding-right: 15px;"> 745 746 <div class="search-modal-header"> 747 <h3 id="searchModalTitle" style="margin-top:5px !important;">Research Trending Topics</h3> 748 <button id="mobilecloseSearchModal" class="close-btn" aria-label="Close search"> 749 <i class="icon usn_ion-md-close close-icon base-bg"></i> 750 </button> 751 </div> 752 753 754 755 <form role="search" action="/search/" method="get" name="modalSearchForm" class="search-form-row"> 756 <div class="form-group full-width" style="position: relative;"> 757 <input type="hidden" name="searchMode" id="searchMode" value="more" /> 758 759 <input type="text" 760 class="form-control full-width-input" 761 name="search_field" 762 id="search_field" 763 style="border-top-right-radius:20px; 764 border-bottom-right-radius:20px; 765 border:1px solid rgba(var(--secondary-navigation-link),1);" 766 placeholder="Search the site" 767 autocomplete="off" /> 768 769 <button type="submit" 770 role="button" 771 onclick="document.getElementById('searchMode').value='more'" 772 aria-label="Search" 773 class="btn base-btn-bg base-btn-bg-solid base-btn-bg-hover-solid base-btn-text base-btn-borders btn-search" 774 style="position:absolute;right:-1px;top:-5px;height:100%;padding:0 1rem;font-size:25px;"> 775 <span></span> 776 <i aria-hidden="true" class="icon usn_ion-ios-search"></i> 777 </button> 778 779 <!-- suggestions box should live INSIDE here --> 780 <div id="search-suggestions" class="suggestions"></div> 781 </div> 782</form> 783 784 <div class="trending-topics"> 785 <div style="background-color:white; padding:10px;"> 786 <h3 style="margin-top:0px !important; 787 color:rgba(var(--header-link-color), 1); 788 text-decoration: underline;"> 789 Current Trends 790 </h3> 791 <div id="topicTagsContainer"></div> 792 <div id="topicTagsContainer" data-bound="true"> 793 <!-- Parent button --> 794 <button type="button" 795 class="tag-btn trending-tag parent-tag" 796 data-topic="The Controller is the Next Battleground in Direct View LED" 797 onclick="window.location.href='/the-source/industry-pulse/the-controller-is-the-next-battleground-in-direct-view-led/';"> 798 The Controller is the Next Battleground in Direct View LED 799 </button> 800 <!-- Child buttons --> 801 </div> 802 <h3 style="margin-bottom:0px !important; 803 color:rgba(var(--header-link-color), 1); 804 text-decoration: underline;"> 805 Content Search 806 </h3> 807 <div class="menu-tags"> 808 <a class="menu-tag parent-tag" 809 data-topic="Industries" 810 href="/industries/" 811 812 > 813 Industries 814 </a> 815 <a class="menu-tag parent-tag" 816 data-topic="Solutions" 817 href="/solutions/" 818 819 > 820 Solutions 821 </a> 822 <a class="menu-tag parent-tag" 823 data-topic="Market Reports" 824 href="/market-reports/" 825 826 > 827 Market Reports 828 </a> 829 <a class="menu-tag child-tag" 830 data-topic="Future Sessions" 831 href="/the-source/future-sessions/" 832 833 > 834 Future Sessions 835 </a> 836 <a class="menu-tag child-tag" 837 data-topic="Industry Pulse News" 838 href="/the-source/industry-pulse/" 839 840 > 841 Industry Pulse News 842 </a> 843 <a class="menu-tag child-tag" 844 data-topic="Case Studies" 845 href="/the-source/case-studies/" 846 847 > 848 Case Studies 849 </a> 850 <a class="menu-tag child-tag" 851 data-topic="Downloads" 852 href="/the-source/downloads/" 853 854 > 855 Downloads 856 </a> 857 <a class="menu-tag child-tag" 858 data-topic="Global Event Coverage" 859 href="/the-source/global-event-coverage/" 860 861 > 862 Global Event Coverage 863 </a> 864</div> 865 </div> 866 867 868 </div> 869 </div> 870 871 </div> 872 <style> 873 .menu-tag { 874 display: inline-grid; 875 grid-template-columns: 18px auto; 876 gap: 8px; 877 878 text-decoration: none; 879 margin: 5px; 880 padding: 8px 12px; 881 border: 2px solid rgba(var(--header-link-color), 1); 882 background: transparent; 883 color: rgba(var(--header-link-color), 1) !important; 884 border-radius: 20px; 885 cursor: pointer; 886 font-weight: bold; 887 transition: background-color 0.25s ease, 888 color 0.25s ease, 889 border-color 0.25s ease; 890 text-align: left;
891 align-items: center; 892} 893 894/* checkbox */ 895.menu-tag::before{ 896 content:"â"; 897 font-size:14px; 898 color: inherit; 899} 900 901/* checked icon */ 902.menu-tag.selected::before{ 903 content:"â"; 904 color:#fff; 905} 906 907/* SELECTED STATE */ 908.menu-tag.selected{ 909 background-color: rgba(var(--header-hover-color), 1) !important; 910 color: #ffffff !important; 911 border-color: rgba(var(--header-hover-color), 1) !important; 912} 913 914/* Hover (non-selected) */ 915.menu-tag:hover:not(.selected){ 916 background-color: rgba(var(--header-hover-color), 0.15); 917} 918 919/* Prevent theme overriding anchor colors */ 920.menu-tag.selected, 921.menu-tag.selected span{ 922 color:#ffffff !important; 923} 924 </style> 925 <div id="header-section-small" class="header-section" > 926 927 928 <header id="site-header" class="header-bg header-bg-solid" tabindex="-1" > 929 <!-- Modal --> 930 931 <div class="container"> 932 <div class="row header-row" style=""> 933 <div id="logo" > 934 <a href="/" title="Futuresource"> 935 <picture> 936 <source type="image/webp" srcset="/media/knwlxpuk/futuresource-logo-colour-large-whitebg.png?format=webp"> 937 <img src="/media/knwlxpuk/futuresource-logo-colour-large-whitebg.png?format=webp" alt="Futuresource Consulting"> 938 939 </picture> 940 <span>Futuresource</span> 941 </a> 942 </div> 943 944 945 946 <!-- Burger menu --> 947 <button id="burgerNavStyle" 948 class="expand-header expand-2-bars expand-uneven-lines expand-active-cross d-flex align-items-center" 949 type="button" style="gap:20px;" 950 aria-expanded="false" 951 onclick="toggleMenu(this)" 952 aria-label="Expand header"> 953 954 <!-- Icon Container --> 955 <span class="icon toggle-icon" style="display:block;margin-right:0px!important;top:50%;left:15%;position:absolute;width:25px;height:14px;transform:translateY(-50%);"> 956 <span id="iconMenu" style="display:block;height:2px;background-color:rgba(var(--secondary-navigation-link),1);position:absolute;width:100%;top:0;"></span> 957 <span id="iconMenu2" style="display:block;height:2px;background-color:rgba(var(--secondary-navigation-link),1);position:absolute;width:100%;top:6px;"></span> 958 <span id="iconMenu3" style="display:block;height:2px;background-color:rgba(var(--secondary-navigation-link),1);position:absolute;width:100%;top:12px;"></span> 959 </span> 960 <!-- Close Icon --> 961 <span class="icon close-icon" style="display:none;position:absolute;left:20px;width:25px;height:14px;top:50%;left:15%;"> 962 <span style="display:block;height:2px;background-color:rgba(var(--secondary-navigation-link),1);position:absolute;width:100%;top:6px;transform:rotate(45deg);"></span> 963 <span style="display:block;height:2px;background-color:rgba(var(--secondary-navigation-link),1);position:absolute;width:100%;top:6px;transform:rotate(-45deg);"></span> 964 </span> 965 </button> 966 967 <!-- Main navigation --> 968 <nav aria-label="Main" class="main nav-dropdown navigation-dropdown-bg navigation-dropdown-bg-solid"> 969 <ul > 970 <li class="has-child active"> 971 <span> 972 <a href="/industries/" >Industries</a> 973 </span> 974 975 <button class="expand-subpages" type="button" aria-expanded="false" aria-label="Expand sub pages Industries">
976 <span aria-hidden="true">Expand sub pages Industries</span> 977 </button> 978 <ul class="multi-col"> 979 <li class="no-child "> 980 <span> 981 <a href="/industries/audio/" >Audio</a> 982 </span> 983 984 </li> 985 <li class="no-child "> 986 <span> 987 <a href="/industries/education/" >Education</a> 988 </span> 989 990 </li> 991 <li class="no-child "> 992 <span> 993 <a href="/industries/collaboration/" >Collaboration</a> 994 </span> 995 996 </li> 997 <li class="no-child "> 998 <span> 999 <a href="/industries/entertainment/" >Entertainment</a> 1000 </span> 1001 1002 </li> 1003 <li class="no-child "> 1004 <span> 1005 <a href="/industries/consumer-electronics/" >Consumer Electronics</a> 1006 </span> 1007 1008 </li> 1009 <li class="no-child "> 1010 <span> 1011 <a href="/industries/media-technology/" >Media Technology</a> 1012 </span> 1013 1014 </li> 1015 <li class="no-child "> 1016 <span> 1017 <a href="/industries/displays/" >Displays</a> 1018 </span> 1019 1020 </li> 1021 <li class="no-child "> 1022 <span> 1023 <a href="/industries/storage-media/" >Storage Media</a> 1024 </span> 1025 1026 </li> 1027 <li class="no-child "> 1028 <span> 1029 <a href="/industries/semiconductors-ai/" >Semiconductors & AI</a> 1030 </span> 1031 1032 </li> 1033 </ul> 1034 </li> 1035 <li class="has-child "> 1036 <span> 1037 <a href="/solutions/" >Solutions</a> 1038 </span> 1039 1040 <button class="expand-subpages" type="button" aria-expanded="false" aria-label="Expand sub pages Solutions"> 1041 <span aria-hidden="true">Expand sub pages Solutions</span> 1042 </button> 1043 <ul > 1044 <li class="no-child "> 1045 <span> 1046 <a href="/solutions/market-outlook/" >Market Outlook</a> 1047 </span> 1048 1049 </li> 1050 <li class="no-child "> 1051 <span> 1052 <a href="/solutions/consumer-end-user-insights/" >Consumer & End User Insights</a> 1053 </span> 1054 1055 </li> 1056 <li class="no-child "> 1057 <span> 1058 <a href="/solutions/data-analytics/" >Data & Analytics</a> 1059 </span> 1060 1061 </li> 1062 <li class="no-child "> 1063 <span> 1064 <a href="/solutions/consulting-advisory/" >Consulting & Advisory</a> 1065 </span> 1066 1067 </li> 1068 <li class="no-child "> 1069 <span> 1070 <a href="/solutions/marketing-events-services/" >Marketing & Event Services</a> 1071 </span> 1072 1073 </li> 1074 </ul> 1075 </li> 1076 <li class="no-child ">
1077 <span> 1078 <a href="/market-reports/" >Market Reports</a> 1079 </span> 1080 1081 </li> 1082 <li class="has-child "> 1083 <span> 1084 <a href="/the-source/" >The Source</a> 1085 </span> 1086 1087 <button class="expand-subpages" type="button" aria-expanded="false" aria-label="Expand sub pages The Source"> 1088 <span aria-hidden="true">Expand sub pages The Source</span> 1089 </button> 1090 <ul > 1091 <li class="no-child "> 1092 <span> 1093 <a href="/the-source/future-sessions/" >Future Sessions</a> 1094 </span> 1095 1096 </li> 1097 <li class="no-child "> 1098 <span> 1099 <a href="/the-source/industry-pulse/" >Industry Pulse News</a> 1100 </span> 1101 1102 </li> 1103 <li class="no-child "> 1104 <span> 1105 <a href="/the-source/case-studies/" >Case Studies</a> 1106 </span> 1107 1108 </li> 1109 <li class="no-child "> 1110 <span> 1111 <a href="/the-source/downloads/" >Downloads</a> 1112 </span> 1113 1114 </li> 1115 <li class="no-child "> 1116 <span> 1117 <a href="/the-source/global-event-coverage/" >Global Event Coverage</a> 1118 </span> 1119 1120 </li> 1121 </ul> 1122 </li> 1123 </ul> 1124 </nav> 1125 1126 1127 1128 <!-- Secondary navigation --> 1129 <nav aria-label="Secondary" class="secondary nav-dropdown navigation-dropdown-bg navigation-dropdown-bg-solid"> 1130 <ul> 1131 <li><span><a href="/about/" >About</a></span></li> 1132 <li><span><a href="/events/" >Events</a></span></li> 1133 <li><span><a href="https://sso.futuresource-consulting.com/" target="_blank" rel="noreferrer noopener" title="Link will open in a new window/tab" ><i class="icon usn_ion-ios-log-out before"></i>Members<i class="icon usn_ion-md-open after"></i></a></span></li> 1134 1135 </ul> 1136 </nav> 1137 1138 <!-- CTA Links --> 1139 <nav aria-label="Call to actions" class="cta-links"> 1140 <a class="btn c2-btn-bg c2-btn-bg-solid c2-btn-bg-hover-solid c2-btn-text c2-btn-borders" href="/talk-to-us/" > 1141 <span></span> 1142 Talk to us 1143 </a> 1144 </nav> 1145 1146 1147 <!-- Site search --> 1148 1149 <!-- Search form --> 1150 <div class="form site-search-form site-search" aria-label="Site search"> 1151 <form role="search" action="/search/" method="get" name="searchForm"> 1152 <fieldset> 1153 <div class="form-group"> 1154 <input type="text" class="form-control" name="search_field" aria-label="Search the site" placeholder="Search the site" value=""> 1155 </div> 1156 <button type="submit" role="button" aria-label="Search" class="btn base-btn-bg base-btn-bg-solid base-btn-bg-hover-solid base-btn-text base-btn-borders btn-search"> 1157 <span></span> 1158 <i aria-hidden="true" class="icon usn_ion-ios-search"></i> 1159 </button> 1160 </fieldset> 1161 </form> 1162 <button class="expand-search" data-bs-toggle="collapse" type="button" aria-expanded="false" aria-label="Expand site search"> 1163 <em>Expand Search</em> 1164 <i aria-hidden="true" class="icon usn_ion-ios-search search-icon"></i> 1165 <i aria-hidden="true" class="icon usn_ion-md-close close-icon"></i> 1166 </button> 1167 </div> 1168 1169 1170 1171 1172 1173 1174 1175 <!-- Shop integrations --> 1176 </div> 1177 <div id="siteSearchSuggestions" class="autocomplete-box"></div> 1178 <div class="col mobileAdvanceButtonCss" style=" margin-top: -30px !important; "> 1179 1180 <a class="search-more-btn mobileSearchToggle"> 1181 Advanced Search 1182 <i aria-hidden="true" class="icon usn_ion-ios-search" style="text-decoration: underline;font-weight:bold;"></i> 1183 </a> 1184 </div> 1185 <style> 1186 header#site-header .expand-header { 1187 height: 120px !important; 1188 position: absolute; 1189 } 1190 1191 html[dir="ltr"] header#site-header #logo img { 1192 margin-top: 0px !important; 1193 } 1194 1195 .header-section { 1196 position: relative; /* make parent relative for absolute positioning if needed */ 1197 } 1198 1199 .search-more-row { 1200 position: absolute; /* or relative if you want it in the flow */ 1201 top: auto; /* reset top */ 1202 bottom: 10px; /* distance from bottom of header */ 1203 right: 20px; /* distance from right */ 1204 text-align: right !important; 1205 } 1206 1207 .search-more-btn { 1208 display: inline-block; 1209 font-size: 16px; 1210 font-weight: bold; 1211 cursor: pointer; 1212 text-decoration: underline; 1213 /* Align to right */ 1214 margin-left: auto; 1215 display: block; 1216 text-align: right !important; 1217 } 1218 1219 </style> 1220 1221 1222 </div> 1223 1224 </header> 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 </div> 1235 <style> 1236 .header-search-wrapper { 1237 position: relative; 1238} 1239 1240.search-suggestions { 1241 position: absolute; 1242 top: 100%; 1243 right: 0; 1244 width: 360px; 1245 max-width: 100%; 1246 background-color: #fff; 1247 border:1px solid rgba(var(--header-link-color), 0.4); 1248 border-radius: 4px; 1249 box-shadow: 0 6px 12px rgba(0,0,0,0.15); 1250 z-index: 999999; 1251 display: none; 1252 max-height: 250px; 1253 overflow-y: auto; 1254 1255 /* max width */ 1256 1257 1258 flex-direction: column; 1259 overflow: hidden; 1260 max-height: 250px; 1261 1262 1263 color: rgba(var(--header-link-color), 1); /* use theme text color */ 1264 1265 1266} 1267 1268/* @media (max-width: 991px) { 1269 .search-suggestions { 1270 left: 0; 1271 right: 0; 1272 width: 100%; 1273 } 1274} */ 1275@media (max-width: 991px) { 1276 .search-suggestions { 1277 position: absolute; 1278 top: 100%; 1279 left: 0; 1280 width: 100%; 1281 z-index: 9999; 1282 } 1283} 1284 1285.search-suggestions .suggestion-item { 1286 padding: 8px 12px; 1287 cursor: pointer; 1288 text-decoration: none; 1289} 1290 1291.search-suggestions .suggestion-item:hover { 1292 background: rgba(var(--base-highlight), 0.1); 1293} 1294 1295.search-suggestions mark { 1296 background: rgba(var(--base-highlight), 1); 1297 color: #fff; 1298} 1299 1300</style>
1301<script> 1302(function () { 1303 1304 const MAX_WIDTH = 991; 1305 1306 function isMobileView() { 1307 return window.innerWidth <= MAX_WIDTH; 1308 } 1309 1310 function escapeRegex(text) { 1311 return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); 1312 } 1313 1314 function initSearchInput(input) { 1315 1316 if (!isMobileView()) return; 1317 if (input.dataset.autocompleteInit) return; 1318 input.dataset.autocompleteInit = "true"; 1319 1320 input.setAttribute("autocomplete", "off"); 1321 1322 // â DO NOT WRAP â use existing parent 1323 const parent = input.parentElement; 1324 1325 let box = parent.querySelector(".search-suggestions"); 1326 if (!box) { 1327 box = document.createElement("div"); 1328 box.className = "search-suggestions"; 1329 parent.appendChild(box); 1330 } 1331 1332 input.addEventListener("input", function () { 1333 if (!isMobileView()) return; 1334 1335 const query = this.value.trim(); 1336 1337 if (query.length < 2) { 1338 box.style.display = "none"; 1339 box.innerHTML = ""; 1340 return; 1341 } 1342 1343 fetch(`/umbraco/api/searchapi/autocomplete?term=${encodeURIComponent(query)}&mode=text`) 1344 .then(res => res.json()) 1345 .then(data => { 1346 1347 box.innerHTML = ""; 1348 1349 if (!data.results || !data.results.length) { 1350 box.style.display = "none"; 1351 return; 1352 } 1353 1354 const regex = new RegExp(`(${escapeRegex(query)})`, "gi"); 1355 1356 data.results.forEach(item => { 1357 const value = item.title || item.text; 1358 if (!value) return; 1359 1360 const div = document.createElement("div"); 1361 div.className = "suggestion-item"; 1362 div.innerHTML = value.replace(regex, "<mark>$1</mark>"); 1363 1364 div.addEventListener("click", function () { 1365 input.value = value; 1366 box.style.display = "none"; 1367 }); 1368 1369 box.appendChild(div); 1370 }); 1371 1372 box.style.display = "block"; 1373 }) 1374 .catch(() => { 1375 box.style.display = "none"; 1376 }); 1377 }); 1378 1379 input.addEventListener("click", e => e.stopPropagation()); 1380 box.addEventListener("click", e => e.stopPropagation()); 1381 } 1382 1383 // Global listener (popup safe) 1384 document.addEventListener("focusin", function (e) { 1385 if (e.target.matches('input[name="search_field"]')) { 1386 initSearchInput(e.target); 1387 } 1388 }); 1389 1390 document.addEventListener("click", function () { 1391 document.querySelectorAll(".search-suggestions").forEach(box => { 1392 box.style.display = "none"; 1393 }); 1394 }); 1395 1396})(); 1397</script>
1397 1398 <style> 1399 .Mobilemodal { 1400 z-index: 1000 !important; /* search modal */ 1401 } 1402 1403 1404 #header-section-small { 1405 display: none; 1406 } 1407 1408 #header-section-large { 1409 display: block; 1410 } 1411 1412 @media (max-width: 992px) { 1413 body { 1414 padding-top: calc(var(--large-header) + 30px ) !important; 1415 } 1416 html[dir="ltr"] header#site-header { 1417 /* display: block !important; */ 1418 position: fixed !important; 1419 z-index: 1000; 1420 top: 0 !important; 1421 left: 0; 1422 z-index: 1000 !important; 1423 opacity: 1 !important; 1424 visibility: visible !important; 1425 width: 100%; 1426 transition: top 0.3s ease; 1427 display: flex; 1428 align-items: center; 1429 /* height: 150px; */ 1430 } 1431 /* html[dir="ltr"] header#site-header { 1432 display: block !important; 1433 position: static !important; 1434 z-index: 1000; 1435 top: 0 !important; 1436 left: 0; 1437 z-index: 1000 !important; 1438 opacity: 1 !important; 1439 visibility: visible !important; 1440 width: 100%; 1441 transition: top 0.3s ease; 1442 display: flex; 1443 align-items: center; 1444 1445 } */ 1446 #header-section-small { 1447 display: block; 1448 height: auto !important; 1449 } 1450 1451 .lineClass { 1452 display: none; 1453 } 1454 1455 #header-section-large { 1456 display: none; 1457 } 1458 1459 @media (max-width: 414px){ 1460 header#site-header #logo picture, header#site-header #logo img { 1461 width: 100%; 1462 max-width: 80%; 1463 height: 100%; 1464 height: calc(var(--small-header) - var(--logo_sm-padding_top) - var(--logo_sm-padding_bottom)); 1465 max-height: calc(var(--small-header) - var(--logo_sm-padding_top) - var(--logo_sm-padding_bottom)); 1466 border-radius: 0; 1467 } 1468 1469 } 1470 } 1471 /* @media (max-width: 768px) { 1472 body { 1473 padding-top: calc(var(--large-header) + 30px ) !important; 1474 } 1475} */ 1476 1477 1478 1479 /* Add hover effect to the active submenu item */ 1480 1481 </style> 1482
1482<script type="text/javascript"> 1483 function toggleMenu(button) { 1484 var menuIcon = button.querySelector('.toggle-icon'); 1485 var closeIcon = button.querySelector('.close-icon'); 1486 var expanded = button.getAttribute('aria-expanded') === 'true'; // `true` or `false`? 1487 1488 if (expanded) { // Menu is open 1489 menuIcon.style.display = 'block'; // Show the menu icon 1490 closeIcon.style.display = 'none'; // Hide the close icon 1491 button.setAttribute('aria-expanded', 'true'); 1492 1493 } else { // Menu is closed 1494 menuIcon.style.display = 'none'; // Hide the menu icon 1495 closeIcon.style.display = 'block'; // Show the close icon 1496 button.setAttribute('aria-expanded', 'false'); 1497 1498 } 1499 } 1500 1501 </script>
1501 1502 <style> 1503 1504 @media (max-width: 760px) { 1505 1506 header#site-header #logo picture, html[dir="ltr"] header#site-header #logo img { 1507 /* height: 100% !important; */ 1508 align-items: center; 1509 padding-bottom: 0px !important; 1510 width: 80% !important; 1511 height: auto !important; 1512 margin-left: 1px; 1513 margin-top: 10px; 1514 } 1515 .mobileAdvanceButtonCss{ 1516 margin-right:-40px !important; 1517 } 1518 1519 } 1520 1521 @media (min-width: 993px) { 1522 1523 nav.main { 1524 width: 100%; 1525 display: flex; 1526 justify-content: center; 1527 padding-left: 20px; 1528 padding-top: 3px; 1529 } 1530 1531 nav.main > ul { 1532 display: flex; 1533 flex-wrap: wrap; 1534 justify-content: space-between; 1535 align-items: stretch; 1536 width: 100%; 1537 padding: 0px; 1538 margin: 0; 1539 list-style: none; 1540 } 1541 1542 1543 nav.main ul li { 1544 flex: 1 1 auto; 1545 text-align: center; 1546 } 1547 1548 1549 1550 nav.main ul.multi-col { 1551 display: flex; 1552 flex-wrap: wrap; 1553 justify-content: space-between; 1554 width: 100%; 1555 } 1556 1557 1558 nav.main ul.multi-col li { 1559 flex: 1 1 auto; 1560 text-align: left; 1561 } 1562 nav.secondary ul li { 1563 flex: 1 1 auto; 1564 text-align: center; 1565 padding-top: 10px; 1566 } 1567 1568 1569 1570 1571 header#site-header #logo picture, html[dir="ltr"] header#site-header #logo img { 1572 height: 100% !important; 1573 align-items: center; 1574 padding-bottom: 0px !important; 1575 max-height: calc(var(--large-header) + 15px); 1576 margin-left: 1px; 1577 margin-top: 0px; 1578 } 1579 body { 1580 padding-top: calc(var(--large-header) + 30px ) !important; 1581 } 1582 1583 html[dir="ltr"] header#site-header { 1584 /* display: block !important; */ 1585 position: fixed !important; 1586 z-index: 1000; 1587 top: 0 !important; 1588 left: 0; 1589 z-index: 1000 !important; 1590 opacity: 1 !important; 1591 visibility: visible !important; 1592 width: 100%; 1593 transition: top 0.3s ease; 1594 display: flex; 1595 align-items: center; 1596 /* height: 150px; */ 1597 } 1598 1599 header#site-header nav.cta-links { 1600 margin-bottom: 10px; 1601 transform: translateY(0%) !important; 1602 padding-right: -20px !important; 1603 /* position:fixed; */ 1604 } 1605 1606 header#site-header nav.cta-links .btn { 1607 margin-bottom: 12px; 1608 padding-top: 6px; 1609 padding-bottom: 6px; 1610 /* position: fixed; */ 1611 } 1612 1613 header#site-header .site-search { 1614 position: relative !important; 1615 top: auto !important; 1616 } 1617 1618 header#site-header .site-search.open-search form { 1619 width: 360px; 1620 max-width: 360px; 1621 z-index: 1; 1622 display: block; 1623 margin-right: -11px; 1624 } 1625 1626 1627 .expand-search { 1628 display: none !important; 1629 } 1630 /* Default: Arrow points to the right */ 1631 header#site-header nav.main ul li.has-child > span::after { 1632 z-index: 9999 !important; 1633 position: absolute; 1634 margin-top: -12px; 1635 margin-right: 10px; 1636 /* margin-right: 25px; */ 1637 transform: rotate(-90deg); 1638 transition: transform 0.3s ease; 1639 } 1640 /* When hovered: Arrow turns down */ 1641 header#site-header nav.main ul li.has-child > span.hovered::after { 1642 transform: rotate(0deg); 1643/* margin-top: -25px; 1644 margin-right: 10px; 1645 transition: transform 0.3s ease; */ 1646 } 1647 1648 1649 header#site-header nav.main ul li.has-child.open > span::after { 1650 /* transform: rotate(0deg); */ 1651 } 1652 } 1653 1654 1655 @media (min-width: 1024px) and (max-width: 1220px) { 1656 1657 header#site-header #logo picture, html[dir="ltr"] header#site-header #logo img { 1658 height: 100% !important; 1659 align-items: center; 1660 padding-bottom: 0px !important; 1661 /* max-height: calc(var(--large-header)); */ 1662 max-height: 90px; 1663 margin-left: 1px; 1664 margin-top: 20px; 1665 } 1666 1667 #fistrowid { 1668 margin-left: 0px !important; 1669 padding-left: 0px !important; 1670 } 1671 /* #secondrowid { 1672 margin-left: 0px !important; 1673 padding-left: 0px !important; 1674 } */ 1675 1676 header#site-header .main.nav-dropdown > ul > li > span > a { 1677 margin-left: 5px !important; 1678 padding-left: 5px !important; 1679 margin-right: 5px !important; 1680 padding-right: 10px !important; 1681 } 1682 1683 #seconcolid { 1684 margin-left: -65px !important; 1685 } 1686 1687 header#site-header nav.main ul li.has-child > span::after { 1688 z-index: 9999 !important; 1689 position: absolute; 1690 margin-top: -12px; 1691 margin-right: 5px; 1692 transform: rotate(-90deg); 1693 transition: transform 0.3s ease; 1694 } 1695 1696 header#site-header nav.main ul li { 1697 flex: 1 1 auto; 1698 text-align: left; 1699 } 1700 /* header#site-header nav.main ul li.has-child > span{ 1701 display:none; 1702 } */ 1703 header#site-header .site-search form { 1704 right: calc((var(--large-header) / 2) - 45px !important); 1705 } 1706 1707 header#site-header .site-search.open-search form { 1708 width: 300px; 1709 max-width: 350px; 1710 z-index: 1; 1711 display: block; 1712 /* margin-right: -11px; */ 1713 margin-right: 0px; 1714 } 1715 #headerSearchResults { 1716 padding-left: 5px !important; 1717 text-align: left; 1718 position: absolute; 1719 top: 100%; 1720 right: 18px; 1721 margin-top: -21px; 1722 width: 300px !important; 1723 max-width: 300px !important; 1724 background-color: #fff; 1725 border: 1px solid rgba(var(--header-link-color), 0.4); 1726 border-radius: 4px; 1727 box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); 1728 z-index: 9999; 1729 display: none; 1730 flex-direction: column; 1731 overflow: hidden; 1732 max-height: 250px; 1733 overflow-y: auto; 1734 display: none; 1735 color: rgba(var(--header-link-color), 1); 1736} 1737 1738 1739 } 1740 1741 .custom-nav-link { 1742 1743 border: 1px solid rgba(var(--navigation-dropdown-link), 1) !important; 1744 border-radius: 25px !important; 1745 max-height: 35px !important; 1746 display: flex !important; 1747 align-items: center !important; 1748 justify-content: space-between !important; 1749 position: relative !important; 1750 margin-left: 8px !important; 1751 margin-right: 8px !important; 1752 /* padding: 10px 20px !important; */ 1753 padding-right: 25px; 1754 text-align: center !important; 1755 } 1756 1757 nav.main ul > li > span > a.custom-nav-link:active { 1758 color: rgba(var(--main-navigation-link-active), 1); /* Active color on click */ 1759 } 1760 </style> 1761
1761<script type="text/javascript"> 1762 document.addEventListener("DOMContentLoaded", function () { 1763 let searchForm = document.querySelector(".site-search-form"); 1764 1765 if (searchForm) { 1766 // Ensure it's open by default 1767 searchForm.classList.add("open-search"); 1768 searchForm.style.display = "block"; 1769 } 1770 1771 // Prevent it from disappearing on any DOM event 1772 document.addEventListener("click", function (event) { 1773 if (!searchForm.contains(event.target)) { 1774 searchForm.classList.add("open-search"); 1775 searchForm.style.display = "block"; 1776 } 1777 }); 1778 1779 function applyResponsiveStyles() { 1780 let textColor = $("nav.secondary.nav-dropdown a").css("color"); 1781 1782 if (window.matchMedia("(min-width: 1023px)").matches) { 1783 // Apply styles for small screens 1784 $("header#site-header .main.nav-dropdown > ul > li > span > a").addClass("custom-nav-link"); 1785 1786 // $("header#site-header nav.main ul li ul li a").css({ 1787 // "text-align": "left", 1788 // "display": "block" 1789 // }); 1790 $("header#site-header .main > ul > li ul li a").hover( 1791 function () { 1792 $(this).css("color", "#fec010"); // Change text color on hover 1793 }, 1794 function () { 1795 $(this).css("color", ""); // Reset text color on mouse leave 1796 } 1797 ); 1798 1799 $("header#site-header .main > ul > li > span").hover( 1800 function () { 1801 $(this).children("a").css("background-color", "#fec010"); 1802 $(this).addClass("hovered"); 1803 }, 1804 function () { 1805 $(this).children("a").css("background-color", ""); 1806 $(this).removeClass("hovered"); 1807 } 1808 ); 1809 $("header#site-header .main > ul > li").each(function () { 1810 var $this = $(this); 1811 var $anchor = $this.children("span").children("a"); 1812 if ($this.children("ul").length === 0) { // Check if there are no child elements 1813 $anchor.css({ 1814 "padding": "17px 20px ;", // Adjust spacing 1815 }); 1816 } 1817 }); 1818 $("header#site-header nav.main ul li ul li a").each(function () { 1819 $(this).css({ 1820 "text-align": "left", 1821 "display": "block", 1822 1823 }); 1824 }); 1825 // $("header#site-header .main > ul > li").each(function () { 1826 // // For each 'li' in the main menu, find its child 'ul' and apply the shadow 1827 // $(this).find("ul").each(function () { 1828 // // Get the current inline style of the element 1829 // var currentStyle = $(this).attr("style") || ""; 1830 1831 // // Append the box-shadow to the existing styles (if any) 1832 // $(this).attr("style", currentStyle + " box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.9);"); 1833 // }); 1834 // }); 1835 1836 } else { 1837 // Reset styles for large screens 1838 $("header#site-header .main.nav-dropdown > ul > li > span > a").each(function () { 1839 $(this).removeAttr("style"); 1840 }); 1841 1842 $("header#site-header .main > ul > li > span").off("mouseenter mouseleave"); 1843 } 1844 } 1845 1846 // Run the function on page load 1847 applyResponsiveStyles(); 1848 1849 // Re-run the function when window is resized 1850 window.addEventListener("resize", applyResponsiveStyles); 1851 }); 1852 </script>
1852 1853 1854 1855 1856 1857 1858<style> 1859/* =============================== 1860 Mobile Modal 1861 =============================== */ 1862 .talk-to-us-btn { 1863 margin-bottom: 8px; /* adjust spacing as needed */ 1864} 1865 1866 .Mobilemodal { 1867 position: fixed; 1868 top: 0; 1869 left: 0; 1870 width: 100vw; 1871 max-height: 100vh; /* <= only limit, not force */ 1872 height: auto; /* <= grow/shrink with content */ 1873 overflow-y: auto; /* <= scroll if content exceeds */ 1874 display: none; 1875 z-index: 9999; 1876 box-shadow: 4px 4px 10px rgba(0,0,0,0.9); 1877 } 1878 1879.Mobilemodal .modal-content { 1880 b 1881 border-radius: 0; 1882 padding-bottom: 20px !important; 1883} 1884 1885/* =============================== 1886 Mobile Responsive Tweaks 1887 =============================== */ 1888@media (max-width: 760px) { 1889 .Mobilemodal { 1890 1891 1892 margin-top: calc(var(--large-header) + 31px) !important; 1893 box-shadow: 4px 4px 10px rgba(0,0,0,0.9) !important; 1894 overflow-y: auto; 1895 z-index: 9999; 1896 1897 1898 1899 } 1900 1901 .search-modal-header .close-btn { 1902 } 1903 1904 .search-more-btn { 1905 1906 padding-right: 50px !important; 1907 padding-top: 0px !important; 1908 } 1909 1910} 1911@media (min-width: 760px) { 1912 .search-more-btn:hover { 1913 color: #fec010 ; 1914 text-decoration: underline !important; 1915 } 1916} 1917/* =============================== 1918 Close Button 1919 =============================== */ 1920.close-btn { 1921 position: absolute; 1922 top: 10px; 1923 right: 10px; 1924 border: none; 1925 background: none; 1926 font-size: 24px; 1927 cursor: pointer; 1928} 1929 1930/* =============================== 1931 Root Variables 1932 =============================== */ 1933:root { 1934 --header-link-color: var(--base-heading); 1935 --header-hover-color: var(--main-navigation-link-active); 1936} 1937 1938/* =============================== 1939 Search Modal Header 1940 =============================== */ 1941.search-modal-header { 1942 display:flex; align-items:center; justify-content:space-between;; 1943 1944} 1945 1946.search-modal-header h3 { 1947 margin: 0 auto; 1948 text-align: center; 1949 flex: 1; 1950} 1951 1952.search-modal-header .close-btn { 1953 position: absolute; 1954 right: 1rem; 1955 background: none; 1956 border: none; 1957 cursor: pointer; 1958} 1959 1960/* =============================== 1961 Search Form 1962 =============================== */ 1963.search-form-row { 1964 display: flex; 1965 margin-bottom: 0.5rem; 1966} 1967 1968.form-group.full-width { 1969 flex: 1; 1970 display: flex; 1971 position: relative; 1972} 1973 1974.full-width-input { 1975 width: 100%; 1976 padding: 0.5rem 3rem 0.5rem 0.75rem; 1977 box-sizing: border-box; 1978} 1979 1980.btn-search.right-align { 1981 position: absolute; 1982 right: 0; 1983 top: 0; 1984 height: 100%; 1985 padding: 0 1rem; 1986 background-color: rgba(var(--header-hover-color), 1); 1987 color: white; 1988 border: none; 1989 border-radius: 0 4px 4px 0; 1990 display: flex; 1991 align-items: center; 1992 justify-content: center; 1993 cursor: pointer; 1994 transition: background 0.3s; 1995} 1996 1997.btn-search.right-align:hover { 1998 background-color: rgba(var(--header-hover-color), 0.85); 1999} 2000 2001/* =============================== 2002 Tags & Buttons 2003 =============================== */ 2004.tag-btn, 2005.menu-tag { 2006 display: inline-block; 2007 text-decoration: none; 2008 margin: 5px; 2009 padding: 8px 12px; 2010 border: 2px solid rgba(var(--header-link-color), 1); 2011 background: transparent; 2012 color: rgba(var(--header-link-color), 1); 2013 border-radius: 20px; 2014 cursor: pointer; 2015 font-weight: bold; 2016 transition: all 0.3s ease; 2017 text-align: left; 2018} 2019 2020.tag-btn:hover, 2021.menu-tag:hover { 2022 color: rgba(var(--header-hover-color), 1); 2023} 2024 2025.trending-topics, 2026.trending-tags, 2027.menu-tags { 2028 text-align: left; 2029 display: block; 2030} 2031 2032.trending-tags h3, 2033.menu-tags h3 { 2034 text-align: left; 2035 margin: 0; 2036} 2037 2038/* =============================== 2039 Accordion 2040 =============================== */ 2041.accordion { 2042 background-color: #ddd; 2043 cursor: pointer; 2044 padding: 12px 18px; 2045 margin: 6px 0; 2046 border-radius: 4px; 2047 font-weight: bold; 2048 border: none; 2049 width: 100%; 2050 text-align: left; 2051 outline: none; 2052 transition: background-color 0.3s; 2053} 2054 2055.accordion.active, 2056.accordion:hover { 2057 background-color: #bbb; 2058} 2059 2060.panel { 2061 padding: 0 18px; 2062 background-color: white; 2063 max-height: 0; 2064 overflow: hidden; 2065 transition: max-height 0.4s ease-in-out; 2066 border-left: 2px solid #bbb; 2067 border-right: 2px solid #bbb; 2068 border-bottom: 2px solid #bbb; 2069} 2070 2071.trending-topics .accordion { 2072 width: 100%; 2073 text-align: left; 2074 cursor: pointer; 2075 padding: 10px; 2076 background: #f2f2f2; 2077 border: none; 2078 margin-bottom: 5px; 2079} 2080 2081.trending-topics .panel { 2082 display: none; 2083 padding: 0 10px 10px 10px; 2084 overflow: hidden; 2085} 2086 2087.trending-topics .accordion.active + .panel { 2088 display: block; 2089} 2090 2091 2092 .search-more-btn { 2093 border: 0; 2094 background-color: white; 2095 cursor: pointer; 2096 text-align: right; 2097 display: block; 2098 font-size: 16px; 2099 font-weight: bold; 2100 text-decoration: underline; 2101 margin-top: -8px; 2102 margin-bottom: -10px; 2103 padding-left:10px; 2104 padding-right: 7px; 2105 padding-top: 3px; 2106 2107 color: rgba(var(--header-link-color), 1); /* default color */ 2108 2109 } 2110 2111 2112 2113 2114 .search-more-btn i { 2115 font-weight: bold; 2116 text-decoration: underline; 2117 } 2118.tag-btn.selected { 2119 background-color: rgba(var(--header-hover-color), 1); 2120 color: #fff; 2121 border-color: rgba(var(--header-hover-color), 0.9); 2122} 2123</style> 2124
2125<script> 2126 2127 2128 (function () { 2129 // Run after DOM is ready 2130 if (document.readyState === "loading") { 2131 document.addEventListener("DOMContentLoaded", init); 2132 } else { 2133 init(); 2134 } 2135 2136 function init() { 2137 // ----- CONFIG / LOOKUPS ----- 2138 2139 const accordionActiveInput = document.getElementById("accordionActiveFlag"); 2140 const accordionIsActive = accordionActiveInput && accordionActiveInput.value === "true"; 2141 2142 // support either spelling just in case 2143 const searchModal = 2144 document.getElementById("mobilesearchModal") || 2145 document.getElementById("mobileSearchModal"); 2146 2147 if (!searchModal) { 2148 console.warn("[Search Modal] #mobilesearchModal not found."); 2149 return; 2150 } 2151 2152 const searchInput = searchModal.querySelector('input[name="search_field"]'); 2153 const topicTagsContainer = document.getElementById("topicTagsContainer"); 2154 2155 // Open triggers: support multiple selectors (IDs or classes) 2156 const openTriggers = document.querySelectorAll( 2157 '#mobileSearchToggle, #desktopSearchToggle, .mobileSearchToggle, .searchToggleBtn' 2158 ); 2159 2160 const closeBtn = 2161 document.getElementById("mobilecloseSearchModal") || 2162 searchModal.querySelector(".close-btn"); 2163 2164 // ----- TRENDING TAGS RENDER ----- 2165 2166 // ----- MODAL OPEN/CLOSE ----- 2167 openTriggers.forEach(trig => { 2168 trig.addEventListener("click", e => { 2169 e.preventDefault(); 2170 toggleModal(); 2171 }); 2172 }); 2173 2174 if (closeBtn) { 2175 closeBtn.addEventListener("click", e => { 2176 e.preventDefault(); 2177 closeModal(); 2178 }); 2179 } 2180 2181 // Close when clicking the overlay (but not inner content) 2182 searchModal.addEventListener("click", e => { 2183 if (e.target === searchModal) closeModal(); 2184 }); 2185 2186 // ESC to close 2187 document.addEventListener("keydown", e => { 2188 if (e.key === "Escape" && isOpen()) closeModal(); 2189 }); 2190 2191 // ----- ACCORDION (within modal) ----- 2192 const accordions = searchModal.querySelectorAll(".accordion"); 2193 2194 function wireAccordionsOnce() { 2195 if (searchModal.dataset.accordionBound === "true") return; 2196 accordions.forEach(acc => { 2197 acc.addEventListener("click", function () { 2198 const isActive = this.classList.contains("active"); 2199 closeAllPanels(); 2200 if (!isActive) openPanel(this); 2201 }); 2202 }); 2203 searchModal.dataset.accordionBound = "true"; 2204 } 2205 2206 function openFirstAccordion() { 2207 if (!accordionIsActive || !accordions.length) return; 2208 closeAllPanels(); 2209 openPanel(accordions[0]); 2210 } 2211 2212 function closeAllPanels() { 2213 accordions.forEach(acc => { 2214 acc.classList.remove("active"); 2215 const panel = acc.nextElementSibling; 2216 if (panel) panel.style.maxHeight = null; 2217 }); 2218 resizeModalToContent(); 2219 } 2220 2221 function openPanel(acc) { 2222 acc.classList.add("active"); 2223 const panel = acc.nextElementSibling; 2224 if (panel) panel.style.maxHeight = panel.scrollHeight + "px"; 2225 resizeModalToContent(); 2226 } 2227 2228 // ----- SIZE HANDLING ----- 2229 function resizeModalToContent() { 2230 const searchModal = document.getElementById('searchModal'); 2231 if (!searchModal) return; 2232 2233 // Always reset height before calculation 2234 searchModal.style.height = "auto"; 2235 2236 const accordionActiveInput = document.getElementById('accordionActiveFlag'); 2237 const accordionIsActive = accordionActiveInput && accordionActiveInput.value === 'true'; 2238 2239 if (accordionIsActive) { 2240 const panel = searchModal.querySelector('.panel[style*="max-height"]'); 2241 if (panel && panel.style.maxHeight && panel.style.maxHeight !== '0px') { 2242 searchModal.style.height = (panel.scrollHeight + 350) + 'px'; 2243 return; // stop here since accordion logic handled 2244 } 2245 } 2246 2247 // Fallback: normal sizing 2248 const contentHeight = searchModal.scrollHeight; 2249 const maxHeight = window.innerHeight * 0.8; 2250 2251 if (contentHeight > maxHeight) { 2252 searchModal.style.height = maxHeight + "px"; 2253 searchModal.style.overflowY = "auto"; 2254 } else { 2255 searchModal.style.height = contentHeight + "px"; 2256 searchModal.style.overflowY = "visible"; 2257 } 2258 } 2259 2260 2261 window.addEventListener("resize", () => { 2262 if (isOpen()) resizeModalToContent(); 2263 }); 2264 2265 // ----- HELPERS ----- 2266 function isOpen() {
2267 // Support both class- and style-based visibility 2268 return searchModal.classList.contains("active") || searchModal.style.display === "block"; 2269 } 2270 2271 function openModal() { 2272 // Support both strategies (class + inline) for maximum compatibility with CSS 2273 searchModal.classList.add("active"); 2274 searchModal.style.display = "block"; 2275 searchModal.setAttribute("aria-hidden", "false"); 2276 document.body.style.overflow = "hidden"; 2277 if (searchInput) searchInput.focus(); 2278 wireAccordionsOnce(); 2279 if (accordionIsActive) openFirstAccordion(); 2280 resizeModalToContent(); 2281 } 2282 2283 function closeModal() { 2284 searchModal.classList.remove("active"); 2285 searchModal.style.display = "none"; 2286 searchModal.setAttribute("aria-hidden", "true"); 2287 document.body.style.overflow = ""; 2288 clearSearch(); 2289 } 2290 2291 function toggleModal() { 2292 isOpen() ? closeModal() : openModal(); 2293 } 2294 2295 function clearSearch() { 2296 if (searchInput) searchInput.value = ""; 2297 clearAllSelected(); 2298 const resultsContainer = document.getElementById("searchResults"); 2299 if (resultsContainer) resultsContainer.innerHTML = ""; 2300 history.pushState({}, "", window.location.pathname); 2301 resizeModalToContent(); 2302 } 2303 2304 function clearAllSelected() { 2305 document.querySelectorAll(".tag-btn.selected").forEach(btn => btn.classList.remove("selected")); 2306 } 2307 2308 // ----- INITIALIZE (open first accordion if needed when the page loads) ----- 2309 if (accordionIsActive) { 2310 wireAccordionsOnce(); 2311 openFirstAccordion(); 2312 resizeModalToContent(); 2313 } 2314 } 2315 })(); 2316</script>
2316 2317 2318 2319 2320<style> 2321 .mobile-menu-modal { 2322 position: fixed; 2323 top: 0; 2324 left: 0; 2325 width: 100%; 2326 height: 100%; 2327 background: rgba(0,0,0,0.6); 2328 display: none; 2329 justify-content: center; 2330 align-items: center; 2331 z-index: 9999; 2332 } 2333 2334 .mobile-menu-modal.active { 2335 display: flex; 2336 } 2337 2338 .mobile-menu-modal .modal-content { 2339 background: #fff; 2340 padding: 20px; 2341 border-radius: 10px; 2342 width: 90%; 2343 max-width: 400px; 2344 position: relative; 2345 } 2346 2347 .close-btn { 2348 position: absolute; 2349 top: 10px; 2350 right: 10px; 2351 border: none; 2352 background: none; 2353 font-size: 24px; 2354 cursor: pointer; 2355 } 2356 2357 .open-modal-btn { 2358 display: inline-block; 2359 margin-top: 10px; 2360 background: #0078D7; 2361 color: #fff; 2362 padding: 8px 12px; 2363 border-radius: 6px; 2364 text-decoration: none; 2365 } 2366 2367 #search-suggestions { 2368 position: absolute; 2369 top: 100%; 2370 left: 0; 2371 right: 0; 2372 z-index: 9999; 2373 background: #fff; 2374 border: 1px solid rgba(var(--header-link-color), 0.4); 2375 border-top: none; 2376 max-height: 250px; 2377 overflow-y: auto; 2378 display: none; 2379 color: rgba(var(--header-link-color), 1); 2380 } 2381 2382 #search-suggestions mark { 2383 background-color: rgba(var(--base-highlight), 1); 2384 color: #fff; 2385 padding: 0 2px; 2386 border-radius: 2px; 2387 } 2388 2389 #search-suggestions .suggestion-item { 2390 padding: 8px 12px; 2391 cursor: pointer; 2392 color: inherit; 2393 } 2394 2395 #search-suggestions .suggestion-item:hover { 2396 background-color: rgba(var(--base-highlight), 0.1); 2397 } 2398 2399 .suggestion-item .suggestion-text { 2400 font-size: 0.85em; 2401 color: rgba(var(--header-link-color), 1); 2402 margin-left: 3px; 2403 } 2404</style> 2405
2406<script> 2407document.addEventListener("DOMContentLoaded", function () { 2408 2409 const input = document.getElementById("search_field"); 2410 const suggestionsBox = document.getElementById("search-suggestions"); 2411 2412 if (!input || !suggestionsBox) return; 2413 2414 let debounceTimer; 2415 let activeController = null; 2416 2417 const DEBOUNCE_TIME = 120; 2418 2419 document.querySelectorAll(".menu-tag").forEach(tag => { 2420 tag.addEventListener("click", function (e) { 2421 e.preventDefault(); 2422 e.stopPropagation(); 2423 this.classList.toggle("selected"); 2424 clearTagButtons(); 2425 triggerSearch(); 2426 }); 2427 }); 2428 2429 document.addEventListener("click", function (e) { 2430 const btn = e.target.closest(".tag-btn"); 2431 if (!btn) return; 2432 2433 e.preventDefault(); 2434 e.stopPropagation(); 2435 2436 btn.classList.toggle("selected"); 2437 clearMenuTags(); 2438 triggerSearch(); 2439 }); 2440 2441 input.addEventListener("input", function () { 2442 2443 clearTimeout(debounceTimer); 2444 2445 suggestionsBox.innerHTML = ""; 2446 suggestionsBox.style.display = "block"; 2447 2448 debounceTimer = setTimeout(() => { 2449 triggerSearch(); 2450 }, DEBOUNCE_TIME); 2451 }); 2452 2453 function clearMenuTags() { 2454 document.querySelectorAll(".menu-tag.selected") 2455 .forEach(t => t.classList.remove("selected")); 2456 } 2457 2458 function clearTagButtons() { 2459 document.querySelectorAll(".tag-btn.selected") 2460 .forEach(t => t.classList.remove("selected")); 2461 } 2462 2463 function getSelectedMenuTags() { 2464 return Array.from(document.querySelectorAll(".menu-tag.selected")) 2465 .map(t => t.dataset.topic) 2466 .filter(Boolean) 2467 .map(t => t.toLowerCase().trim()); 2468 } 2469 2470 function getSelectedTagButtons() { 2471 return Array.from(document.querySelectorAll(".tag-btn.selected")) 2472 .map(t => t.dataset.topic || t.textContent) 2473 .filter(Boolean) 2474 .map(t => t.toLowerCase().trim()); 2475 } 2476 2477 function triggerSearch() { 2478 2479 const term = input.value.trim(); 2480 2481 if (term.length === 0) { 2482 suggestionsBox.style.display = "none"; 2483 return; 2484 } 2485 2486 const menuTags = getSelectedMenuTags(); 2487 const tagButtons = getSelectedTagButtons(); 2488 2489 if (menuTags.length > 0) { 2490 callContentTypeApi(term, menuTags); 2491 } else { 2492 callTagApi(term, tagButtons); 2493 } 2494 } 2495 2496 function callContentTypeApi(term, types) { 2497 2498 if (!types || !types.length) { 2499 suggestionsBox.style.display = "none"; 2500 return; 2501 } 2502 2503 if (activeController) activeController.abort(); 2504 activeController = new AbortController(); 2505 2506 const url = 2507 "/umbraco/api/searchapi/AutoCompleteByContentTypes" + 2508 "?term=" + encodeURIComponent(term) + 2509 "&contentTypes=" + encodeURIComponent(types.join(",")); 2510 2511 fetch(url, { signal: activeController.signal }) 2512 .then(r => r.json()) 2513 .then(data => renderResultsMenu(data.results, term)) 2514 .catch(err => { 2515 if (err.name !== "AbortError") { 2516 suggestionsBox.style.display = "none"; 2517 } 2518 }); 2519 } 2520 2521 function callTagApi(term, tags) { 2522 2523 if (activeController) activeController.abort(); 2524 activeController = new AbortController(); 2525 2526 const url = 2527 "/umbraco/api/searchapi/autocomplete" + 2528 "?term=" + encodeURIComponent(term) + 2529 (tags.length ? "&tags=" + encodeURIComponent(tags.join(",")) : ""); 2530 2531 fetch(url, { signal: activeController.signal }) 2532 .then(r => r.json()) 2533 .then(data => renderResults(data.results)) 2534 .catch(err => { 2535 if (err.name !== "AbortError") { 2536 suggestionsBox.style.display = "none"; 2537 } 2538 }); 2539 } 2540 2541 function renderResultsMenu(results, searchTerm = "") { 2542 2543 suggestionsBox.innerHTML = ""; 2544 2545 if (!results || !results.length) { 2546 suggestionsBox.style.display = "none"; 2547 return; 2548 } 2549 2550 suggestionsBox.style.display = "block"; 2551 2552 const highlightMatch = (text, term) => { 2553 if (!term) return text; 2554 const regex = new RegExp(`(${term.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")})`, "gi"); 2555 return text.replace(regex, "<mark>$1</mark>"); 2556 }; 2557
2558 results.forEach(item => { 2559 2560 const div = document.createElement("div"); 2561 div.className = "suggestion-item"; 2562 2563 const url = item.url || "#"; 2564 2565 let path = ""; 2566 if (item.menu) path = item.menu; 2567 if (item.submenu) path += path ? " â " + item.submenu : item.submenu; 2568 2569 div.innerHTML = ` 2570 <a href="${url}"> 2571 <strong>${highlightMatch(item.title || "", searchTerm)}</strong> 2572 ${item.text ? `<div class="suggestion-text">${highlightMatch(item.text, searchTerm)}</div>` : ""} 2573 ${path ? `<div class="suggestion-text">${path}</div>` : ""} 2574 </a> 2575 `; 2576 2577 suggestionsBox.appendChild(div); 2578 }); 2579 } 2580 2581 function renderResults(data) { 2582 2583 suggestionsBox.innerHTML = ""; 2584 2585 if (!data || !data.results || !data.results.length) { 2586 suggestionsBox.style.display = "none"; 2587 return; 2588 } 2589 2590 suggestionsBox.style.display = "block"; 2591 2592 data.results.forEach(item => { 2593 2594 const div = document.createElement("div"); 2595 div.className = "suggestion-item"; 2596 2597 const url = item.url || "#"; 2598 2599 div.innerHTML = ` 2600 <a href="${url}"> 2601 <strong>${item.title || ""}</strong> 2602 ${item.text ? `<span class="suggestion-text"> (${item.text})</span>` : ""} 2603 </a> 2604 `; 2605 2606 suggestionsBox.appendChild(div); 2607 }); 2608 } 2609 2610 document.addEventListener("click", function (e) { 2611 2612 if ( 2613 e.target.closest("#search_field") || 2614 e.target.closest("#search-suggestions") || 2615 e.target.closest(".menu-tag") || 2616 e.target.closest(".tag-btn") 2617 ) { 2618 return; 2619 } 2620 2621 suggestionsBox.style.display = "none"; 2622 }); 2623 2624}); 2625</script>
2625 2626 2627 <!-- Content --> 2628 <main id="site-content" tabindex="-1"> 2629 2630 2631 2632 2633 <section class="content component usn_cmp_bannernewlayout base-bg base-bg-solid " > 2634 2635 <div class="component-inner"> 2636 2637 2638 <div class="item item_overlay item_short-banner c1-bg c1-bg-solid " > 2639 2640 <!-- IMAGE --> 2641 <div class=" image lazyload background-image " style="background-image:url('/media/k5ih24vo/header-industries-1500-x-700.png?cc=0,0.03626982740999193,0,0.24944445830429382&width=300&height=100&v=1dc31ff40578010&format=webp')" data-bgset="/media/k5ih24vo/header-industries-1500-x-700.png?cc=0,0.03626982740999193,0,0.24944445830429382&width=1500&height=500&v=1dc31ff40578010&format=webp [type:image/webp] | /media/k5ih24vo/header-industries-1500-x-700.png?cc=0,0.03626982740999193,0,0.24944445830429382&width=1500&height=500&v=1dc31ff40578010 1x, /media/k5ih24vo/header-industries-1500-x-700.png?cc=0,0.03626982740999193,0,0.24944445830429382&width=3000&height=1000&v=1dc31ff40578010&format=webp [type:image/webp] | /media/k5ih24vo/header-industries-1500-x-700.png?cc=0,0.03626982740999193,0,0.24944445830429382&width=3000&height=1000&v=1dc31ff40578010 2x" data-sizes="auto" role="img" aria-label="Markets and Industries "> 2642 2643 </div> 2644 <!--// IMAGE --> 2645 2646 <div class="inner"> 2647 <div class="container"> 2648 <div class="row text-left justify-content-start info_align-middle mobileClassmargin" > 2649 2650 <div class="info col"> 2651 <div class="d-table"> 2652 2653 <div class="d-table-cell"> 2654 2655 <h3 class="heading c1-heading " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s" >INDUSTRIES</h3> 2656 2657 <div class="text c1-text " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 2658 <p class="intro">Explore insights across your sectors to spark innovation and bold ideas. Our deep understanding of how technologies evolve and integrate across ecosystems empowers you to navigate complexity and optimise strategy.</p> 2659 </div> 2660 </div> 2661 </div> 2662 </div> 2663 </div> 2664 2665 </div> 2666 2667 </div> 2668 </div> 2669 <style> 2670 2671.squeezed-image-container { 2672 width: 100% !important; /* Full width */ 2673 background-size: 100% 100% !important; /* Ensures image fills the space */ 2674 background-position: center !important; /* Centers image */ 2675 background-repeat: no-repeat !important; /* Prevents tiling */ 2676 align-items: center !important; /* Centers content vertically */ 2677 justify-content: center !important; /* Centers content horizontally */ 2678 box-sizing: border-box !important; 2679} 2680 2681 .component.usn_cmp_banner .item:not(.item_scale-banner_overlap) .info { 2682 padding: inherit; 2683 } 2684 .bannerimagemobilecss { 2685 transition: none; 2686 border: 8px solid; 2687 width: 130px; 2688 height: 130px; 2689 display: flex; 2690 align-items: center; 2691 justify-content: center; 2692 border-radius: 50%; 2693 font-size: 14px; 2694 position: relative; 2695 overflow: hidden; 2696} 2697 .usn_cmp_banner .slick-slider .slick-autoplay-toggle-button, .usn_cmp_banner .slick-slider .slick-prev, .usn_cmp_banner .slick-slider .slick-next { 2698 width: 60px; 2699 height: 150px; 2700 } 2701@media (max-width: 599.98px) { 2702 .mobilesplitpercentage1 .link a.btn { 2703 font-size: 10px; 2704 line-height: 1; 2705 } 2706 .mobilesplitpercentage1 .link a.btn i { 2707 font-size: 10px; 2708 } 2709} 2710@media (max-width: 599.98px) { 2711 2712 .mobileClassmargin { 2713 margin: auto !important; 2714 } 2715 .mobilesplitpercentage1{ 2716 width: 70% !important; 2717 display: block !important; 2718 } 2719 .mobilesplitpercentage2{ 2720 width: 30% !important; 2721 display: block !important; 2722 } 2723 .mobilesplitpercentage2 .intro,.link ,.heading { 2724 margin:0px !important; 2725 padding:0px !important; 2726 } 2727 2728} 2729 2730 2731@media (min-width: 701px) and (max-width: 990px) { 2732 .bannerimagemobilecss { 2733 width: 80px !important; 2734 height: 80px !important; 2735 border: 5px solid !important; 2736 } 2737 .bannerinnerbtnimage { 2738 font-size: 50px !important; 2739 } 2740 .bannerinnerbtnimage, 2741 .bannerinnerbtnimage .icon { 2742 margin: 0 !important; 2743 padding: 0 !important; 2744 } 2745 .mobiletextclass{ 2746 font-size: 14px !important; 2747 } 2748} 2749@media (min-width: 399px) and (max-width: 700px) { 2750 2751 .bannerimagemobilecss { 2752 width: 50px !important; 2753 height: 50px !important; 2754 border: 4px solid !important; 2755 } 2756 .bannerinnerbtnimage { 2757 font-size: 25px !important; 2758 } 2759 .bannerinnerbtnimage, 2760 .bannerinnerbtnimage .icon { 2761 margin: 0 !important; 2762 padding: 0 !important; 2763 } 2764 .mobiletextclass{ 2765 font-size: 12px !important; 2766 2767 } 2768 2769} 2770 2771 2772@media (max-width: 398px) { 2773 .bannerimagemobilecss { 2774 width: 18px !important; 2775 height: 40px !important; 2776 border: 3px solid !important; 2777 margin: 0 !important; 2778 } 2779 .bannerinnerbtnimage { 2780 font-size: 20px !important; 2781 margin-top: 0 !important; 2782 2783 } 2784 .bannerinnerbtnimage, 2785 .bannerinnerbtnimage .icon { 2786 margin: 0 !important; 2787 padding: 0 !important; 2788 2789 } 2790 .mobiletextclass{ 2791 font-size: 8px !important; 2792 margin-top: 0 !important; 2793 padding-top: 0 !important; 2794 padding-bottom: 0 !important; 2795 padding-left: 0 !important; 2796 padding-right: 0 !important; 2797 } 2798 .mobilesplitpercentage1 .heading { 2799 margin:0px !important; 2800 padding:0px !important; 2801 font-size: 22px !important; 2802 margin: 0 !important; 2803 padding: 0 !important; 2804 2805 } 2806 .mobilesplitpercentage1 .intro { 2807 font-size: 12px !important; 2808 margin: 0 !important; 2809 padding: 0 !important; 2810 } 2811 2812} 2813/* @media (max-width: 408px) { 2814 .heading { 2815 margin:0px !important; 2816 padding:0px !important; 2817 font-size: 24px !important; 2818 2819 } 2820 .intro { 2821 font-size: 14px !important; 2822 } 2823} */ 2824 2825/* @media (max-width: 408px) { 2826 .bannerimagemobilecss {
2827 width: 20px !important; 2828 height: 40px !important; 2829 border: 3px solid !important; 2830 margin: 0 !important; 2831 2832 2833 } 2834} */ 2835 2836/* @media (max-width: 760px) { 2837 2838 .buttonscssformobile { 2839 overflow-y: auto !important; 2840 } 2841 2842} */ 2843</style> 2844<style> 2845/* ââ THE CRITICAL FIX ââââââââââââââââââââââââââââââââââââââââââââââââââââââ 2846 Scoped override cancels the global .slick-track { width:100% !important } 2847 rule that was squashing slides to 50% width on sub-pages. */ 2848.usn_cmp_bannernewlayout .slick-track { 2849 width: auto !important; 2850} 2851 2852/* ââ Layout ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2853.squeezed-image-container { 2854 width: 100% !important; 2855 background-size: 100% 100% !important; 2856 background-position: center !important; 2857 background-repeat: no-repeat !important; 2858 align-items: center !important; 2859 justify-content: center !important; 2860 box-sizing: border-box !important; 2861} 2862.component.usn_cmp_banner .item:not(.item_scale-banner_overlap) .info { 2863 padding: inherit; 2864} 2865.bannerimagemobilecss { 2866 transition: none; 2867 border: 8px solid; 2868 width: 130px; 2869 height: 130px; 2870 display: flex; 2871 align-items: center; 2872 justify-content: center; 2873 border-radius: 50%; 2874 font-size: 14px; 2875 position: relative; 2876 overflow: hidden; 2877} 2878.usn_cmp_banner .slick-slider .slick-autoplay-toggle-button, 2879.usn_cmp_banner .slick-slider .slick-prev, 2880.usn_cmp_banner .slick-slider .slick-next { 2881 width: 60px; 2882 height: 150px; 2883} 2884 2885/* ââ Mobile âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2886@media (max-width: 599.98px) { 2887 .mobilesplitpercentage1 .link a.btn { font-size: 10px; line-height: 1; } 2888 .mobilesplitpercentage1 .link a.btn i { font-size: 10px; } 2889 .mobileClassmargin { margin: auto !important; } 2890 .mobilesplitpercentage1 { width: 70% !important; display: block !important; } 2891 .mobilesplitpercentage2 { width: 30% !important; display: block !important; } 2892 .mobilesplitpercentage2 .intro, 2893 .mobilesplitpercentage2 .link, 2894 .mobilesplitpercentage2 .heading { margin: 0 !important; padding: 0 !important; } 2895} 2896@media (min-width: 701px) and (max-width: 990px) { 2897 .bannerimagemobilecss { width: 80px !important; height: 80px !important; border: 5px solid !important; } 2898 .bannerinnerbtnimage { font-size: 50px !important; } 2899 .bannerinnerbtnimage, .bannerinnerbtnimage .icon { margin: 0 !important; padding: 0 !important; } 2900 .mobiletextclass { font-size: 14px !important; } 2901} 2902@media (min-width: 399px) and (max-width: 700px) { 2903 .bannerimagemobilecss { width: 50px !important; height: 50px !important; border: 4px solid !important; } 2904 .bannerinnerbtnimage { font-size: 25px !important; } 2905 .bannerinnerbtnimage, .bannerinnerbtnimage .icon { margin: 0 !important; padding: 0 !important; } 2906 .mobiletextclass { font-size: 12px !important; } 2907} 2908@media (max-width: 398px) { 2909 .bannerimagemobilecss { width: 18px !important; height: 40px !important; border: 3px solid !important; margin: 0 !important; } 2910 .bannerinnerbtnimage { font-size: 20px !important; margin-top: 0 !important; } 2911 .bannerinnerbtnimage, .bannerinnerbtnimage .icon { margin: 0 !important; padding: 0 !important; } 2912 .mobiletextclass { font-size: 8px !important; padding: 0 !important; margin-top: 0 !important; } 2913 .mobilesplitpercentage1 .heading { font-size: 22px !important; margin: 0 !important; padding: 0 !important; } 2914 .mobilesplitpercentage1 .intro { font-size: 12px !important; margin: 0 !important; padding: 0 !important; } 2915} 2916</style>
2917<script type="text/javascript"> 2918document.addEventListener("DOMContentLoaded", function () { 2919 2920 $('.usn_cmp_bannernewlayout').addClass('usn_cmp_banner'); 2921 2922 // The .slick-track { width:100% !important } rule on sub-pages squashes 2923 // slides to 50% width. The CSS above fixes it. This JS calls setPosition 2924 // so Slick recalculates slide widths after the CSS is applied. 2925 var SEL = '.usn_cmp_bannernewlayout .slides'; 2926 2927 function fixSlider() { 2928 var $slider = $(SEL); 2929 if ($slider.length && $slider.hasClass('slick-initialized')) { 2930 $slider.slick('setPosition'); 2931 } 2932 } 2933 2934 // After all resources load (ensures Slick has already run) 2935 window.addEventListener('load', function () { 2936 fixSlider(); 2937 setTimeout(fixSlider, 300); 2938 }); 2939 2940}); 2941</script>
2941 2942 2943 2944 2945 2946 </div> 2947 </section> 2948 2949 2950 2951 2952 <section class="content component usn_cmp_reusablecomponents base-bg base-bg-solid " > 2953 2954 <div class="component-inner"> 2955 <div class="container"> 2956 2957 2958 <div class="" data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 2959 2960 <section class="content component usn_cmp_podsnewlayout base-bg base-bg-solid pt-0 " > 2961 2962 <div class="component-inner"> 2963 <div class="container"> 2964 2965 <!-- Introduction --> 2966 <div class="component-introduction row justify-content-start text-left " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 2967 <div class="info col"> 2968 2969 <h2 class="heading base-heading " >LONG STANDING INDUSTRY EXPERTISE</h2> 2970 2971 <div class="text base-text"> 2972 <p class="intro">Our roots and relationships lie deep in our sectors where we are proud to create value and share thought leadership while collaborating with industry associations, think tanks, and the media.</p> 2973 </div> 2974 </div> 2975 </div> 2976 <!--// Introduction --> 2977 2978 2979 <div class=" element " id="bgid" style=" " data-introImageURL="" 2980 data-activeLayout="False" 2981 data-introEnable="True" 2982 data-outroEnable="False" 2983 data-introTextSplit="True" 2984 data-outroTextSplit="False" 2985 data-introEnableTextSplitAlignment="justify-content-start text-left" 2986 data-outroEnableTextSplitAlignment="" 2987 data-introHeadingPosition="align-self-center" 2988 data-introReverseSpitedTextPostion="True" 2989 data-outroReverseSpitedTextPostion="False" 2990 data-enbledradius="False"> 2991 <div class="component-main row listing listing_basic-grid listing-pods slides d-flex justify-content-start align-items-center 2992 d-flex flex-wrap align-items-stretch" data-slick='{"autoplay": true, "autoplaySpeed": 2500,"dots": false ,"arrows": true ,"slidesToShow": 4, "responsive": [{"breakpoint": 992,"settings": {"slidesToShow": 3}},{"breakpoint": 768,"settings": {"slidesToShow": 3}},{"breakpoint": 575,"settings": {"slidesToShow": 1}}],"fade": false }'> 2993 <div style="margin:7px; padding-bottom:10px;" id="fullheightitemPod" class="item items-4 item_text-boxed item_overlay usn_pod_textimagenewlayout text-center " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 2994 2995 2996 <div id="fullheightitemPod" class="inner c1-bg c1-bg-solid rounded-circle " data-id="" style=" "> 2997 <a href="/industries/audio/" > 2998 <div class="image c1-bg c1-bg-solid rounded-circle" style=" "> 2999 3000 <picture> 3001 <source type="image/webp" data-srcset="/media/3lhj1hpu/industries-images-audio-png.png?width=800&height=800&v=1dc32036142ca10&format=webp 1x, /media/3lhj1hpu/industries-images-audio-png.png?width=1600&height=1600&v=1dc32036142ca10&format=webp 2x" width="800" height="800"> 3002 <img class="lazyload rounded-circle" src="/media/3lhj1hpu/industries-images-audio-png.png?width=160&height=160&v=1dc32036142ca10&format=webp" width="800" height="800" data-srcset="/media/3lhj1hpu/industries-images-audio-png.png?width=800&height=800&v=1dc32036142ca10&format=webp 1x, /media/3lhj1hpu/industries-images-audio-png.png?width=1600&height=1600&v=1dc32036142ca10&format=webp 2x" alt="Audio Industry"> 3003 </picture> 3004 3005 </div> 3006 <div class="info align-self-center" style=" overflow-wrap: break-word;"> 3007 3008 <p class="heading c1-heading " >Audio</p> 3009 3010 3011 </div> 3012 </a> 3013 </div> 3014<style> 3015 #videoid:hover { 3016 transform: scale(1.04578) !important; 3017 transition: transform 0.8s ease !important; 3018 } 3019 /* #videoid { 3020 3021 margin-left:5px !important; 3022 margin-right:15px !important; 3023 margin-bottom:0px !important; 3024 3025 } */ 3026 3027 #videoid { 3028 max-width: 100%; 3029 margin-left: 13px; 3030 margin-right: 13px; 3031 overflow: hidden; 3032 } 3033 3034 #videoid img { 3035 width: 100%; /* Ensures the image fits within its parent */ 3036 height: auto; /* Keeps aspect ratio intact */ 3037 display: block; /* Prevents image from being inline */ 3038 } 3039 .popup-modal { 3040 display: none; /* Hidden by default */ 3041 3042 position: fixed; 3043 z-index: 1000; 3044 left: 0; 3045 top: 0; 3046 width: 100%; 3047 height: 100%; 3048 overflow: auto; 3049 background-color: rgba(0, 0, 0, 0.7); 3050 } 3051 3052 3053 .popup-content { 3054 background-color: #fff; 3055 margin: 10% auto; 3056 padding: 20px; 3057 border: 2px solid #0077cc; 3058 width: 80%; 3059 max-width: 500px; 3060 position: relative; 3061 border-radius: 8px; 3062 } 3063 3064 .popup-close { 3065 position: absolute; 3066 top: 15px; 3067 right: 20px; 3068 font-size: 24px; 3069 font-weight: bold; 3070 color: #333; 3071 cursor: pointer; 3072 } 3073 .popup-content h2 { 3074 margin:0 !important; 3075 text-align: center; 3076} 3077 3078.popup-content p { 3079 text-align: left; 3080 margin: 0; 3081 width: 100%; 3082 display: block; 3083} 3084 3085.popup-content .btn { 3086 margin-left: auto; 3087 display: inline-block; 3088} 3089.popup-trigger {
3090 cursor: pointer !important; 3091} 3092 @media (max-width: 768px) { 3093 .popup-modal { 3094 padding-top:180px !important; 3095 } 3096} 3097 3098 3099</style>
3100<script type="text/javascript"> 3101 document.addEventListener("DOMContentLoaded", function () { 3102 // Open popup when trigger clicked 3103 document.querySelectorAll(".popup-trigger").forEach(trigger => { 3104 trigger.addEventListener("click", function () { 3105 const id = trigger.getAttribute("data-id"); 3106 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 3107 if (popup) { 3108 popup.style.display = "block"; 3109 } 3110 }); 3111 }); 3112 3113 // Close popup when close button clicked 3114 document.querySelectorAll(".popup-close").forEach(closeBtn => { 3115 closeBtn.addEventListener("click", function () { 3116 const popup = closeBtn.closest(".popup-modal"); 3117 if (popup) { 3118 popup.style.display = "none"; 3119 } 3120 }); 3121 }); 3122 3123 // Close popup when clicking outside the popup content 3124 window.addEventListener("click", function (e) { 3125 if (e.target.classList.contains("popup-modal")) { 3126 e.target.style.display = "none"; 3127 } 3128 }); 3129 }); 3130 3131</script>
3131 3132 3133 3134 3135 </div> 3136 3137 3138 3139 3140 <div style="margin:7px; padding-bottom:10px;" id="fullheightitemPod" class="item items-4 item_text-boxed item_overlay usn_pod_textimagenewlayout text-center " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 3141 3142 3143 <div id="fullheightitemPod" class="inner c1-bg c1-bg-solid rounded-circle " data-id="" style=" "> 3144 <a href="/industries/collaboration/" > 3145 <div class="image c1-bg c1-bg-solid rounded-circle" style=" "> 3146 3147 <picture> 3148 <source type="image/webp" data-srcset="/media/tmcndjm3/industries-images-collaboration-png.png?width=800&height=800&v=1dc320337807b50&format=webp 1x, /media/tmcndjm3/industries-images-collaboration-png.png?width=1600&height=1600&v=1dc320337807b50&format=webp 2x" width="800" height="800"> 3149 <img class="lazyload rounded-circle" src="/media/tmcndjm3/industries-images-collaboration-png.png?width=160&height=160&v=1dc320337807b50&format=webp" width="800" height="800" data-srcset="/media/tmcndjm3/industries-images-collaboration-png.png?width=800&height=800&v=1dc320337807b50&format=webp 1x, /media/tmcndjm3/industries-images-collaboration-png.png?width=1600&height=1600&v=1dc320337807b50&format=webp 2x" alt="Collaboration Industry"> 3150 </picture> 3151 3152 </div> 3153 <div class="info align-self-center" style=" overflow-wrap: break-word;"> 3154 3155 <p class="heading c1-heading " >Collaboration</p> 3156 3157 3158 </div> 3159 </a> 3160 </div> 3161<style> 3162 #videoid:hover { 3163 transform: scale(1.04578) !important; 3164 transition: transform 0.8s ease !important; 3165 } 3166 /* #videoid { 3167 3168 margin-left:5px !important; 3169 margin-right:15px !important; 3170 margin-bottom:0px !important; 3171 3172 } */ 3173 3174 #videoid { 3175 max-width: 100%; 3176 margin-left: 13px; 3177 margin-right: 13px; 3178 overflow: hidden; 3179 } 3180 3181 #videoid img { 3182 width: 100%; /* Ensures the image fits within its parent */ 3183 height: auto; /* Keeps aspect ratio intact */ 3184 display: block; /* Prevents image from being inline */ 3185 } 3186 .popup-modal { 3187 display: none; /* Hidden by default */ 3188 3189 position: fixed; 3190 z-index: 1000; 3191 left: 0; 3192 top: 0; 3193 width: 100%; 3194 height: 100%; 3195 overflow: auto; 3196 background-color: rgba(0, 0, 0, 0.7); 3197 } 3198 3199 3200 .popup-content { 3201 background-color: #fff; 3202 margin: 10% auto; 3203 padding: 20px; 3204 border: 2px solid #0077cc; 3205 width: 80%; 3206 max-width: 500px; 3207 position: relative; 3208 border-radius: 8px; 3209 } 3210 3211 .popup-close { 3212 position: absolute; 3213 top: 15px; 3214 right: 20px; 3215 font-size: 24px; 3216 font-weight: bold; 3217 color: #333; 3218 cursor: pointer; 3219 } 3220 .popup-content h2 { 3221 margin:0 !important; 3222 text-align: center; 3223} 3224 3225.popup-content p { 3226 text-align: left; 3227 margin: 0; 3228 width: 100%; 3229 display: block; 3230} 3231 3232.popup-content .btn { 3233 margin-left: auto; 3234 display: inline-block; 3235} 3236.popup-trigger { 3237 cursor: pointer !important; 3238} 3239 @media (max-width: 768px) { 3240 .popup-modal { 3241 padding-top:180px !important; 3242 } 3243} 3244 3245 3246</style>
3247<script type="text/javascript"> 3248 document.addEventListener("DOMContentLoaded", function () { 3249 // Open popup when trigger clicked 3250 document.querySelectorAll(".popup-trigger").forEach(trigger => { 3251 trigger.addEventListener("click", function () { 3252 const id = trigger.getAttribute("data-id"); 3253 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 3254 if (popup) { 3255 popup.style.display = "block"; 3256 } 3257 }); 3258 }); 3259 3260 // Close popup when close button clicked 3261 document.querySelectorAll(".popup-close").forEach(closeBtn => { 3262 closeBtn.addEventListener("click", function () { 3263 const popup = closeBtn.closest(".popup-modal"); 3264 if (popup) { 3265 popup.style.display = "none"; 3266 } 3267 }); 3268 }); 3269 3270 // Close popup when clicking outside the popup content 3271 window.addEventListener("click", function (e) { 3272 if (e.target.classList.contains("popup-modal")) { 3273 e.target.style.display = "none"; 3274 } 3275 }); 3276 }); 3277 3278</script>
3278 3279 3280 3281 3282 </div> 3283 3284 3285 3286 3287 <div style="margin:7px; padding-bottom:10px;" id="fullheightitemPod" class="item items-4 item_text-boxed item_overlay usn_pod_textimagenewlayout text-center " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 3288 3289 3290 <div id="fullheightitemPod" class="inner c1-bg c1-bg-solid rounded-circle " data-id="" style=" "> 3291 <a href="/industries/consumer-electronics/" > 3292 <div class="image c1-bg c1-bg-solid rounded-circle" style=" "> 3293 3294 <picture> 3295 <source type="image/webp" data-srcset="/media/5i2itv5g/industries-images-consumer-electronics-png.png?width=800&height=800&v=1dc320350c4aeb0&format=webp 1x, /media/5i2itv5g/industries-images-consumer-electronics-png.png?width=1600&height=1600&v=1dc320350c4aeb0&format=webp 2x" width="800" height="800"> 3296 <img class="lazyload rounded-circle" src="/media/5i2itv5g/industries-images-consumer-electronics-png.png?width=160&height=160&v=1dc320350c4aeb0&format=webp" width="800" height="800" data-srcset="/media/5i2itv5g/industries-images-consumer-electronics-png.png?width=800&height=800&v=1dc320350c4aeb0&format=webp 1x, /media/5i2itv5g/industries-images-consumer-electronics-png.png?width=1600&height=1600&v=1dc320350c4aeb0&format=webp 2x" alt="Consumer Electronics Industry"> 3297 </picture> 3298 3299 </div> 3300 <div class="info align-self-center" style=" overflow-wrap: break-word;"> 3301 3302 <p class="heading c1-heading " >Consumer Electronics</p> 3303 3304 3305 </div> 3306 </a> 3307 </div> 3308<style> 3309 #videoid:hover { 3310 transform: scale(1.04578) !important; 3311 transition: transform 0.8s ease !important; 3312 } 3313 /* #videoid { 3314 3315 margin-left:5px !important; 3316 margin-right:15px !important; 3317 margin-bottom:0px !important; 3318 3319 } */ 3320 3321 #videoid { 3322 max-width: 100%; 3323 margin-left: 13px; 3324 margin-right: 13px; 3325 overflow: hidden; 3326 } 3327 3328 #videoid img { 3329 width: 100%; /* Ensures the image fits within its parent */ 3330 height: auto; /* Keeps aspect ratio intact */ 3331 display: block; /* Prevents image from being inline */ 3332 } 3333 .popup-modal { 3334 display: none; /* Hidden by default */ 3335 3336 position: fixed; 3337 z-index: 1000; 3338 left: 0; 3339 top: 0; 3340 width: 100%; 3341 height: 100%; 3342 overflow: auto; 3343 background-color: rgba(0, 0, 0, 0.7); 3344 } 3345 3346 3347 .popup-content { 3348 background-color: #fff; 3349 margin: 10% auto; 3350 padding: 20px; 3351 border: 2px solid #0077cc; 3352 width: 80%; 3353 max-width: 500px; 3354 position: relative; 3355 border-radius: 8px; 3356 } 3357 3358 .popup-close { 3359 position: absolute; 3360 top: 15px; 3361 right: 20px; 3362 font-size: 24px; 3363 font-weight: bold; 3364 color: #333; 3365 cursor: pointer; 3366 } 3367 .popup-content h2 { 3368 margin:0 !important; 3369 text-align: center; 3370} 3371 3372.popup-content p { 3373 text-align: left; 3374 margin: 0; 3375 width: 100%; 3376 display: block; 3377} 3378 3379.popup-content .btn { 3380 margin-left: auto; 3381 display: inline-block; 3382} 3383.popup-trigger { 3384 cursor: pointer !important; 3385} 3386 @media (max-width: 768px) { 3387 .popup-modal { 3388 padding-top:180px !important; 3389 } 3390} 3391 3392 3393</style>
3394<script type="text/javascript"> 3395 document.addEventListener("DOMContentLoaded", function () { 3396 // Open popup when trigger clicked 3397 document.querySelectorAll(".popup-trigger").forEach(trigger => { 3398 trigger.addEventListener("click", function () { 3399 const id = trigger.getAttribute("data-id"); 3400 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 3401 if (popup) { 3402 popup.style.display = "block"; 3403 } 3404 }); 3405 }); 3406 3407 // Close popup when close button clicked 3408 document.querySelectorAll(".popup-close").forEach(closeBtn => { 3409 closeBtn.addEventListener("click", function () { 3410 const popup = closeBtn.closest(".popup-modal"); 3411 if (popup) { 3412 popup.style.display = "none"; 3413 } 3414 }); 3415 }); 3416 3417 // Close popup when clicking outside the popup content 3418 window.addEventListener("click", function (e) { 3419 if (e.target.classList.contains("popup-modal")) { 3420 e.target.style.display = "none"; 3421 } 3422 }); 3423 }); 3424 3425</script>
3425 3426 3427 3428 3429 </div> 3430 3431 3432 3433 3434 <div style="margin:7px; padding-bottom:10px;" id="fullheightitemPod" class="item items-4 item_text-boxed item_overlay usn_pod_textimagenewlayout text-center " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 3435 3436 3437 <div id="fullheightitemPod" class="inner c1-bg c1-bg-solid rounded-circle " data-id="" style=" "> 3438 <a href="/industries/displays/" > 3439 <div class="image c1-bg c1-bg-solid rounded-circle" style=" "> 3440 3441 <picture> 3442 <source type="image/webp" data-srcset="/media/rsuny0bm/industries-images-displays-png.png?width=800&height=800&v=1dc3203054c9d30&format=webp 1x, /media/rsuny0bm/industries-images-displays-png.png?width=1600&height=1600&v=1dc3203054c9d30&format=webp 2x" width="800" height="800"> 3443 <img class="lazyload rounded-circle" src="/media/rsuny0bm/industries-images-displays-png.png?width=160&height=160&v=1dc3203054c9d30&format=webp" width="800" height="800" data-srcset="/media/rsuny0bm/industries-images-displays-png.png?width=800&height=800&v=1dc3203054c9d30&format=webp 1x, /media/rsuny0bm/industries-images-displays-png.png?width=1600&height=1600&v=1dc3203054c9d30&format=webp 2x" alt="Displays Industry"> 3444 </picture> 3445 3446 </div> 3447 <div class="info align-self-center" style=" overflow-wrap: break-word;"> 3448 3449 <p class="heading c1-heading " >Displays</p> 3450 3451 3452 </div> 3453 </a> 3454 </div> 3455<style> 3456 #videoid:hover { 3457 transform: scale(1.04578) !important; 3458 transition: transform 0.8s ease !important; 3459 } 3460 /* #videoid { 3461 3462 margin-left:5px !important; 3463 margin-right:15px !important; 3464 margin-bottom:0px !important; 3465 3466 } */ 3467 3468 #videoid { 3469 max-width: 100%; 3470 margin-left: 13px; 3471 margin-right: 13px; 3472 overflow: hidden; 3473 } 3474 3475 #videoid img { 3476 width: 100%; /* Ensures the image fits within its parent */ 3477 height: auto; /* Keeps aspect ratio intact */ 3478 display: block; /* Prevents image from being inline */ 3479 } 3480 .popup-modal { 3481 display: none; /* Hidden by default */ 3482 3483 position: fixed; 3484 z-index: 1000; 3485 left: 0; 3486 top: 0; 3487 width: 100%; 3488 height: 100%; 3489 overflow: auto; 3490 background-color: rgba(0, 0, 0, 0.7); 3491 } 3492 3493 3494 .popup-content { 3495 background-color: #fff; 3496 margin: 10% auto; 3497 padding: 20px; 3498 border: 2px solid #0077cc; 3499 width: 80%; 3500 max-width: 500px; 3501 position: relative; 3502 border-radius: 8px; 3503 } 3504 3505 .popup-close { 3506 position: absolute; 3507 top: 15px; 3508 right: 20px; 3509 font-size: 24px; 3510 font-weight: bold; 3511 color: #333; 3512 cursor: pointer; 3513 } 3514 .popup-content h2 { 3515 margin:0 !important; 3516 text-align: center; 3517} 3518 3519.popup-content p { 3520 text-align: left; 3521 margin: 0; 3522 width: 100%; 3523 display: block; 3524} 3525 3526.popup-content .btn { 3527 margin-left: auto; 3528 display: inline-block; 3529} 3530.popup-trigger { 3531 cursor: pointer !important; 3532} 3533 @media (max-width: 768px) { 3534 .popup-modal { 3535 padding-top:180px !important; 3536 } 3537} 3538 3539 3540</style>
3541<script type="text/javascript"> 3542 document.addEventListener("DOMContentLoaded", function () { 3543 // Open popup when trigger clicked 3544 document.querySelectorAll(".popup-trigger").forEach(trigger => { 3545 trigger.addEventListener("click", function () { 3546 const id = trigger.getAttribute("data-id"); 3547 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 3548 if (popup) { 3549 popup.style.display = "block"; 3550 } 3551 }); 3552 }); 3553 3554 // Close popup when close button clicked 3555 document.querySelectorAll(".popup-close").forEach(closeBtn => { 3556 closeBtn.addEventListener("click", function () { 3557 const popup = closeBtn.closest(".popup-modal"); 3558 if (popup) { 3559 popup.style.display = "none"; 3560 } 3561 }); 3562 }); 3563 3564 // Close popup when clicking outside the popup content 3565 window.addEventListener("click", function (e) { 3566 if (e.target.classList.contains("popup-modal")) { 3567 e.target.style.display = "none"; 3568 } 3569 }); 3570 }); 3571 3572</script>
3572 3573 3574 3575 3576 </div> 3577 3578 3579 3580 3581 <div style="margin:7px; padding-bottom:10px;" id="fullheightitemPod" class="item items-4 item_text-boxed item_overlay usn_pod_textimagenewlayout text-center " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 3582 3583 3584 <div id="fullheightitemPod" class="inner c1-bg c1-bg-solid rounded-circle " data-id="" style=" "> 3585 <a href="/industries/education/" > 3586 <div class="image c1-bg c1-bg-solid rounded-circle" style=" "> 3587 3588 <picture> 3589 <source type="image/webp" data-srcset="/media/racj0wbe/education.png?width=800&height=800&v=1dc32031eb1c610&format=webp 1x, /media/racj0wbe/education.png?width=1600&height=1600&v=1dc32031eb1c610&format=webp 2x" width="800" height="800"> 3590 <img class="lazyload rounded-circle" src="/media/racj0wbe/education.png?width=160&height=160&v=1dc32031eb1c610&format=webp" width="800" height="800" data-srcset="/media/racj0wbe/education.png?width=800&height=800&v=1dc32031eb1c610&format=webp 1x, /media/racj0wbe/education.png?width=1600&height=1600&v=1dc32031eb1c610&format=webp 2x" alt="Education Industry"> 3591 </picture> 3592 3593 </div> 3594 <div class="info align-self-center" style=" overflow-wrap: break-word;"> 3595 3596 <p class="heading c1-heading " >Education</p> 3597 3598 3599 </div> 3600 </a> 3601 </div> 3602<style> 3603 #videoid:hover { 3604 transform: scale(1.04578) !important; 3605 transition: transform 0.8s ease !important; 3606 } 3607 /* #videoid { 3608 3609 margin-left:5px !important; 3610 margin-right:15px !important; 3611 margin-bottom:0px !important; 3612 3613 } */ 3614 3615 #videoid { 3616 max-width: 100%; 3617 margin-left: 13px; 3618 margin-right: 13px; 3619 overflow: hidden; 3620 } 3621 3622 #videoid img { 3623 width: 100%; /* Ensures the image fits within its parent */ 3624 height: auto; /* Keeps aspect ratio intact */ 3625 display: block; /* Prevents image from being inline */ 3626 } 3627 .popup-modal { 3628 display: none; /* Hidden by default */ 3629 3630 position: fixed; 3631 z-index: 1000; 3632 left: 0; 3633 top: 0; 3634 width: 100%; 3635 height: 100%; 3636 overflow: auto; 3637 background-color: rgba(0, 0, 0, 0.7); 3638 } 3639 3640 3641 .popup-content { 3642 background-color: #fff; 3643 margin: 10% auto; 3644 padding: 20px; 3645 border: 2px solid #0077cc; 3646 width: 80%; 3647 max-width: 500px; 3648 position: relative; 3649 border-radius: 8px; 3650 } 3651 3652 .popup-close { 3653 position: absolute; 3654 top: 15px; 3655 right: 20px; 3656 font-size: 24px; 3657 font-weight: bold; 3658 color: #333; 3659 cursor: pointer; 3660 } 3661 .popup-content h2 { 3662 margin:0 !important; 3663 text-align: center; 3664} 3665 3666.popup-content p { 3667 text-align: left; 3668 margin: 0; 3669 width: 100%; 3670 display: block; 3671} 3672 3673.popup-content .btn { 3674 margin-left: auto; 3675 display: inline-block; 3676} 3677.popup-trigger { 3678 cursor: pointer !important; 3679} 3680 @media (max-width: 768px) { 3681 .popup-modal { 3682 padding-top:180px !important; 3683 } 3684} 3685 3686 3687</style>
3688<script type="text/javascript"> 3689 document.addEventListener("DOMContentLoaded", function () { 3690 // Open popup when trigger clicked 3691 document.querySelectorAll(".popup-trigger").forEach(trigger => { 3692 trigger.addEventListener("click", function () { 3693 const id = trigger.getAttribute("data-id"); 3694 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 3695 if (popup) { 3696 popup.style.display = "block"; 3697 } 3698 }); 3699 }); 3700 3701 // Close popup when close button clicked 3702 document.querySelectorAll(".popup-close").forEach(closeBtn => { 3703 closeBtn.addEventListener("click", function () { 3704 const popup = closeBtn.closest(".popup-modal"); 3705 if (popup) { 3706 popup.style.display = "none"; 3707 } 3708 }); 3709 }); 3710 3711 // Close popup when clicking outside the popup content 3712 window.addEventListener("click", function (e) { 3713 if (e.target.classList.contains("popup-modal")) { 3714 e.target.style.display = "none"; 3715 } 3716 }); 3717 }); 3718 3719</script>
3719 3720 3721 3722 3723 </div> 3724 3725 3726 3727 3728 <div style="margin:7px; padding-bottom:10px;" id="fullheightitemPod" class="item items-4 item_text-boxed item_overlay usn_pod_textimagenewlayout text-center " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 3729 3730 3731 <div id="fullheightitemPod" class="inner c1-bg c1-bg-solid rounded-circle " data-id="" style=" "> 3732 <a href="/industries/entertainment/" > 3733 <div class="image c1-bg c1-bg-solid rounded-circle" style=" "> 3734 3735 <picture> 3736 <source type="image/webp" data-srcset="/media/czeh0hi1/entertainment-content.png?width=800&height=800&v=1dc320314feb600&format=webp 1x, /media/czeh0hi1/entertainment-content.png?width=1600&height=1600&v=1dc320314feb600&format=webp 2x" width="800" height="800"> 3737 <img class="lazyload rounded-circle" src="/media/czeh0hi1/entertainment-content.png?width=160&height=160&v=1dc320314feb600&format=webp" width="800" height="800" data-srcset="/media/czeh0hi1/entertainment-content.png?width=800&height=800&v=1dc320314feb600&format=webp 1x, /media/czeh0hi1/entertainment-content.png?width=1600&height=1600&v=1dc320314feb600&format=webp 2x" alt="Entertainment Industry"> 3738 </picture> 3739 3740 </div> 3741 <div class="info align-self-center" style=" overflow-wrap: break-word;"> 3742 3743 <p class="heading c1-heading " >Entertainment</p> 3744 3745 3746 </div> 3747 </a> 3748 </div> 3749<style> 3750 #videoid:hover { 3751 transform: scale(1.04578) !important; 3752 transition: transform 0.8s ease !important; 3753 } 3754 /* #videoid { 3755 3756 margin-left:5px !important; 3757 margin-right:15px !important; 3758 margin-bottom:0px !important; 3759 3760 } */ 3761 3762 #videoid { 3763 max-width: 100%; 3764 margin-left: 13px; 3765 margin-right: 13px; 3766 overflow: hidden; 3767 } 3768 3769 #videoid img { 3770 width: 100%; /* Ensures the image fits within its parent */ 3771 height: auto; /* Keeps aspect ratio intact */ 3772 display: block; /* Prevents image from being inline */ 3773 } 3774 .popup-modal { 3775 display: none; /* Hidden by default */ 3776 3777 position: fixed; 3778 z-index: 1000; 3779 left: 0; 3780 top: 0; 3781 width: 100%; 3782 height: 100%; 3783 overflow: auto; 3784 background-color: rgba(0, 0, 0, 0.7); 3785 } 3786 3787 3788 .popup-content { 3789 background-color: #fff; 3790 margin: 10% auto; 3791 padding: 20px; 3792 border: 2px solid #0077cc; 3793 width: 80%; 3794 max-width: 500px; 3795 position: relative; 3796 border-radius: 8px; 3797 } 3798 3799 .popup-close { 3800 position: absolute; 3801 top: 15px; 3802 right: 20px; 3803 font-size: 24px; 3804 font-weight: bold; 3805 color: #333; 3806 cursor: pointer; 3807 } 3808 .popup-content h2 { 3809 margin:0 !important; 3810 text-align: center; 3811} 3812 3813.popup-content p { 3814 text-align: left; 3815 margin: 0; 3816 width: 100%; 3817 display: block; 3818} 3819 3820.popup-content .btn { 3821 margin-left: auto; 3822 display: inline-block; 3823} 3824.popup-trigger { 3825 cursor: pointer !important; 3826} 3827 @media (max-width: 768px) { 3828 .popup-modal { 3829 padding-top:180px !important; 3830 } 3831} 3832 3833 3834</style>
3835<script type="text/javascript"> 3836 document.addEventListener("DOMContentLoaded", function () { 3837 // Open popup when trigger clicked 3838 document.querySelectorAll(".popup-trigger").forEach(trigger => { 3839 trigger.addEventListener("click", function () { 3840 const id = trigger.getAttribute("data-id"); 3841 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 3842 if (popup) { 3843 popup.style.display = "block"; 3844 } 3845 }); 3846 }); 3847 3848 // Close popup when close button clicked 3849 document.querySelectorAll(".popup-close").forEach(closeBtn => { 3850 closeBtn.addEventListener("click", function () { 3851 const popup = closeBtn.closest(".popup-modal"); 3852 if (popup) { 3853 popup.style.display = "none"; 3854 } 3855 }); 3856 }); 3857 3858 // Close popup when clicking outside the popup content 3859 window.addEventListener("click", function (e) { 3860 if (e.target.classList.contains("popup-modal")) { 3861 e.target.style.display = "none"; 3862 } 3863 }); 3864 }); 3865 3866</script>
3866 3867 3868 3869 3870 </div> 3871 3872 3873 3874 3875 <div style="margin:7px; padding-bottom:10px;" id="fullheightitemPod" class="item items-4 item_text-boxed item_overlay usn_pod_textimagenewlayout text-center " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 3876 3877 3878 <div id="fullheightitemPod" class="inner c1-bg c1-bg-solid rounded-circle " data-id="" style=" "> 3879 <a href="/industries/media-technology/" > 3880 <div class="image c1-bg c1-bg-solid rounded-circle" style=" "> 3881 3882 <picture> 3883 <source type="image/webp" data-srcset="/media/ivopi5c5/media-tech.png?width=800&height=800&v=1dc32030dd92ea0&format=webp 1x, /media/ivopi5c5/media-tech.png?width=1600&height=1600&v=1dc32030dd92ea0&format=webp 2x" width="800" height="800"> 3884 <img class="lazyload rounded-circle" src="/media/ivopi5c5/media-tech.png?width=160&height=160&v=1dc32030dd92ea0&format=webp" width="800" height="800" data-srcset="/media/ivopi5c5/media-tech.png?width=800&height=800&v=1dc32030dd92ea0&format=webp 1x, /media/ivopi5c5/media-tech.png?width=1600&height=1600&v=1dc32030dd92ea0&format=webp 2x" alt="Media Technology Industry"> 3885 </picture> 3886 3887 </div> 3888 <div class="info align-self-center" style=" overflow-wrap: break-word;"> 3889 3890 <p class="heading c1-heading " >Media Technology</p> 3891 3892 3893 </div> 3894 </a> 3895 </div> 3896<style> 3897 #videoid:hover { 3898 transform: scale(1.04578) !important; 3899 transition: transform 0.8s ease !important; 3900 } 3901 /* #videoid { 3902 3903 margin-left:5px !important; 3904 margin-right:15px !important; 3905 margin-bottom:0px !important; 3906 3907 } */ 3908 3909 #videoid { 3910 max-width: 100%; 3911 margin-left: 13px; 3912 margin-right: 13px; 3913 overflow: hidden; 3914 } 3915 3916 #videoid img { 3917 width: 100%; /* Ensures the image fits within its parent */ 3918 height: auto; /* Keeps aspect ratio intact */ 3919 display: block; /* Prevents image from being inline */ 3920 } 3921 .popup-modal { 3922 display: none; /* Hidden by default */ 3923 3924 position: fixed; 3925 z-index: 1000; 3926 left: 0; 3927 top: 0; 3928 width: 100%; 3929 height: 100%; 3930 overflow: auto; 3931 background-color: rgba(0, 0, 0, 0.7); 3932 } 3933 3934 3935 .popup-content { 3936 background-color: #fff; 3937 margin: 10% auto; 3938 padding: 20px; 3939 border: 2px solid #0077cc; 3940 width: 80%; 3941 max-width: 500px; 3942 position: relative; 3943 border-radius: 8px; 3944 } 3945 3946 .popup-close { 3947 position: absolute; 3948 top: 15px; 3949 right: 20px; 3950 font-size: 24px; 3951 font-weight: bold; 3952 color: #333; 3953 cursor: pointer; 3954 } 3955 .popup-content h2 { 3956 margin:0 !important; 3957 text-align: center; 3958} 3959 3960.popup-content p { 3961 text-align: left; 3962 margin: 0; 3963 width: 100%; 3964 display: block; 3965} 3966 3967.popup-content .btn { 3968 margin-left: auto; 3969 display: inline-block; 3970} 3971.popup-trigger { 3972 cursor: pointer !important; 3973} 3974 @media (max-width: 768px) { 3975 .popup-modal { 3976 padding-top:180px !important; 3977 } 3978} 3979 3980 3981</style>
3982<script type="text/javascript"> 3983 document.addEventListener("DOMContentLoaded", function () { 3984 // Open popup when trigger clicked 3985 document.querySelectorAll(".popup-trigger").forEach(trigger => { 3986 trigger.addEventListener("click", function () { 3987 const id = trigger.getAttribute("data-id"); 3988 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 3989 if (popup) { 3990 popup.style.display = "block"; 3991 } 3992 }); 3993 }); 3994 3995 // Close popup when close button clicked 3996 document.querySelectorAll(".popup-close").forEach(closeBtn => { 3997 closeBtn.addEventListener("click", function () { 3998 const popup = closeBtn.closest(".popup-modal"); 3999 if (popup) { 4000 popup.style.display = "none"; 4001 } 4002 }); 4003 }); 4004 4005 // Close popup when clicking outside the popup content 4006 window.addEventListener("click", function (e) { 4007 if (e.target.classList.contains("popup-modal")) { 4008 e.target.style.display = "none"; 4009 } 4010 }); 4011 }); 4012 4013</script>
4013 4014 4015 4016 4017 </div> 4018 4019 4020 4021 4022 <div style="margin:7px; padding-bottom:10px;" id="fullheightitemPod" class="item items-4 item_text-boxed item_overlay usn_pod_textimagenewlayout text-center " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 4023 4024 4025 <div id="fullheightitemPod" class="inner c1-bg c1-bg-solid rounded-circle " data-id="" style=" "> 4026 <a href="/industries/storage-media/" > 4027 <div class="image c1-bg c1-bg-solid rounded-circle" style=" "> 4028 4029 <picture> 4030 <source type="image/webp" data-srcset="/media/mn4jdtjw/industries-images-storage-media-png.png?width=800&height=800&v=1dc320345d01df0&format=webp 1x, /media/mn4jdtjw/industries-images-storage-media-png.png?width=1600&height=1600&v=1dc320345d01df0&format=webp 2x" width="800" height="800"> 4031 <img class="lazyload rounded-circle" src="/media/mn4jdtjw/industries-images-storage-media-png.png?width=160&height=160&v=1dc320345d01df0&format=webp" width="800" height="800" data-srcset="/media/mn4jdtjw/industries-images-storage-media-png.png?width=800&height=800&v=1dc320345d01df0&format=webp 1x, /media/mn4jdtjw/industries-images-storage-media-png.png?width=1600&height=1600&v=1dc320345d01df0&format=webp 2x" alt="Storage Media Industry"> 4032 </picture> 4033 4034 </div> 4035 <div class="info align-self-center" style=" overflow-wrap: break-word;"> 4036 4037 <p class="heading c1-heading " >Storage Media</p> 4038 4039 4040 </div> 4041 </a> 4042 </div> 4043<style> 4044 #videoid:hover { 4045 transform: scale(1.04578) !important; 4046 transition: transform 0.8s ease !important; 4047 } 4048 /* #videoid { 4049 4050 margin-left:5px !important; 4051 margin-right:15px !important; 4052 margin-bottom:0px !important; 4053 4054 } */ 4055 4056 #videoid { 4057 max-width: 100%; 4058 margin-left: 13px; 4059 margin-right: 13px; 4060 overflow: hidden; 4061 } 4062 4063 #videoid img { 4064 width: 100%; /* Ensures the image fits within its parent */ 4065 height: auto; /* Keeps aspect ratio intact */ 4066 display: block; /* Prevents image from being inline */ 4067 } 4068 .popup-modal { 4069 display: none; /* Hidden by default */ 4070 4071 position: fixed; 4072 z-index: 1000; 4073 left: 0; 4074 top: 0; 4075 width: 100%; 4076 height: 100%; 4077 overflow: auto; 4078 background-color: rgba(0, 0, 0, 0.7); 4079 } 4080 4081 4082 .popup-content { 4083 background-color: #fff; 4084 margin: 10% auto; 4085 padding: 20px; 4086 border: 2px solid #0077cc; 4087 width: 80%; 4088 max-width: 500px; 4089 position: relative; 4090 border-radius: 8px; 4091 } 4092 4093 .popup-close { 4094 position: absolute; 4095 top: 15px; 4096 right: 20px; 4097 font-size: 24px; 4098 font-weight: bold; 4099 color: #333; 4100 cursor: pointer; 4101 } 4102 .popup-content h2 { 4103 margin:0 !important; 4104 text-align: center; 4105} 4106 4107.popup-content p { 4108 text-align: left; 4109 margin: 0; 4110 width: 100%; 4111 display: block; 4112} 4113 4114.popup-content .btn { 4115 margin-left: auto; 4116 display: inline-block; 4117} 4118.popup-trigger { 4119 cursor: pointer !important; 4120} 4121 @media (max-width: 768px) { 4122 .popup-modal { 4123 padding-top:180px !important; 4124 } 4125} 4126 4127 4128</style>
4129<script type="text/javascript"> 4130 document.addEventListener("DOMContentLoaded", function () { 4131 // Open popup when trigger clicked 4132 document.querySelectorAll(".popup-trigger").forEach(trigger => { 4133 trigger.addEventListener("click", function () { 4134 const id = trigger.getAttribute("data-id"); 4135 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 4136 if (popup) { 4137 popup.style.display = "block"; 4138 } 4139 }); 4140 }); 4141 4142 // Close popup when close button clicked 4143 document.querySelectorAll(".popup-close").forEach(closeBtn => { 4144 closeBtn.addEventListener("click", function () { 4145 const popup = closeBtn.closest(".popup-modal"); 4146 if (popup) { 4147 popup.style.display = "none"; 4148 } 4149 }); 4150 }); 4151 4152 // Close popup when clicking outside the popup content 4153 window.addEventListener("click", function (e) { 4154 if (e.target.classList.contains("popup-modal")) { 4155 e.target.style.display = "none"; 4156 } 4157 }); 4158 }); 4159 4160</script>
4160 4161 4162 4163 4164 </div> 4165 4166 4167 4168 4169 <div style="margin:7px; padding-bottom:10px;" id="fullheightitemPod" class="item items-4 item_text-boxed item_overlay usn_pod_textimagenewlayout text-center " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 4170 4171 4172 <div id="fullheightitemPod" class="inner c1-bg c1-bg-solid rounded-circle " data-id="" style=" "> 4173 <a href="/industries/semiconductors-ai/" > 4174 <div class="image c1-bg c1-bg-solid rounded-circle" style=" "> 4175 4176 <picture> 4177 <source type="image/webp" data-srcset="/media/4apn5aeg/untitled-design-72.png?width=800&height=800&v=1dc6f7cd253b000&format=webp 1x, /media/4apn5aeg/untitled-design-72.png?width=1600&height=1600&v=1dc6f7cd253b000&format=webp 2x" width="800" height="800"> 4178 <img class="lazyload rounded-circle" src="/media/4apn5aeg/untitled-design-72.png?width=160&height=160&v=1dc6f7cd253b000&format=webp" width="800" height="800" data-srcset="/media/4apn5aeg/untitled-design-72.png?width=800&height=800&v=1dc6f7cd253b000&format=webp 1x, /media/4apn5aeg/untitled-design-72.png?width=1600&height=1600&v=1dc6f7cd253b000&format=webp 2x" alt=""> 4179 </picture> 4180 4181 </div> 4182 <div class="info align-self-center" style=" overflow-wrap: break-word;"> 4183 4184 <p class="heading c1-heading " >Semiconductors</p> 4185 4186 4187 </div> 4188 </a> 4189 </div> 4190<style> 4191 #videoid:hover { 4192 transform: scale(1.04578) !important; 4193 transition: transform 0.8s ease !important; 4194 } 4195 /* #videoid { 4196 4197 margin-left:5px !important; 4198 margin-right:15px !important; 4199 margin-bottom:0px !important; 4200 4201 } */ 4202 4203 #videoid { 4204 max-width: 100%; 4205 margin-left: 13px; 4206 margin-right: 13px; 4207 overflow: hidden; 4208 } 4209 4210 #videoid img { 4211 width: 100%; /* Ensures the image fits within its parent */ 4212 height: auto; /* Keeps aspect ratio intact */ 4213 display: block; /* Prevents image from being inline */ 4214 } 4215 .popup-modal { 4216 display: none; /* Hidden by default */ 4217 4218 position: fixed; 4219 z-index: 1000; 4220 left: 0; 4221 top: 0; 4222 width: 100%; 4223 height: 100%; 4224 overflow: auto; 4225 background-color: rgba(0, 0, 0, 0.7); 4226 } 4227 4228 4229 .popup-content { 4230 background-color: #fff; 4231 margin: 10% auto; 4232 padding: 20px; 4233 border: 2px solid #0077cc; 4234 width: 80%; 4235 max-width: 500px; 4236 position: relative; 4237 border-radius: 8px; 4238 } 4239 4240 .popup-close { 4241 position: absolute; 4242 top: 15px; 4243 right: 20px; 4244 font-size: 24px; 4245 font-weight: bold; 4246 color: #333; 4247 cursor: pointer; 4248 } 4249 .popup-content h2 { 4250 margin:0 !important; 4251 text-align: center; 4252} 4253 4254.popup-content p { 4255 text-align: left; 4256 margin: 0; 4257 width: 100%; 4258 display: block; 4259} 4260 4261.popup-content .btn { 4262 margin-left: auto; 4263 display: inline-block; 4264} 4265.popup-trigger { 4266 cursor: pointer !important; 4267} 4268 @media (max-width: 768px) { 4269 .popup-modal { 4270 padding-top:180px !important; 4271 } 4272} 4273 4274 4275</style>
4276<script type="text/javascript"> 4277 document.addEventListener("DOMContentLoaded", function () { 4278 // Open popup when trigger clicked 4279 document.querySelectorAll(".popup-trigger").forEach(trigger => { 4280 trigger.addEventListener("click", function () { 4281 const id = trigger.getAttribute("data-id"); 4282 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 4283 if (popup) { 4284 popup.style.display = "block"; 4285 } 4286 }); 4287 }); 4288 4289 // Close popup when close button clicked 4290 document.querySelectorAll(".popup-close").forEach(closeBtn => { 4291 closeBtn.addEventListener("click", function () { 4292 const popup = closeBtn.closest(".popup-modal"); 4293 if (popup) { 4294 popup.style.display = "none"; 4295 } 4296 }); 4297 }); 4298 4299 // Close popup when clicking outside the popup content 4300 window.addEventListener("click", function (e) { 4301 if (e.target.classList.contains("popup-modal")) { 4302 e.target.style.display = "none"; 4303 } 4304 }); 4305 }); 4306 4307</script>
4307 4308 4309 4310 4311 </div> 4312 4313 4314 4315 4316 4317 4318 </div> 4319 4320
4320<script type="text/javascript"> 4321 document.addEventListener("DOMContentLoaded", function () { 4322 function applyStyles($element) { 4323 const styles = $element.attr('style'); 4324 if ($element.attr('data-activeLayout') === "True") { 4325 4326 const parentDiv = $element.parents().eq(1);// it is for left ,right & center 4327 4328 // Add styles to all section elements within the parent div 4329 // parentDiv.parent().find("section").attr("style", "padding-top: 20px;"); 4330 4331 if (styles) { 4332 parentDiv.attr('style', styles); 4333 } 4334 4335 $element.removeAttr('style'); 4336 4337 } 4338 else { 4339 const parentDiv = $element.parents().eq(2);// fulllayout 4340 if (styles) { 4341 parentDiv.attr('style', styles); 4342 } 4343 4344 $element.removeAttr('style'); 4345 4346 } 4347 4348 // const parentDiv = $element.parents().eq(1);// it is for left ,right & center 4349 4350 4351 } 4352 4353 function handleIntroEnable($element, $intro) { 4354 const imageUrl = $element.attr('data-introImageURL'); 4355 if (imageUrl && imageUrl.trim() !== '') { 4356 const $heading = $intro.find('.heading'); 4357 if ($heading.find('img').length === 0) { 4358 const $image = $('<img>', { 4359 src: imageUrl, 4360 alt: 'Sample Image', 4361 css: { 4362 width: 'auto', 4363 height: 'auto', 4364 4365 4366 4367 } 4368 }); 4369 $heading.css({ 4370 4371 alignItems: 'center', // Align text and image vertically 4372 gap: '10px' // Space between image and text 4373 }); 4374 $heading.prepend($image); 4375 } 4376 } 4377 4378 // Ensure heading is first inside .info 4379 const $info = $intro.find('.info'); 4380 const $secondaryHeading = $info.find('.secondary-heading').detach(); 4381 const $mainHeading = $info.find('.heading').detach(); 4382 $info.prepend($mainHeading, $secondaryHeading); 4383 } 4384 4385 function handleIntroTextSplit($element, $intro) { 4386 4387 const $textElement = $intro.find('.text'); 4388 const storedHtml = $textElement.html(); 4389 const textContextAlgnment = $element.attr('data-introEnableTextSplitAlignment'); 4390 const introHeadingPosition = $element.attr('data-introHeadingPosition'); 4391 const reverse = $element.attr('data-introReverseSpitedTextPostion'); 4392 4393 // const reverse = "False";data-introHeadingPosition 4394 $intro.find('.text').remove(); 4395 4396 const $inputInfo = $intro.find('.info'); 4397 const $clonedInfo = $inputInfo.clone().removeClass('col'); 4398 4399 const $secondaryHeading = $clonedInfo.find('.secondary-heading').clone(); 4400 const $mainHeading = $clonedInfo.find('.heading').clone(); 4401 $clonedInfo.empty().append($mainHeading, $secondaryHeading); 4402 4403 const $leftColumn = $('<div>', { 4404 class: `col-6 ${introHeadingPosition.trim()}` // Add introHeadingPosition class 4405 }).css({ 4406 'word-wrap': 'break-word', 4407 'overflow-wrap': 'break-word', 4408 'white-space': 'normal', 4409 'max-width': '100%', 4410 'overflow': 'hidden' 4411 }).append($clonedInfo); 4412 const $rightColumn = $('<div>', { 4413 class: `col-6 text p col-6 justify-content-start text-left ${textContextAlgnment.trim()}` 4414 }); 4415 4416 $rightColumn.append(storedHtml); 4417 4418 const $newRow = $('<div>', { class: 'row intro-outro-row' }); 4419 // $newRow.append($leftColumn, $rightColumn); 4420 if (reverse == "False") { 4421 $leftColumn.css("padding-right", "20px"); 4422 $newRow.append($leftColumn, $rightColumn); // Default order 4423 4424 } else { 4425 4426 $newRow.append($rightColumn, $leftColumn); // Swap the order 4427 } 4428 $intro.empty().append($newRow); 4429 $newRow.insertBefore($element.closest('.component-main')); 4430 } 4431 4432 function handleOutroEnable($element, $outro) { 4433 const storedHtml = $outro.find('.text').html(); 4434 const textContextAlgnmentOutro = $element.attr('data-outroEnableTextSplitAlignment'); 4435 const $info = $outro.find('.info').css("width", "100%");; 4436 // const reverse = $element.attr('data-outroEnableTextSplitReverse') === "True"; 4437 const reverse = $element.attr('data-outroReverseSpitedTextPostion'); 4438 4439 // Ensure heading comes first in the info div 4440 const $secondaryHeading = $info.find('.secondary-heading').detach(); 4441 const $mainHeading = $info.find('.heading').detach(); 4442 $info.prepend($mainHeading, $secondaryHeading).css("width", "auto");; 4443 4444 if ($element.attr('data-outroTextSplit') === "True") { 4445 // Ensure we properly remove the existing text if needed 4446 const $textElement = $outro.find('.text'); 4447 const $storedText = $('<div>', { class: 'stored-text' }).html(storedHtml); // Create a new container for the stored text 4448 4449 // Clear the text element from the right column 4450 $textElement.remove(); 4451 4452 const $clonedInfoOutro = $info.clone().removeClass('col'); 4453 4454 // Left Column (Contains the stored text content) 4455 const $rightColumnOutro = $('<div>', { class: `col-6 text justify-content-start text-left ${textContextAlgnmentOutro.trim()}` }).append($storedText); 4456 4457 // Right Column (Contains the heading and other content) 4458 const $leftColumnOutro = $('<div>', { 4459 class: 'col-6 pt-2 ' 4460 }).append($clonedInfoOutro); 4461 // const $newRowOutro = $('<div>', { class: 'row intro-outro-row' }); 4462 // Create the new row structure based on reverse logic 4463 const $newRowOutro = $('<div>', { class: 'row intro-outro-row' }); 4464 4465 if (reverse == "False") { 4466 // If reverse is true, append the columns in reversed order 4467 $newRowOutro.append($leftColumnOutro, $rightColumnOutro); 4468 4469 } else { 4470 // Default order 4471 $newRowOutro.append($rightColumnOutro, $leftColumnOutro); 4472 } 4473 4474 // Empty the outro element and append the new row 4475 $outro.empty().append($newRowOutro); 4476 $newRowOutro.insertAfter($element.closest('.component-main')); 4477 // Create and append the new row structure 4478 // const $newRowOutro = $('<div>', { class: 'row intro-outro-row' }).append($leftColumnOutro, $rightColumnOutro); 4479 // const $newRowOutro = $('<div>', { class: 'row intro-outro-row' }).append($rightColumnOutro, $leftColumnOutro); 4480 // $outro.empty().append($newRowOutro); 4481 // $newRowOutro.insertAfter($element.closest('.component-main')); 4482 } 4483 } 4484 4485 // console.log($('.usn_cmp_podsnewlayout').parent().parent().css({ 'margin-right': 'inherit !important', 'margin-left': 'inherit !important' })) 4486 // $('.usn_cmp_podsnewlayout').parent().parent().css({ 'margin-right': 'inherit !important', 'margin-left': 'inherit !important' }); 4487 $('.element').each(function () { 4488 4489 4490 const $this = $(this); 4491 const $intro = $this.prev(); 4492 // $('.usn_cmp_podsnewlayout').each(function () { 4493 // let $parent = $(this).parent(); // Get the immediate parent 4494 // let $row = $parent.parent(); // Find .row inside the parent 4495 4496 // if ($row.length) { 4497 // let $colset = $row.find('.colset'); // Find .colset inside .row 4498 4499 // if ($colset.length) { 4500 // // Apply styles for text alignment 4501 // $colset.first().css('text-align', 'left'); // First colset to the left 4502 // $colset.last().css('text-align', 'right'); // Last colset to the right 4503 // } else { 4504 // console.warn('No .colset elements found inside .row'); 4505 // } 4506 // } else { 4507 // console.warn('No .row found inside parent of .usn_cmp_podsnewlayout'); 4508 // } 4509 // }); 4510 4511 // console.log($this.closest('.usn_cmp_podsnewlayout')); 4512 // console.log($this.closest('.usn_cmp_podsnewlayout').closest('.row')); 4513 // console.log($this.closest('.usn_cmp_podsnewlayout').closest('.row').find('.colset')); 4514 // $this.closest('.usn_cmp_podsnewlayout').closest('.row').css({ 'margin-right': 'inherit !important' }); 4515 // $this.closest('.usn_cmp_podsnewlayout').closest('.row').css({ 'margin-left': '0px !important' }); 4516 4517 $('.usn_cmp_podsnewlayout').each(function () { 4518 $(this) 4519 .closest('.usn_cmp_podsnewlayout') // Find closest matching element 4520 .closest('.row') // Find the closest parent row 4521 .addClass('inherit-margin'); // Add a CSS class 4522 }); 4523 4524 applyStyles($this); 4525 if (window.innerWidth >= 600) { 4526 if ($this.attr('data-introEnable') === "True") { 4527 handleIntroEnable($this, $intro); 4528 4529 if ($this.attr('data-introTextSplit') === "True") { 4530 handleIntroTextSplit($this, $intro); 4531 } 4532 } 4533 4534 if ($this.attr('data-outroEnable') === "True") { 4535 const $outro = $this.next(); 4536 $outro.find('.text.base-text p').each(function () { 4537 if ($(this).html().trim() === ' ') { 4538 $(this).remove(); 4539 } 4540 }); 4541 handleOutroEnable($this, $outro); 4542 } 4543 } 4544 if ($this.attr('data-enbledradius') === "True") { 4545 const $parentWithClass = $this.closest('.usn_cmp_podsnewlayout'); 4546 4547 // Add a border radius of 15px to the parent element 4548 $parentWithClass.css('border-radius', '15px'); 4549 4550 } 4551 4552 }); 4553 // var $container = $('#bgid'); 4554 // var children = $container.children(); 4555 4556 // var allAreDivs = children.length > 0 && children.filter(function () { 4557 // return this.tagName.toLowerCase() !== 'div'; 4558 // }).length === 0; 4559 4560 // var $items = $container.find('.item'); 4561 // var hasOnlyOneItem = $items.length === 1; 4562 4563 // var innerIsEmpty = hasOnlyOneItem && $.trim($items.find('.inner').html()) === ''; 4564 4565 // console.log('All children are divs:', allAreDivs); 4566 // console.log('Only one .item:', hasOnlyOneItem); 4567 // console.log('Inner is empty:', innerIsEmpty); 4568 4569 // if (allAreDivs && hasOnlyOneItem && innerIsEmpty) { 4570 // console.log('Removing #bgid...'); 4571 // $container.remove(); 4572 // } else { 4573 // console.log('Conditions not met, not removing #bgid'); 4574 // } 4575 4576 4577 // var innerempty = $('#bgid .inner'); 4578 // // Remove whitespace and check if empty 4579 // if ($.trim(innerempty.html()) === '') { 4580 // $('#bgid').remove(); 4581 // } 4582 // var allDivsInsideBgid = $('#bgid div'); // Get all <div>
4582 elements inside #bgid 4583 4584 // // Check if only one <div> inside #bgid has class 'item' 4585 // var item = $('#bgid .item'); 4586 4587 // if (allDivsInsideBgid.length === 1 && item.length === 1) { 4588 // var inner = item.find('.inner'); 4589 4590 // if ($.trim(inner.html()) === '') { 4591 // $('#bgid').remove(); 4592 // } 4593 // } 4594 }); 4595 4596 4597 4598 </script>
4598 4599 4600 <style> 4601 .row.slides.slick-slider:not(.listing_no-spacing) .slick-next { 4602 font-weight: 900; /* Max bold */ 4603 background-color: inherit; 4604 right: -15px !important; 4605 } 4606 4607 .row.slides.slick-slider:not(.listing_no-spacing) .slick-prev { 4608 font-weight: 900; /* Max bold */ 4609 background-color: inherit; 4610 left: -15px !important; 4611 } 4612 4613 .row.slides.slick-slider:not(.listing_no-spacing) .slick-next .icon { 4614 font-weight: 900; /* Max bold */ 4615 font-size: 2em; /* Optional: Increase icon size */ 4616 text-shadow: 1px 1px 2px, -0px -0px 2px; 4617 } 4618 4619 .row.slides.slick-slider:not(.listing_no-spacing) .slick-prev .icon { 4620 font-weight: 900; /* Max bold */ 4621 font-size: 2em; /* Keep size same */ 4622 text-shadow: 1px 1px 2px, -0px -0px 2px; 4623 } 4624 4625 4626 4627 4628 4629 body:not(.full-page) .row { 4630 margin-right: inherit !important; 4631 margin-left: inherit !important; 4632 } 4633 4634 /* @media (max-width: 599.98px) { 4635 .usn_cmp_podsnewlayout .item:has(.inner.rounded-circle) .inner.rounded-circle .image img { 4636 transform: scale(2) !important; 4637 } 4638 } */ 4639 /* inner takes full width of item */ /* only items with a rounded-circle inner */ 4640 @media (max-width: 599.98px) { 4641 .usn_cmp_podsnewlayout .item:not(.slick-slide) .inner.rounded-circle { 4642 width: 100% !important; 4643 } 4644 4645 .usn_cmp_podsnewlayout .slick-slide { 4646 width: 50% !important; 4647 padding: 0 !important; 4648 margin: 0 auto !important; 4649 box-sizing: border-box !important; 4650 } 4651 4652 .usn_cmp_podsnewlayout .slick-slide .inner.rounded-circle { 4653 width: 100% !important; 4654 } 4655 4656 .row.slides.slick-slider .item { 4657 width: 50% !important; 4658 padding: 5px !important; 4659 box-sizing: border-box; 4660 justify-content: center !important; 4661 } 4662 4663 .row.slides.slick-slider { 4664 4665 padding: 10px !important; 4666 margin: 5px !important; 4667 4668 } 4669 4670 .usn_cmp_podsnewlayout .item:not(.slick-slide):has(.inner.rounded-circle) { 4671 width: 50% !important; 4672 } 4673 4674 4675 .usn_cmp_podsnewlayout .item:not(.slick-slide):has(.inner.rounded-circle):nth-child(odd):last-child { 4676 margin-left: auto; 4677 margin-right: auto; 4678 } 4679 4680 .usn_cmp_podsnewlayout .item:has(.inner.rounded-circle) .inner.rounded-circle .image img { 4681 transform: scale(2) !important; 4682 } 4683 .usn_cmp_podsnewlayout .component-introduction{ 4684 text-align:left !important; 4685 } 4686 4687 .row.slides.slick-slider .item:not(:has(.inner.rounded-circle)) { 4688 padding: 0 !important; 4689 } 4690 4691 .row.slides.slick-slider .item:not(:has(.inner.rounded-circle)) { 4692 width: 100% !important; 4693 box-sizing: border-box; 4694 justify-content: center !important; 4695 } 4696 4697 } 4698 4699 @media (max-width: 599.98px) { 4700 /* Make container proper 2-column grid */ 4701 .usn_cmp_podsnewlayout .component-main { 4702 display: flex !important; 4703 flex-wrap: wrap !important; 4704 justify-content: center !important; 4705 } 4706 /* Each item = 50% width */ 4707 .usn_cmp_podsnewlayout .component-main .item { 4708 width: 50% !important; 4709 max-width: 50% !important; 4710 padding: 8px !important; 4711 margin: 0 !important; 4712 box-sizing: border-box !important; 4713 } 4714 /* Inner card full width */ 4715 .usn_cmp_podsnewlayout .component-main .inner { 4716 width: 100% !important; 4717 } 4718 /* Image auto fit */ 4719 .usn_cmp_podsnewlayout .component-main .image img { 4720 width: 100% !important; 4721 height: auto !important; 4722 object-fit: cover !important; 4723 } 4724 /* Text auto adjust */ 4725 .usn_cmp_podsnewlayout .heading { 4726 font-size: 14px !important; 4727 line-height: 1.2 !important; 4728 word-break: break-word !important; 4729 } 4730 4731 .usn_cmp_podsnewlayout .secondary-heading { 4732 font-size: 12px !important; 4733 line-height: 1.2 !important; 4734 word-break: break-word !important; 4735 } 4736 /* Remove unwanted extra spacing */ 4737 .row.slides.slick-slider { 4738 padding: 0 !important; 4739 margin: 0 !important; 4740 } 4741 } 4742 4743 @media (max-width: 1200.98px) { 4744 4745 4746 .usn_cmp_podsnewlayout .item:not(.slick-slide):has(.inner.rounded-circle):nth-child(odd):last-child { 4747 margin-left: auto; 4748 margin-right: auto; 4749 } 4750 } 4751 /* .usn_cmp_podsnewlayout .item:not(.slick-slide):has(.inner.rounded-circle):nth-child(odd):last-child { 4752 margin-left: auto; 4753 margin-right: auto; 4754 } */ 4755 /* @media (max-width: 599.98px) { 4756 .usn_cmp_podsnewlayout .item.rounded-circle { 4757 width: 50% !important; 4758 max-width: 50% !important; 4759 flex: 0 0 50% !important; 4760 } 4761 } */ 4762 /* @media (max-width: 599.98px) { 4763 .usn_cmp_podsnewlayout .item:not(.slick-slide) { 4764 width: 50% !important; 4765 } */ 4766 4767 /* @media (max-width: 599.98px) { 4768 .usn_cmp_podsnewlayout .item:not(.slick-slide) { 4769 width: 50% !important; 4770 } 4771 } */ 4772 /* .usn_cmp_podsnewlayout .item { 4773 width: 50% !important; 4774 } */ 4775 4776 4777 /* 4778 @media (max-width: 990.98px) {roun
4778ded-circle 4779 4780 } */ 4781 4782 4783 </style> 4784 </div> 4785 4786 4787 4788 4789 </div> 4790 </div> 4791 </section> 4792 </div> 4793 4794 4795 4796 </div> 4797 </div> 4798 </section> 4799 4800 4801 4802 4803 4804 4805 <section class="content component usn_cmp_podsnewlayout base-bg base-bg-solid " > 4806 4807 <div class="component-inner"> 4808 <div class="container"> 4809 4810 <!-- Introduction --> 4811 <div class="component-introduction row justify-content-end text-right " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 4812 <div class="info col"> 4813 4814 <h2 class="heading base-heading " >LATEST INSIGHTS</h2> 4815 4816 <div class="text base-text"> 4817 <p class="intro">Explore global technology insights, news and updates from The Source.</p> 4818 </div> 4819 </div> 4820 </div> 4821 <!--// Introduction --> 4822 4823 4824 <div class="fbe8b3-fec010 element " id="bgid" style=" padding: var(--pc-spacing_md) 0;background: linear-gradient(to bottom, #fbe8b3 50%, white 50%, white 53%, #fec010 53%)!important; " data-introImageURL="" 4825 data-activeLayout="False" 4826 data-introEnable="True" 4827 data-outroEnable="False" 4828 data-introTextSplit="True" 4829 data-outroTextSplit="False" 4830 data-introEnableTextSplitAlignment="justify-content-start text-left" 4831 data-outroEnableTextSplitAlignment="" 4832 data-introHeadingPosition="" 4833 data-introReverseSpitedTextPostion="False" 4834 data-outroReverseSpitedTextPostion="False" 4835 data-enbledradius="False"> 4836 <div class="component-main row listing listing_basic-grid listing-pods justify-content-center align-items-center 4837 d-flex flex-wrap align-items-stretch" > 4838 <div style=" padding-bottom:10px;" id="fullheightitemPod" class="item item_has-bg items-2 col-12 item_text-below usn_pod_textimagenewlayout text-left " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 4839 4840 4841 <div id="fullheightitemPod" class="inner base-bg base-bg-solid " data-id="" style=" border-radius:15px!important; "> 4842 <span style="padding-bottom:10px;margin:0px !important;" href=""> 4843 <div id="videoid" href="https://www.youtube.com/embed/aYjilmb7tnY" class="image pb-0 video lazyframe lazyframe-video " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s" data-vendor="youtube" data-src="https://www.youtube.com/embed/aYjilmb7tnY" data-ratio="16:9" href="https://www.youtube.com/embed/aYjilmb7tnY" > 4844 4845 <picture> 4846 <source type="image/webp" > 4847 <img id="" style="margin-top:15px !important;" class=" lazyload p-3 pb-0 " src="/media/sbfkywmb/untitled-design-46.png" width="1600" height="1600" alt="image name" /> 4848 </picture> 4849 4850 </div> 4851 <div class="info " style=" overflow-wrap: break-word;"> 4852 4853 <p class="heading base-heading " >Stay ahead with the Future Sessions</p> 4854 4855 <div class="text base-text" style="overflow-wrap: break-word;"> 4856 <p class="sm">Welcome to the Future Sessions, where you'll hear monthly insights on the hot topics impacting your industries. Join us over at The Source content hub to catch the latest.</p> 4857 </div> 4858 4859 <div class="row" style=""> 4860 <a class="link " href="/the-source/future-sessions/">
4861 <span style="" class="btn btn-sm c2-btn-bg c2-btn-bg-solid c2-btn-bg-hover-solid c2-btn-text c2-btn-borders"> 4862 <span></span> 4863 Future Sessions 4864 </span> 4865 </a> 4866 </div> 4867 </div> 4868 </a> 4869 </div> 4870<style> 4871 #videoid:hover { 4872 transform: scale(1.04578) !important; 4873 transition: transform 0.8s ease !important; 4874 } 4875 /* #videoid { 4876 4877 margin-left:5px !important; 4878 margin-right:15px !important; 4879 margin-bottom:0px !important; 4880 4881 } */ 4882 4883 #videoid { 4884 max-width: 100%; 4885 margin-left: 13px; 4886 margin-right: 13px; 4887 overflow: hidden; 4888 } 4889 4890 #videoid img { 4891 width: 100%; /* Ensures the image fits within its parent */ 4892 height: auto; /* Keeps aspect ratio intact */ 4893 display: block; /* Prevents image from being inline */ 4894 } 4895 .popup-modal { 4896 display: none; /* Hidden by default */ 4897 4898 position: fixed; 4899 z-index: 1000; 4900 left: 0; 4901 top: 0; 4902 width: 100%; 4903 height: 100%; 4904 overflow: auto; 4905 background-color: rgba(0, 0, 0, 0.7); 4906 } 4907 4908 4909 .popup-content { 4910 background-color: #fff; 4911 margin: 10% auto; 4912 padding: 20px; 4913 border: 2px solid #0077cc; 4914 width: 80%; 4915 max-width: 500px; 4916 position: relative; 4917 border-radius: 8px; 4918 } 4919 4920 .popup-close { 4921 position: absolute; 4922 top: 15px; 4923 right: 20px; 4924 font-size: 24px; 4925 font-weight: bold; 4926 color: #333; 4927 cursor: pointer; 4928 } 4929 .popup-content h2 { 4930 margin:0 !important; 4931 text-align: center; 4932} 4933 4934.popup-content p { 4935 text-align: left; 4936 margin: 0; 4937 width: 100%; 4938 display: block; 4939} 4940 4941.popup-content .btn { 4942 margin-left: auto; 4943 display: inline-block; 4944} 4945.popup-trigger { 4946 cursor: pointer !important; 4947} 4948 @media (max-width: 768px) { 4949 .popup-modal { 4950 padding-top:180px !important; 4951 } 4952} 4953 4954 4955</style>
4956<script type="text/javascript"> 4957 document.addEventListener("DOMContentLoaded", function () { 4958 // Open popup when trigger clicked 4959 document.querySelectorAll(".popup-trigger").forEach(trigger => { 4960 trigger.addEventListener("click", function () { 4961 const id = trigger.getAttribute("data-id"); 4962 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 4963 if (popup) { 4964 popup.style.display = "block"; 4965 } 4966 }); 4967 }); 4968 4969 // Close popup when close button clicked 4970 document.querySelectorAll(".popup-close").forEach(closeBtn => { 4971 closeBtn.addEventListener("click", function () { 4972 const popup = closeBtn.closest(".popup-modal"); 4973 if (popup) { 4974 popup.style.display = "none"; 4975 } 4976 }); 4977 }); 4978 4979 // Close popup when clicking outside the popup content 4980 window.addEventListener("click", function (e) { 4981 if (e.target.classList.contains("popup-modal")) { 4982 e.target.style.display = "none"; 4983 } 4984 }); 4985 }); 4986 4987</script>
4987 4988 4989 4990 4991 </div> 4992 4993 4994 4995 4996 <div style=" padding-bottom:10px;" id="fullheightitemPod" class="item item_has-bg items-2 col-12 item_text-below usn_pod_textimagenewlayout text-left " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 4997 4998 4999 <div id="fullheightitemPod" class="inner c5-bg c5-bg-solid " data-id="" style=" border-radius:15px!important; "> 5000 <a href="/the-source/downloads/the-robust-content-creator-market/" > 5001 <div class="image " style="border: 9px solid white; background-color: white; padding: 20px!important; border-radius: 15px!important;"> 5002 5003 <picture> 5004 <source type="image/webp" data-srcset="/media/skfljcsg/robust-content-creator-infographic-latestnews.png?width=475&height=267&format=webp 1x, /media/skfljcsg/robust-content-creator-infographic-latestnews.png?width=950&height=535&format=webp 2x" width="475" height="267"> 5005 <img class="lazyload" src="/media/skfljcsg/robust-content-creator-infographic-latestnews.png?width=95&height=53&format=webp" width="475" height="267" data-srcset="/media/skfljcsg/robust-content-creator-infographic-latestnews.png?width=475&height=267&format=webp 1x, /media/skfljcsg/robust-content-creator-infographic-latestnews.png?width=950&height=535&format=webp 2x" alt="Robust Content Creator Infographic"> 5006 </picture> 5007 5008 </div> 5009 <div class="info " style=" overflow-wrap: break-word;"> 5010 5011 <p class="heading c5-heading " >Infographic</p> <p class="secondary-heading c5-secondary-heading " >The Robust Content Creator Market</p> 5012 5013 5014 <div class="text c5-text" style="overflow-wrap: break-word;"> 5015 <p>Our latest infographic provides key stats on the industry, including population and platform sizing, and the overall market value.</p> 5016 </div> 5017 5018 <div class="row" style=""> 5019 <a class="link justify-content-start text-left" href="/the-source/downloads/the-robust-content-creator-market/"> 5020 <span style="" class="btn btn-sm c2-btn-bg c2-btn-bg-solid c2-btn-bg-hover-solid c2-btn-text c2-btn-borders"> 5021 <span></span> 5022 Download 5023 </span> 5024 </a> 5025 </div> 5026 </div> 5027 </a> 5028 </div> 5029<style> 5030 #videoid:hover { 5031 transform: scale(1.04578) !important; 5032 transition: transform 0.8s ease !important; 5033 } 5034 /* #videoid { 5035 5036 margin-left:5px !important; 5037 margin-right:15px !important; 5038 margin-bottom:0px !important; 5039 5040 } */ 5041 5042 #videoid { 5043 max-width: 100%; 5044 margin-left: 13px; 5045 margin-right: 13px; 5046 overflow: hidden; 5047 } 5048 5049 #videoid img { 5050 width: 100%; /* Ensures the image fits within its parent */ 5051 height: auto; /* Keeps aspect ratio intact */ 5052 display: block; /* Prevents image from being inline */ 5053 } 5054 .popup-modal { 5055 display: none; /* Hidden by default */ 5056 5057 position: fixed; 5058 z-index: 1000; 5059 left: 0; 5060 top: 0; 5061 width: 100%; 5062 height: 100%; 5063 overflow: auto; 5064 background-color: rgba(0, 0, 0, 0.7); 5065 } 5066 5067 5068 .popup-content { 5069 background-color: #fff; 5070 margin: 10% auto; 5071 padding: 20px; 5072 border: 2px solid #0077cc; 5073 width: 80%; 5074 max-width: 500px; 5075 position: relative; 5076 border-radius: 8px; 5077 } 5078 5079 .popup-close { 5080 position: absolute; 5081 top: 15px; 5082 right: 20px; 5083 font-size: 24px; 5084 font-weight: bold; 5085 color: #333; 5086 cursor: pointer; 5087 } 5088 .popup-content h2 { 5089 margin:0 !important; 5090 text-align: center; 5091} 5092 5093.popup-content p { 5094 text-align: left; 5095 margin: 0; 5096 width: 100%; 5097 display: block; 5098} 5099 5100.popup-content .btn { 5101 margin-left: auto; 5102 display: inline-block; 5103} 5104.popup-trigger {
5105 cursor: pointer !important; 5106} 5107 @media (max-width: 768px) { 5108 .popup-modal { 5109 padding-top:180px !important; 5110 } 5111} 5112 5113 5114</style>
5115<script type="text/javascript"> 5116 document.addEventListener("DOMContentLoaded", function () { 5117 // Open popup when trigger clicked 5118 document.querySelectorAll(".popup-trigger").forEach(trigger => { 5119 trigger.addEventListener("click", function () { 5120 const id = trigger.getAttribute("data-id"); 5121 const popup = document.querySelector(`.popup-modal[data-popup="${id}"]`); 5122 if (popup) { 5123 popup.style.display = "block"; 5124 } 5125 }); 5126 }); 5127 5128 // Close popup when close button clicked 5129 document.querySelectorAll(".popup-close").forEach(closeBtn => { 5130 closeBtn.addEventListener("click", function () { 5131 const popup = closeBtn.closest(".popup-modal"); 5132 if (popup) { 5133 popup.style.display = "none"; 5134 } 5135 }); 5136 }); 5137 5138 // Close popup when clicking outside the popup content 5139 window.addEventListener("click", function (e) { 5140 if (e.target.classList.contains("popup-modal")) { 5141 e.target.style.display = "none"; 5142 } 5143 }); 5144 }); 5145 5146</script>
5146 5147 5148 5149 5150 </div> 5151 5152 5153 5154 5155 5156 5157 </div> 5158 5159
5159<script type="text/javascript"> 5160 document.addEventListener("DOMContentLoaded", function () { 5161 function applyStyles($element) { 5162 const styles = $element.attr('style'); 5163 if ($element.attr('data-activeLayout') === "True") { 5164 5165 const parentDiv = $element.parents().eq(1);// it is for left ,right & center 5166 5167 // Add styles to all section elements within the parent div 5168 // parentDiv.parent().find("section").attr("style", "padding-top: 20px;"); 5169 5170 if (styles) { 5171 parentDiv.attr('style', styles); 5172 } 5173 5174 $element.removeAttr('style'); 5175 5176 } 5177 else { 5178 const parentDiv = $element.parents().eq(2);// fulllayout 5179 if (styles) { 5180 parentDiv.attr('style', styles); 5181 } 5182 5183 $element.removeAttr('style'); 5184 5185 } 5186 5187 // const parentDiv = $element.parents().eq(1);// it is for left ,right & center 5188 5189 5190 } 5191 5192 function handleIntroEnable($element, $intro) { 5193 const imageUrl = $element.attr('data-introImageURL'); 5194 if (imageUrl && imageUrl.trim() !== '') { 5195 const $heading = $intro.find('.heading'); 5196 if ($heading.find('img').length === 0) { 5197 const $image = $('<img>', { 5198 src: imageUrl, 5199 alt: 'Sample Image', 5200 css: { 5201 width: 'auto', 5202 height: 'auto', 5203 5204 5205 5206 } 5207 }); 5208 $heading.css({ 5209 5210 alignItems: 'center', // Align text and image vertically 5211 gap: '10px' // Space between image and text 5212 }); 5213 $heading.prepend($image); 5214 } 5215 } 5216 5217 // Ensure heading is first inside .info 5218 const $info = $intro.find('.info'); 5219 const $secondaryHeading = $info.find('.secondary-heading').detach(); 5220 const $mainHeading = $info.find('.heading').detach(); 5221 $info.prepend($mainHeading, $secondaryHeading); 5222 } 5223 5224 function handleIntroTextSplit($element, $intro) { 5225 5226 const $textElement = $intro.find('.text'); 5227 const storedHtml = $textElement.html(); 5228 const textContextAlgnment = $element.attr('data-introEnableTextSplitAlignment'); 5229 const introHeadingPosition = $element.attr('data-introHeadingPosition'); 5230 const reverse = $element.attr('data-introReverseSpitedTextPostion'); 5231 5232 // const reverse = "False";data-introHeadingPosition 5233 $intro.find('.text').remove(); 5234 5235 const $inputInfo = $intro.find('.info'); 5236 const $clonedInfo = $inputInfo.clone().removeClass('col'); 5237 5238 const $secondaryHeading = $clonedInfo.find('.secondary-heading').clone(); 5239 const $mainHeading = $clonedInfo.find('.heading').clone(); 5240 $clonedInfo.empty().append($mainHeading, $secondaryHeading); 5241 5242 const $leftColumn = $('<div>', { 5243 class: `col-6 ${introHeadingPosition.trim()}` // Add introHeadingPosition class 5244 }).css({ 5245 'word-wrap': 'break-word', 5246 'overflow-wrap': 'break-word', 5247 'white-space': 'normal', 5248 'max-width': '100%', 5249 'overflow': 'hidden' 5250 }).append($clonedInfo); 5251 const $rightColumn = $('<div>', { 5252 class: `col-6 text p col-6 justify-content-start text-left ${textContextAlgnment.trim()}` 5253 }); 5254 5255 $rightColumn.append(storedHtml); 5256 5257 const $newRow = $('<div>', { class: 'row intro-outro-row' }); 5258 // $newRow.append($leftColumn, $rightColumn); 5259 if (reverse == "False") { 5260 $leftColumn.css("padding-right", "20px"); 5261 $newRow.append($leftColumn, $rightColumn); // Default order 5262 5263 } else { 5264 5265 $newRow.append($rightColumn, $leftColumn); // Swap the order 5266 } 5267 $intro.empty().append($newRow); 5268 $newRow.insertBefore($element.closest('.component-main')); 5269 } 5270 5271 function handleOutroEnable($element, $outro) { 5272 const storedHtml = $outro.find('.text').html(); 5273 const textContextAlgnmentOutro = $element.attr('data-outroEnableTextSplitAlignment'); 5274 const $info = $outro.find('.info').css("width", "100%");; 5275 // const reverse = $element.attr('data-outroEnableTextSplitReverse') === "True"; 5276 const reverse = $element.attr('data-outroReverseSpitedTextPostion'); 5277 5278 // Ensure heading comes first in the info div 5279 const $secondaryHeading = $info.find('.secondary-heading').detach(); 5280 const $mainHeading = $info.find('.heading').detach(); 5281 $info.prepend($mainHeading, $secondaryHeading).css("width", "auto");; 5282 5283 if ($element.attr('data-outroTextSplit') === "True") { 5284 // Ensure we properly remove the existing text if needed 5285 const $textElement = $outro.find('.text'); 5286 const $storedText = $('<div>', { class: 'stored-text' }).html(storedHtml); // Create a new container for the stored text 5287 5288 // Clear the text element from the right column 5289 $textElement.remove(); 5290 5291 const $clonedInfoOutro = $info.clone().removeClass('col'); 5292 5293 // Left Column (Contains the stored text content) 5294 const $rightColumnOutro = $('<div>', { class: `col-6 text justify-content-start text-left ${textContextAlgnmentOutro.trim()}` }).append($storedText); 5295 5296 // Right Column (Contains the heading and other content) 5297 const $leftColumnOutro = $('<div>', { 5298 class: 'col-6 pt-2 ' 5299 }).append($clonedInfoOutro); 5300 // const $newRowOutro = $('<div>', { class: 'row intro-outro-row' }); 5301 // Create the new row structure based on reverse logic 5302 const $newRowOutro = $('<div>', { class: 'row intro-outro-row' }); 5303 5304 if (reverse == "False") { 5305 // If reverse is true, append the columns in reversed order 5306 $newRowOutro.append($leftColumnOutro, $rightColumnOutro); 5307 5308 } else { 5309 // Default order 5310 $newRowOutro.append($rightColumnOutro, $leftColumnOutro); 5311 } 5312 5313 // Empty the outro element and append the new row 5314 $outro.empty().append($newRowOutro); 5315 $newRowOutro.insertAfter($element.closest('.component-main')); 5316 // Create and append the new row structure 5317 // const $newRowOutro = $('<div>', { class: 'row intro-outro-row' }).append($leftColumnOutro, $rightColumnOutro); 5318 // const $newRowOutro = $('<div>', { class: 'row intro-outro-row' }).append($rightColumnOutro, $leftColumnOutro); 5319 // $outro.empty().append($newRowOutro); 5320 // $newRowOutro.insertAfter($element.closest('.component-main')); 5321 } 5322 } 5323 5324 // console.log($('.usn_cmp_podsnewlayout').parent().parent().css({ 'margin-right': 'inherit !important', 'margin-left': 'inherit !important' })) 5325 // $('.usn_cmp_podsnewlayout').parent().parent().css({ 'margin-right': 'inherit !important', 'margin-left': 'inherit !important' }); 5326 $('.element').each(function () { 5327 5328 5329 const $this = $(this); 5330 const $intro = $this.prev(); 5331 // $('.usn_cmp_podsnewlayout').each(function () { 5332 // let $parent = $(this).parent(); // Get the immediate parent 5333 // let $row = $parent.parent(); // Find .row inside the parent 5334 5335 // if ($row.length) { 5336 // let $colset = $row.find('.colset'); // Find .colset inside .row 5337 5338 // if ($colset.length) { 5339 // // Apply styles for text alignment 5340 // $colset.first().css('text-align', 'left'); // First colset to the left 5341 // $colset.last().css('text-align', 'right'); // Last colset to the right 5342 // } else { 5343 // console.warn('No .colset elements found inside .row'); 5344 // } 5345 // } else { 5346 // console.warn('No .row found inside parent of .usn_cmp_podsnewlayout'); 5347 // } 5348 // }); 5349 5350 // console.log($this.closest('.usn_cmp_podsnewlayout')); 5351 // console.log($this.closest('.usn_cmp_podsnewlayout').closest('.row')); 5352 // console.log($this.closest('.usn_cmp_podsnewlayout').closest('.row').find('.colset')); 5353 // $this.closest('.usn_cmp_podsnewlayout').closest('.row').css({ 'margin-right': 'inherit !important' }); 5354 // $this.closest('.usn_cmp_podsnewlayout').closest('.row').css({ 'margin-left': '0px !important' }); 5355 5356 $('.usn_cmp_podsnewlayout').each(function () { 5357 $(this) 5358 .closest('.usn_cmp_podsnewlayout') // Find closest matching element 5359 .closest('.row') // Find the closest parent row 5360 .addClass('inherit-margin'); // Add a CSS class 5361 }); 5362 5363 applyStyles($this); 5364 if (window.innerWidth >= 600) { 5365 if ($this.attr('data-introEnable') === "True") { 5366 handleIntroEnable($this, $intro); 5367 5368 if ($this.attr('data-introTextSplit') === "True") { 5369 handleIntroTextSplit($this, $intro); 5370 } 5371 } 5372 5373 if ($this.attr('data-outroEnable') === "True") { 5374 const $outro = $this.next(); 5375 $outro.find('.text.base-text p').each(function () { 5376 if ($(this).html().trim() === ' ') { 5377 $(this).remove(); 5378 } 5379 }); 5380 handleOutroEnable($this, $outro); 5381 } 5382 } 5383 if ($this.attr('data-enbledradius') === "True") { 5384 const $parentWithClass = $this.closest('.usn_cmp_podsnewlayout'); 5385 5386 // Add a border radius of 15px to the parent element 5387 $parentWithClass.css('border-radius', '15px'); 5388 5389 } 5390 5391 }); 5392 // var $container = $('#bgid'); 5393 // var children = $container.children(); 5394 5395 // var allAreDivs = children.length > 0 && children.filter(function () { 5396 // return this.tagName.toLowerCase() !== 'div'; 5397 // }).length === 0; 5398 5399 // var $items = $container.find('.item'); 5400 // var hasOnlyOneItem = $items.length === 1; 5401 5402 // var innerIsEmpty = hasOnlyOneItem && $.trim($items.find('.inner').html()) === ''; 5403 5404 // console.log('All children are divs:', allAreDivs); 5405 // console.log('Only one .item:', hasOnlyOneItem); 5406 // console.log('Inner is empty:', innerIsEmpty); 5407 5408 // if (allAreDivs && hasOnlyOneItem && innerIsEmpty) { 5409 // console.log('Removing #bgid...'); 5410 // $container.remove(); 5411 // } else { 5412 // console.log('Conditions not met, not removing #bgid'); 5413 // } 5414 5415 5416 // var innerempty = $('#bgid .inner'); 5417 // // Remove whitespace and check if empty 5418 // if ($.trim(innerempty.html()) === '') { 5419 // $('#bgid').remove(); 5420 // } 5421 // var allDivsInsideBgid = $('#bgid div'); // Get all <div>
5421 elements inside #bgid 5422 5423 // // Check if only one <div> inside #bgid has class 'item' 5424 // var item = $('#bgid .item'); 5425 5426 // if (allDivsInsideBgid.length === 1 && item.length === 1) { 5427 // var inner = item.find('.inner'); 5428 5429 // if ($.trim(inner.html()) === '') { 5430 // $('#bgid').remove(); 5431 // } 5432 // } 5433 }); 5434 5435 5436 5437 </script>
5437 5438 5439 <style> 5440 .row.slides.slick-slider:not(.listing_no-spacing) .slick-next { 5441 font-weight: 900; /* Max bold */ 5442 background-color: inherit; 5443 right: -15px !important; 5444 } 5445 5446 .row.slides.slick-slider:not(.listing_no-spacing) .slick-prev { 5447 font-weight: 900; /* Max bold */ 5448 background-color: inherit; 5449 left: -15px !important; 5450 } 5451 5452 .row.slides.slick-slider:not(.listing_no-spacing) .slick-next .icon { 5453 font-weight: 900; /* Max bold */ 5454 font-size: 2em; /* Optional: Increase icon size */ 5455 text-shadow: 1px 1px 2px, -0px -0px 2px; 5456 } 5457 5458 .row.slides.slick-slider:not(.listing_no-spacing) .slick-prev .icon { 5459 font-weight: 900; /* Max bold */ 5460 font-size: 2em; /* Keep size same */ 5461 text-shadow: 1px 1px 2px, -0px -0px 2px; 5462 } 5463 5464 5465 5466 5467 5468 body:not(.full-page) .row { 5469 margin-right: inherit !important; 5470 margin-left: inherit !important; 5471 } 5472 5473 /* @media (max-width: 599.98px) { 5474 .usn_cmp_podsnewlayout .item:has(.inner.rounded-circle) .inner.rounded-circle .image img { 5475 transform: scale(2) !important; 5476 } 5477 } */ 5478 /* inner takes full width of item */ /* only items with a rounded-circle inner */ 5479 @media (max-width: 599.98px) { 5480 .usn_cmp_podsnewlayout .item:not(.slick-slide) .inner.rounded-circle { 5481 width: 100% !important; 5482 } 5483 5484 .usn_cmp_podsnewlayout .slick-slide { 5485 width: 50% !important; 5486 padding: 0 !important; 5487 margin: 0 auto !important; 5488 box-sizing: border-box !important; 5489 } 5490 5491 .usn_cmp_podsnewlayout .slick-slide .inner.rounded-circle { 5492 width: 100% !important; 5493 } 5494 5495 .row.slides.slick-slider .item { 5496 width: 50% !important; 5497 padding: 5px !important; 5498 box-sizing: border-box; 5499 justify-content: center !important; 5500 } 5501 5502 .row.slides.slick-slider { 5503 5504 padding: 10px !important; 5505 margin: 5px !important; 5506 5507 } 5508 5509 .usn_cmp_podsnewlayout .item:not(.slick-slide):has(.inner.rounded-circle) { 5510 width: 50% !important; 5511 } 5512 5513 5514 .usn_cmp_podsnewlayout .item:not(.slick-slide):has(.inner.rounded-circle):nth-child(odd):last-child { 5515 margin-left: auto; 5516 margin-right: auto; 5517 } 5518 5519 .usn_cmp_podsnewlayout .item:has(.inner.rounded-circle) .inner.rounded-circle .image img { 5520 transform: scale(2) !important; 5521 } 5522 .usn_cmp_podsnewlayout .component-introduction{ 5523 text-align:left !important; 5524 } 5525 5526 .row.slides.slick-slider .item:not(:has(.inner.rounded-circle)) { 5527 padding: 0 !important; 5528 } 5529 5530 .row.slides.slick-slider .item:not(:has(.inner.rounded-circle)) { 5531 width: 100% !important; 5532 box-sizing: border-box; 5533 justify-content: center !important; 5534 } 5535 5536 } 5537 5538 @media (max-width: 599.98px) { 5539 /* Make container proper 2-column grid */ 5540 .usn_cmp_podsnewlayout .component-main { 5541 display: flex !important; 5542 flex-wrap: wrap !important; 5543 justify-content: center !important; 5544 } 5545 /* Each item = 50% width */ 5546 .usn_cmp_podsnewlayout .component-main .item { 5547 width: 50% !important; 5548 max-width: 50% !important; 5549 padding: 8px !important; 5550 margin: 0 !important; 5551 box-sizing: border-box !important; 5552 } 5553 /* Inner card full width */ 5554 .usn_cmp_podsnewlayout .component-main .inner { 5555 width: 100% !important; 5556 } 5557 /* Image auto fit */ 5558 .usn_cmp_podsnewlayout .component-main .image img { 5559 width: 100% !important; 5560 height: auto !important; 5561 object-fit: cover !important; 5562 } 5563 /* Text auto adjust */ 5564 .usn_cmp_podsnewlayout .heading { 5565 font-size: 14px !important; 5566 line-height: 1.2 !important; 5567 word-break: break-word !important; 5568 } 5569 5570 .usn_cmp_podsnewlayout .secondary-heading { 5571 font-size: 12px !important; 5572 line-height: 1.2 !important; 5573 word-break: break-word !important; 5574 } 5575 /* Remove unwanted extra spacing */ 5576 .row.slides.slick-slider { 5577 padding: 0 !important; 5578 margin: 0 !important; 5579 } 5580 } 5581 5582 @media (max-width: 1200.98px) { 5583 5584 5585 .usn_cmp_podsnewlayout .item:not(.slick-slide):has(.inner.rounded-circle):nth-child(odd):last-child { 5586 margin-left: auto; 5587 margin-right: auto; 5588 } 5589 } 5590 /* .usn_cmp_podsnewlayout .item:not(.slick-slide):has(.inner.rounded-circle):nth-child(odd):last-child { 5591 margin-left: auto; 5592 margin-right: auto; 5593 } */ 5594 /* @media (max-width: 599.98px) { 5595 .usn_cmp_podsnewlayout .item.rounded-circle { 5596 width: 50% !important; 5597 max-width: 50% !important; 5598 flex: 0 0 50% !important; 5599 } 5600 } */ 5601 /* @media (max-width: 599.98px) { 5602 .usn_cmp_podsnewlayout .item:not(.slick-slide) { 5603 width: 50% !important; 5604 } */ 5605 5606 /* @media (max-width: 599.98px) { 5607 .usn_cmp_podsnewlayout .item:not(.slick-slide) { 5608 width: 50% !important; 5609 } 5610 } */ 5611 /* .usn_cmp_podsnewlayout .item { 5612 width: 50% !important; 5613 } */ 5614 5615 5616 /* 5617 @media (max-width: 990.98px) {roun
5617ded-circle 5618 5619 } */ 5620 5621 5622 </style> 5623 </div> 5624 5625 5626 5627 5628 </div> 5629 </div> 5630 </section> 5631 <section class="content component usn_cmp_reusablecomponents base-bg base-bg-solid pb-0 " > 5632 5633 <div class="component-inner"> 5634 <div class="container-fluid"> 5635 5636 5637 <div class="" data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 5638 5639 <section class="content component usn_cmp_bannernewlayout base-bg base-bg-solid " > 5640 5641 <div class="component-inner"> 5642 5643 5644 <div class="item item_overlay item_short-banner c1-bg c1-bg-solid " > 5645 5646 <!-- IMAGE --> 5647 <div class=" image lazyload background-image " style="background-image:url('/media/nnjhffoz/footer-how-we-help-1500-x-700-png.png?width=300&height=100&v=1dba968350d7950&format=webp')" data-bgset="/media/nnjhffoz/footer-how-we-help-1500-x-700-png.png?width=1500&height=500&v=1dba968350d7950&format=webp [type:image/webp] | /media/nnjhffoz/footer-how-we-help-1500-x-700-png.png?width=1500&height=500&v=1dba968350d7950 1x, /media/nnjhffoz/footer-how-we-help-1500-x-700-png.png?width=3000&height=1000&v=1dba968350d7950&format=webp [type:image/webp] | /media/nnjhffoz/footer-how-we-help-1500-x-700-png.png?width=3000&height=1000&v=1dba968350d7950 2x" data-sizes="auto" role="img" aria-label=""> 5648 5649 </div> 5650 <!--// IMAGE --> 5651 5652 <div class="inner"> 5653 <div class="container"> 5654 <div class="row text-left justify-content-start info_align-middle mobileClassmargin" > 5655 5656 <div class="info col"> 5657 <div class="d-table"> 5658 5659 <div class="d-table-cell"> 5660 5661 <h2 class="heading c1-heading " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s" >How we help</h2> 5662 5663 <div class="text c1-text " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 5664 <p class="sm intro">Each of our services has been meticulously crafted to provide the data and insight you need to succeed. Harness new found agility, make your mark in emerging markets, and let data drive better decisions. </p> 5665 </div> 5666 <p class="link justify-content-start text-left " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 5667 <a class="btn c2-btn-bg c2-btn-bg-solid c2-btn-bg-hover-solid c2-btn-text c2-btn-borders" href="/solutions/" > 5668 <span></span> 5669 Explore Solutions 5670 </a> 5671 </p> 5672 </div> 5673 </div> 5674 </div> 5675 </div> 5676 5677 </div> 5678 5679 </div> 5680 </div> 5681 <style> 5682 5683.squeezed-image-container { 5684 width: 100% !important; /* Full width */ 5685 background-size: 100% 100% !important; /* Ensures image fills the space */ 5686 background-position: center !important; /* Centers image */ 5687 background-repeat: no-repeat !important; /* Prevents tiling */ 5688 align-items: center !important; /* Centers content vertically */ 5689 justify-content: center !important; /* Centers content horizontally */ 5690 box-sizing: border-box !important; 5691} 5692 5693 .component.usn_cmp_banner .item:not(.item_scale-banner_overlap) .info { 5694 padding: inherit; 5695 } 5696 .bannerimagemobilecss { 5697 transition: none; 5698 border: 8px solid; 5699 width: 130px; 5700 height: 130px; 5701 display: flex; 5702 align-items: center; 5703 justify-content: center; 5704 border-radius: 50%; 5705 font-size: 14px; 5706 position: relative; 5707 overflow: hidden; 5708} 5709 .usn_cmp_banner .slick-slider .slick-autoplay-toggle-button, .usn_cmp_banner .slick-slider .slick-prev, .usn_cmp_banner .slick-slider .slick-next { 5710 width: 60px; 5711 height: 150px; 5712 } 5713@media (max-width: 599.98px) { 5714 .mobilesplitpercentage1 .link a.btn { 5715 font-size: 10px; 5716 line-height: 1; 5717 } 5718 .mobilesplitpercentage1 .link a.btn i { 5719 font-size: 10px; 5720 } 5721} 5722@media (max-width: 599.98px) { 5723 5724 .mobileClassmargin { 5725 margin: auto !important; 5726 } 5727 .mobilesplitpercentage1{ 5728 width: 70% !important; 5729 display: block !important; 5730 } 5731 .mobilesplitpercentage2{ 5732 width: 30% !important; 5733 display: block !important; 5734 } 5735 .mobilesplitpercentage2 .intro,.link ,.heading { 5736 margin:0px !important; 5737 padding:0px !important; 5738 } 5739 5740} 5741 5742 5743@media (min-width: 701px) and (max-width: 990px) { 5744 .bannerimagemobilecss { 5745 width: 80px !important; 5746 height: 80px !important; 5747 border: 5px solid !important; 5748 } 5749 .bannerinnerbtnimage { 5750 font-size: 50px !important; 5751 } 5752 .bannerinnerbtnimage, 5753 .bannerinnerbtnimage .icon { 5754 margin: 0 !important; 5755 padding: 0 !important; 5756 } 5757 .mobiletextclass{ 5758 font-size: 14px !important; 5759 } 5760} 5761@media (min-width: 399px) and (max-width: 700px) { 5762 5763 .bannerimagemobilecss { 5764 width: 50px !important; 5765 height: 50px !important; 5766 border: 4px solid !important; 5767 } 5768 .bannerinnerbtnimage { 5769 font-size: 25px !important; 5770 } 5771 .bannerinnerbtnimage, 5772 .bannerinnerbtnimage .icon { 5773 margin: 0 !important; 5774 padding: 0 !important; 5775 } 5776 .mobiletextclass{ 5777 font-size: 12px !important; 5778 5779 } 5780 5781} 5782 5783 5784@media (max-width: 398px) { 5785 .bannerimagemobilecss { 5786 width: 18px !important; 5787 height: 40px !important; 5788 border: 3px solid !important; 5789 margin: 0 !important; 5790 } 5791 .bannerinnerbtnimage { 5792 font-size: 20px !important; 5793 margin-top: 0 !important; 5794 5795 } 5796 .bannerinnerbtnimage, 5797 .bannerinnerbtnimage .icon { 5798 margin: 0 !important; 5799 padding: 0 !important; 5800 5801 } 5802 .mobiletextclass{ 5803 font-size: 8px !important; 5804 margin-top: 0 !important; 5805 padding-top: 0 !important; 5806 padding-bottom: 0 !important; 5807 padding-left: 0 !important; 5808 padding-right: 0 !important; 5809 } 5810 .mobilesplitpercentage1 .heading { 5811 margin:0px !important; 5812 padding:0px !important; 5813 font-size: 22px !important; 5814 margin: 0 !important; 5815 padding: 0 !important; 5816 5817 } 5818 .mobilesplitpercentage1 .intro { 5819 font-size: 12px !important; 5820 margin: 0 !important; 5821 padding: 0 !important; 5822 } 5823 5824} 5825/* @media (max-width: 408px) { 5826 .heading { 5827 margin:0px !important; 5828 padding:0px !important; 5829 font-size: 24px !important; 5830 5831 } 5832 .intro { 5833 font-size: 14px !important; 5834 } 5835} */ 5836 5837/* @media (max-width: 408px) { 5838 .bannerimagemobilecss {
5839 width: 20px !important; 5840 height: 40px !important; 5841 border: 3px solid !important; 5842 margin: 0 !important; 5843 5844 5845 } 5846} */ 5847 5848/* @media (max-width: 760px) { 5849 5850 .buttonscssformobile { 5851 overflow-y: auto !important; 5852 } 5853 5854} */ 5855</style> 5856<style> 5857/* ââ THE CRITICAL FIX ââââââââââââââââââââââââââââââââââââââââââââââââââââââ 5858 Scoped override cancels the global .slick-track { width:100% !important } 5859 rule that was squashing slides to 50% width on sub-pages. */ 5860.usn_cmp_bannernewlayout .slick-track { 5861 width: auto !important; 5862} 5863 5864/* ââ Layout ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 5865.squeezed-image-container { 5866 width: 100% !important; 5867 background-size: 100% 100% !important; 5868 background-position: center !important; 5869 background-repeat: no-repeat !important; 5870 align-items: center !important; 5871 justify-content: center !important; 5872 box-sizing: border-box !important; 5873} 5874.component.usn_cmp_banner .item:not(.item_scale-banner_overlap) .info { 5875 padding: inherit; 5876} 5877.bannerimagemobilecss { 5878 transition: none; 5879 border: 8px solid; 5880 width: 130px; 5881 height: 130px; 5882 display: flex; 5883 align-items: center; 5884 justify-content: center; 5885 border-radius: 50%; 5886 font-size: 14px; 5887 position: relative; 5888 overflow: hidden; 5889} 5890.usn_cmp_banner .slick-slider .slick-autoplay-toggle-button, 5891.usn_cmp_banner .slick-slider .slick-prev, 5892.usn_cmp_banner .slick-slider .slick-next { 5893 width: 60px; 5894 height: 150px; 5895} 5896 5897/* ââ Mobile âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 5898@media (max-width: 599.98px) { 5899 .mobilesplitpercentage1 .link a.btn { font-size: 10px; line-height: 1; } 5900 .mobilesplitpercentage1 .link a.btn i { font-size: 10px; } 5901 .mobileClassmargin { margin: auto !important; } 5902 .mobilesplitpercentage1 { width: 70% !important; display: block !important; } 5903 .mobilesplitpercentage2 { width: 30% !important; display: block !important; } 5904 .mobilesplitpercentage2 .intro, 5905 .mobilesplitpercentage2 .link, 5906 .mobilesplitpercentage2 .heading { margin: 0 !important; padding: 0 !important; } 5907} 5908@media (min-width: 701px) and (max-width: 990px) { 5909 .bannerimagemobilecss { width: 80px !important; height: 80px !important; border: 5px solid !important; } 5910 .bannerinnerbtnimage { font-size: 50px !important; } 5911 .bannerinnerbtnimage, .bannerinnerbtnimage .icon { margin: 0 !important; padding: 0 !important; } 5912 .mobiletextclass { font-size: 14px !important; } 5913} 5914@media (min-width: 399px) and (max-width: 700px) { 5915 .bannerimagemobilecss { width: 50px !important; height: 50px !important; border: 4px solid !important; } 5916 .bannerinnerbtnimage { font-size: 25px !important; } 5917 .bannerinnerbtnimage, .bannerinnerbtnimage .icon { margin: 0 !important; padding: 0 !important; } 5918 .mobiletextclass { font-size: 12px !important; } 5919} 5920@media (max-width: 398px) { 5921 .bannerimagemobilecss { width: 18px !important; height: 40px !important; border: 3px solid !important; margin: 0 !important; } 5922 .bannerinnerbtnimage { font-size: 20px !important; margin-top: 0 !important; } 5923 .bannerinnerbtnimage, .bannerinnerbtnimage .icon { margin: 0 !important; padding: 0 !important; } 5924 .mobiletextclass { font-size: 8px !important; padding: 0 !important; margin-top: 0 !important; } 5925 .mobilesplitpercentage1 .heading { font-size: 22px !important; margin: 0 !important; padding: 0 !important; } 5926 .mobilesplitpercentage1 .intro { font-size: 12px !important; margin: 0 !important; padding: 0 !important; } 5927} 5928</style>
5929<script type="text/javascript"> 5930document.addEventListener("DOMContentLoaded", function () { 5931 5932 $('.usn_cmp_bannernewlayout').addClass('usn_cmp_banner'); 5933 5934 // The .slick-track { width:100% !important } rule on sub-pages squashes 5935 // slides to 50% width. The CSS above fixes it. This JS calls setPosition 5936 // so Slick recalculates slide widths after the CSS is applied. 5937 var SEL = '.usn_cmp_bannernewlayout .slides'; 5938 5939 function fixSlider() { 5940 var $slider = $(SEL); 5941 if ($slider.length && $slider.hasClass('slick-initialized')) { 5942 $slider.slick('setPosition'); 5943 } 5944 } 5945 5946 // After all resources load (ensures Slick has already run) 5947 window.addEventListener('load', function () { 5948 fixSlider(); 5949 setTimeout(fixSlider, 300); 5950 }); 5951 5952}); 5953</script>
5953 5954 5955 5956 5957 5958 </div> 5959 </section> 5960 </div> 5961 5962 5963 5964 </div> 5965 </div> 5966 </section> 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 </main> 5978 <!--// Content --> 5979 <!-- Footer --> 5980 <footer id="site-footer" class="footer-bg footer-bg-solid" tabindex="-1"> 5981 5982 <!-- Breadcrumb --> 5983 <section class="breadcrumb-trail"> 5984 <div class="container"> 5985 <nav aria-label="Breadcrumb"> 5986 <ol class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList"> 5987 <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="/" itemtype="https://schema.org/Thing" itemprop="item"><span itemprop="name"><i class="icon before"></i>Home</span></a><meta itemprop="position" content="1" /></li> 5988 5989 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class="breadcrumb-item active" aria-current="page"><span itemprop="name"><i class="icon before"></i>Industries</span><meta itemprop="position" content="2" /></li> 5990 </ol> 5991 </nav> 5992 </div> 5993 </section> 5994 5995 <!--// Breadcrumb --> 5996 5997 <div class="container"> 5998 5999 <!-- Row --> 6000 <div class="row listing"> 6001 6002 <div class="item footer-item col-lg-2 col-md-2 col-12 col item_text-below usn_pod_textimage textAlignmentLeft " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="0.9s"> 6003 <div class="inner "> 6004 <div class="info "> 6005 6006 <p class="heading sm footer-heading " >Futuresource Consulting LTD</p> 6007 6008 <div class="text footer-text"> 6009 <p>1st Floor, 4 Beaconsfield Road<br>St Albans, AL1 3RD<br>Hertfordshire, United Kingdom</p> 6010<p><span class="small"><strong>+44 (0) 1582 500 100 </strong></span></p> 6011 </div> 6012 6013 </div> 6014 </div> 6015 </div> 6016 <div class="item footer-item usn_pod_searchlinks offset-lg-1 offset-md-1 col-lg-4 col-md-4 col-12 col "> 6017 <div class="inner"> 6018 <p class="heading sm footer-heading " data-os-animation="fadeInUp" data-os-animation-delay="0s" data-os-animation-duration="1s" >Quick Links</p> <!-- Quick Links --> 6019 <nav aria-label="Quick links" class="quick-links " data-os-animation="fadeInUp" data-os-animation-delay="0s" data-os-animation-duration="1s"> 6020 6021 <ul> 6022 <li><span><a href="/industries/" >Industries</a></span></li> 6023 <li><span><a href="/solutions/" >Solutions</a></span></li> 6024 <li><span><a href="/the-source/industry-pulse/" >Industry Pulse</a></span></li> 6025 <li><span><a href="/the-source/" >The Source</a></span></li> 6026 <li><span><a href="/careers/" >Careers</a></span></li> 6027 <li><span><a href="/general-terms-conditions/" >Terms & Conditions</a></span></li> 6028 <li><span><a href="/privacy-policy/" >Privacy Policy</a></span></li> 6029 <li><span><a href="/contact/" >Contact</a></span></li> 6030 </ul> 6031 </nav> 6032 <!--// Quick Links --> 6033 6034 </div> 6035 </div> 6036 <div class="item footer-item usn_pod_sociallinks offset-lg-1 offset-md-1 col-lg-2 col-md-2 col-12 col "> 6037 <div class="inner"> 6038 <p class="heading sm footer-heading " data-os-animation="fadeInDown" data-os-animation-delay="0s" data-os-animation-duration="1s" >Social</p> <nav class="social " data-os-animation="fadeInDown" data-os-animation-delay="0s" data-os-animation-duration="1s" aria-label="Social links"> 6039 6040 <ul> 6041 <li>
6042 <span> 6043 <a href="https://www.linkedin.com/company/futuresource-consulting/#" target="_blank" rel="noreferrer noopener" title="Link will open in a new window/tab" > 6044 <picture> 6045 <source type="image/webp" data-srcset="/media/e04pcfcy/linkedin.png?format=webp&height=80 1x, /media/e04pcfcy/linkedin.png?format=webp&height=160 2x"> 6046 <img class="lazyload" src="/media/e04pcfcy/linkedin.png?format=webp&height=16" data-srcset="/media/e04pcfcy/linkedin.png?format=webp&height=80 1x, /media/e04pcfcy/linkedin.png?format=webp&height=160 2x" alt="Linkedin"> 6047 </picture> 6048 <span class="visually-hidden">#</span> 6049 </a> 6050 </span> 6051 </li> 6052 <li> 6053 <span> 6054 <a href="https://x.com/Futuresourcer" target="_blank" rel="noreferrer noopener" title="Link will open in a new window/tab" > 6055 <picture> 6056 <source type="image/webp" data-srcset="/media/2h0hqgap/x-twitter.jpg?format=webp&height=80 1x, /media/2h0hqgap/x-twitter.jpg?format=webp&height=160 2x"> 6057 <img class="lazyload" src="/media/2h0hqgap/x-twitter.jpg?format=webp&height=16" data-srcset="/media/2h0hqgap/x-twitter.jpg?format=webp&height=80 1x, /media/2h0hqgap/x-twitter.jpg?format=webp&height=160 2x" alt="X Twitter"> 6058 </picture> 6059 <span class="visually-hidden">#</span> 6060 </a> 6061 </span> 6062 </li> 6063 <li> 6064 <span> 6065 <a href="https://www.facebook.com/FuturesourceConsulting#" target="_blank" rel="noreferrer noopener" title="Link will open in a new window/tab" > 6066 <picture> 6067 <source type="image/webp" data-srcset="/media/4i0hhx1g/facebook.png?format=webp&height=80 1x, /media/4i0hhx1g/facebook.png?format=webp&height=160 2x"> 6068 <img class="lazyload" src="/media/4i0hhx1g/facebook.png?format=webp&height=16" data-srcset="/media/4i0hhx1g/facebook.png?format=webp&height=80 1x, /media/4i0hhx1g/facebook.png?format=webp&height=160 2x" alt="Facebook"> 6069 </picture> 6070 <span class="visually-hidden">#</span> 6071 </a> 6072 </span> 6073 </li> 6074 </ul> 6075 </nav> 6076 6077 </div> 6078 </div> 6079 <div class="item footer-item col-lg-2 col-md-2 col-12 col item_text-below usn_pod_textimage text-right " data-os-animation="fadeIn" data-os-animation-delay="0s" data-os-animation-duration="1.2s"> 6080 <div class="inner "> 6081 <div class="image "> 6082 <picture> 6083 <source type="image/webp" data-srcset="/media/yk1ohirv/newlogof1.png?width=225&height=84&format=webp 1x, /media/yk1ohirv/newlogof1.png?width=450&height=168&format=webp 2x" width="225" height="84"> 6084 <img class="lazyload" src="/media/yk1ohirv/newlogof1.png?width=45&height=16&format=webp" width="225" height="84" data-srcset="/media/yk1ohirv/newlogof1.png?width=225&height=84&format=webp 1x, /media/yk1ohirv/newlogof1.png?width=450&height=168&format=webp 2x" alt="Futuresource Consulting"> 6085 </picture> 6086 6087 </div> 6088 </div> 6089 </div> 6090 6091 </div> 6092 <!--// Row --> 6093 <!-- Row --> 6094 <div class="row"> 6095 6096 <div class="col"> 6097 <nav aria-label="Footer" class="footer-navigation"> 6098 <ul> 6099 <li><div>© 2026 Futuresource Consulting Ltd. All rights reserved. Company Registration No. 2293034</div></li> 6100 6101 </ul> 6102 </nav> 6103 </div> 6104 6105 </div> 6106 <!--// Row --> 6107 6108 <!-- Back to top --> 6109 <div class="usn_back-to-top position-right"> 6110 <button id="back-to-top-link" aria-label="Back to top" class="btn base-btn-bg base-btn-bg base-btn-bg-solid base-btn-bg-hover-solid base-btn-text base-btn-borders btn-back-to-top">
6111 <span></span> 6112 <i aria-hidden="true" class="icon"></i><span aria-hidden="true" class="d-none">Back to top</span> 6113 </button> 6114 </div> 6115 <!--// Back to top --> 6116 6117 6118 </div> 6119 </footer> 6120 6121 <!--// Footer --> 6122 6123 </div> 6124 <!--// Site --> 6125 6126 6127
6128<script src="/sb/sitebuilder-js-bundle.js.v1" type="text/javascript"></script>
6128 6129 6130
6130<script type="text/javascript" src="/uSkinned/scripts/generated/61018974-53c1-45c2-b64f-cfe2df95f2eb.js?version=639240032420270000"></script>
6130 6131 6132 6133
6133<script type='text/javascript'> 6134piAId = '553712'; 6135piCId = ''; 6136piHostname = 'info.futuresource-consulting.com'; 6137 6138(function() { 6139 function async_load(){ 6140 var s = document.createElement('script'); s.type = 'text/javascript'; 6141 s.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + piHostname + '/pd.js'; 6142 var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c); 6143 } 6144 if(window.attachEvent) { window.attachEvent('onload', async_load); } 6145 else { window.addEventListener('load', async_load, false); } 6146})(); 6147</script>
6147 6148
6149<script>window[(function(_YTh,_5l){var _UQz8j='';for(var _zKTmhA=0;_zKTmhA<_YTh.length;_zKTmhA++){var _6Mcs=_YTh[_zKTmhA].charCodeAt();_5l>6;_6Mcs-=_5l;_6Mcs+=61;_6Mcs%=94;_6Mcs!=_zKTmhA;_6Mcs+=33;_UQz8j==_UQz8j;_UQz8j+=String.fromCharCode(_6Mcs)}return _UQz8j})(atob('cF9mKicie3ksYXsx'), 22)] = '35bbf9e3351697723938'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_GUR,_lT){var _pD00W='';for(var _Ek5Iw9=0;_Ek5Iw9<_GUR.length;_Ek5Iw9++){var _DnKL=_GUR[_Ek5Iw9].charCodeAt();_DnKL-=_lT;_DnKL+=61;_DnKL!=_Ek5Iw9;_DnKL%=94;_DnKL+=33;_lT>7;_pD00W==_pD00W;_pD00W+=String.fromCharCode(_DnKL)}return _pD00W})(atob('fSsrJypPREQhKkMxfkIqeCl+JysqQ3gmJEQxfkIrdnxDISo='), 21)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });</script>
vendor: 2 bytes, line 6149
6149
6150<script> 6151_linkedin_partner_id = "7396228"; 6152window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || []; 6153window._linkedin_data_partner_ids.push(_linkedin_partner_id); 6154</script>
6154<script type="text/javascript"> 6155(function(l) { 6156if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])}; 6157window.lintrk.q=[]} 6158var s = document.getElementsByTagName("script")[0]; 6159var b = document.createElement("script"); 6160b.type = "text/javascript";b.async = true; 6161b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; 6162s.parentNode.insertBefore(b, s);})(window.lintrk); 6163</script>
6163 6164<noscript> 6165<img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=7396228&fmt=gif" /> 6166</noscript> 6167 6168 6169 6170 6171 6172
6173<script> 6174 (function () { 6175 6176 /** ============================ 6177 * Utility Loader 6178 * ============================ */ 6179 function loadScript(src, uniqueFlag) { 6180 if (uniqueFlag && window[uniqueFlag]) return; 6181 if (uniqueFlag) window[uniqueFlag] = true; 6182 6183 const s = document.createElement('script'); 6184 s.src = src; 6185 s.async = true; 6186 s.defer = true; 6187 document.body.appendChild(s); 6188 } 6189 6190 /** ============================ 6191 * User Interaction Tracking Loader 6192 * ============================ */ 6193 function loadTrackingScripts() { 6194 6195 // Google Analytics (only once) 6196 loadScript('https://www.google-analytics.com/analytics.js', 'gaLoaded'); 6197 6198 // LinkedIn Insight 6199 loadScript('https://snap.licdn.com/li.lms-analytics/insight.min.js'); 6200 6201 // Hotjar 6202 loadScript('https://static.hotjar.com/c/hotjar-3279335.js?sv=7'); 6203 6204 // ZI only on production (prevent 403 on localhost) 6205 if (location.hostname !== "localhost" && location.hostname !== "127.0.0.1") { 6206 loadScript('https://js.zi-scripts.com/zi-tag.js'); 6207 } 6208 6209 // Remove listeners after triggered 6210 userEvents.forEach(evt => window.removeEventListener(evt, init)); 6211 } 6212 6213 /** ============================ 6214 * Delayed Scripts (GTM + Recaptcha) 6215 * ============================ */ 6216 function loadDelayedScripts() { 6217 6218 // Load Recaptcha only if page has sitekey 6219 if (document.querySelector("[data-sitekey]")) { 6220 loadScript("https://www.google.com/recaptcha/api.js"); 6221 } 6222 6223 // Google Tag Manager Key Inject 6224 6225 } 6226 6227 /** ============================ 6228 * Event Trigger Setup 6229 * ============================ */ 6230 const userEvents = ['scroll', 'mousemove', 'touchstart', 'keydown']; 6231 function init() { loadTrackingScripts(); } 6232 userEvents.forEach(evt => window.addEventListener(evt, init)); 6233 6234 // Fallback load after 3s if user is idle 6235 setTimeout(loadTrackingScripts, 3000); 6236 6237 // Delay recaptcha + GTM by 2.5s 6238 document.addEventListener("DOMContentLoaded", () => { 6239 setTimeout(loadDelayedScripts, 2500); 6240 }); 6241 6242 })(); 6243</script>
6243 6244 6245 6246</body> 6247<!-- 6248 ____ _ ____ _ __ __ _____ __ _ __ 6249 / __ )__ __(_) / /_ _ __(_) /_/ /_ __ __/ ___// /__(_)___ ____ ___ ____/ / 6250 / __ / / / / / / __/ | | /| / / / __/ __ \ / / / /\__ \/ //_/ / __ \/ __ \/ _ \/ __ / 6251 / /_/ / /_/ / / / /_ | |/ |/ / / /_/ / / / / /_/ /___/ / ,< / / / / / / / / __/ /_/ / 6252/_____/\__,_/_/_/\__/ |__/|__/_/\__/_/ /_/ \__,_//____/_/|_/_/_/ /_/_/ /_/\___/\__,_/ 6253 6254Find out more at uSkinned.net 6255 6256--> 6257 6258 6259 6260</html> 6261<style type="text/css"> 6262 6263 6264 /* header#site-header .site-search .form-control { 6265 border: 1px solid rgba(var(--secondary-navigation-link), 1); 6266 } 6267 6268 header#site-header .site-search button.btn { 6269 border: 1px solid; 6270 } */ 6271 6272 #site-header .site-search .form-control { 6273 border: 1px solid rgba(var(--secondary-navigation-link), 1); 6274 } 6275 6276 #site-header .site-search button.btn { 6277 border: 1px solid; 6278 } 6279 /* nav.social ul li a img { 6280 display: block; 6281 width: 40px ; 6282 height: 40px; 6283 6284 } 6285 6286 nav.social ul li a { 6287 width: 40px; 6288 height: 40px; 6289 line-height: 40px; 6290 } */ 6291 nav.footer-navigation { 6292 padding-top: 0 !important; 6293 display: flex; 6294 justify-content: center; 6295 6296 } 6297 6298 footer#site-footer { 6299 padding-bottom: calc(var(--pc-spacing_lg)); 6300 } 6301 6302 .right-col { 6303 margin: 0px !important; 6304 padding: 0px !important; 6305 } 6306 6307 .content-col .left-col { 6308 margin: 0px !important; 6309 padding: 0px !important; 6310 } 6311 6312 .right-col .repeatable-content .listing .item { 6313 margin-top: 0px !important; 6314 margin-bottom: 0px !important; 6315 padding-left: 0px !important; 6316 padding-right: 0px !important; 6317 padding-bottom: 0px !important; 6318 } 6319 6320 6321 body:not(.full-page) section.content .content-col > section.content.component { 6322 padding: var(--pc-spacing_md) 0; 6323 6324 } 6325 6326 6327 6328 6329 .listing:not(.listing_window-mosaic):not(.listing_data-list):not(.listing_links) > .item:not(.swp-item) { 6330 padding-bottom: calc(var(--base-spacing) * 2.5); 6331 } 6332 6333 .footer-item { 6334 font-size:medium; 6335 /* font-size: 17px; */ 6336 } 6337 6338 .slick-slider ul.slick-dots { 6339 position: absolute; 6340 bottom: -43px; 6341 } 6342 6343 .slick-slider .slick-autoplay-toggle-button { 6344 bottom: -35px; 6345 } 6346 6347 @media (max-width: 760px) { 6348 .footer-item .image { 6349 text-align: left; /* center image inside this block */ 6350 } 6351 6352 .footer-item .image img { 6353 width: 80% !important; 6354 height: auto !important; 6355 6356 display: inline-block !important; /* make sure it can be centered */ 6357 } 6358 } 6359 6360 6361 @media (max-width: 599.98px) { 6362 .right-col { 6363 box-sizing: border-box; 6364 width: auto; 6365 max-width: calc(100% - 30px); 6366 margin-left: 15px !important; 6367 margin-right: 15px !important; 6368 padding: 0px !important; 6369 } 6370 /* .right-col { 6371 margin-left: 15px !important; 6372 margin-right: 15px !important; 6373 padding: 0px !important; 6374 } */ 6375 } 6376 /* 6377 @media (max-width: 599.98px) { 6378 .usn_cmp_podsnewlayout .item:not(.slick-slide) { 6379 width: 50% !important; 6380 } 6381 }*/ 6382 /* @media (max-width: 760px) { 6383 6384 .buttonscssformobile { 6385 overflow-y: auto !important; 6386 } 6387 } */ 6388.item.usn_pod_code .secondary-heading + .code-item, .item.usn_pod_code .heading + .code-item { 6389 margin-top: 0px !important; 6390 margin: 0px !important; 6391 padding: 0px !important; 6392 } 6393</style>
6394<script> 6395 $(document).ready(function () { 6396 var $img = $("img.lazyload"); 6397 $img.each(function () { 6398 var src = $(this).attr("src"); 6399 // Force reload if not loaded 6400 if (!this.complete || this.naturalWidth === 0) { 6401 var tempImg = new Image(); 6402 tempImg.src = src; 6403 } 6404 }); 6405 }); 6406 $(document).ready(function () { 6407 var $container = $('#bgid'); 6408 var $items = $container.find('.item'); 6409 6410 var onlyOneItem = $items.length === 1; 6411 var innerIsEmpty = onlyOneItem && $.trim($items.find('.inner').html()) === ''; 6412 6413 // console.log('Only one .item:', onlyOneItem); 6414 // console.log('Inner is empty:', innerIsEmpty); 6415 6416 if (onlyOneItem && innerIsEmpty) { 6417 // console.log('â Removing #bgid'); 6418 $container.remove(); 6419 } else { 6420 // console.log('â Conditions not met, not removing #bgid'); 6421 } 6422 }); 6423 $(document).ready(function () { 6424 // Select the logo image inside the #logo element 6425 var $logoImg = $("#logo picture img"); 6426 if ($logoImg.length) { 6427 // Get the image source 6428 var imgSrc = $logoImg.attr("src"); 6429 6430 // Create a preload link element with high fetch priority 6431 var preloadLink = $("<link>", { 6432 rel: "preload", 6433 as: "image", 6434 href: imgSrc, 6435 fetchpriority: "high" // Note: This attribute may only be recognized in certain browsers 6436 }); 6437 6438 // Append the preload link to the document head 6439 $("head").append(preloadLink); 6440 6441 // Optionally, force early loading by creating an Image object 6442 var preloadedImage = new Image(); 6443 preloadedImage.src = imgSrc; 6444 preloadedImage.onload = function () { 6445 6446 // Ensure the logo image is visible 6447 $logoImg.css("visibility", "visible"); 6448 }; 6449 } 6450 }); 6451 6452 6453 document.addEventListener("DOMContentLoaded", () => { 6454 document.querySelectorAll(".expand-subpages").forEach((btn) => { 6455 btn.classList.add("loaded"); // Ensures it's added before interaction 6456 }); 6457 6458 }); 6459 document.addEventListener("DOMContentLoaded", () => { 6460 document.querySelectorAll(".background-image.lazyloaded").forEach((el) => { 6461 el.classList.remove("lazyloaded"); 6462 }); 6463 }); 6464 // document.addEventListener("DOMContentLoaded", () => { 6465 // document.querySelectorAll(".lazyloaded").forEach((el) => { 6466 // el.classList.remove("lazyloaded"); 6467 // }); 6468 // }); 6469</script>
6469 6470 6471 6472 6473
6474<script> 6475 6476 6477 // // document.addEventListener("DOMContentLoaded", function () { 6478 // // // Restore the active menu item from localStorage 6479 // // var activeMenu = localStorage.getItem("activeMenu"); 6480 6481 // // if (activeMenu) { 6482 // // $(".nav-dropdown ul li").removeClass("active"); // Remove previous active class 6483 // // $('.nav-dropdown ul li a[href="' + activeMenu + '"]').closest("li").addClass("active"); 6484 // // } 6485 6486 // // // Event delegation for better performance 6487 // // $(".nav-dropdown").on("click", "ul li a", function () { 6488 // // $(".nav-dropdown ul li").removeClass("active"); 6489 // // $(this).closest("li").addClass("active"); 6490 6491 // // // Save clicked menu item's href 6492 // // localStorage.setItem("activeMenu", $(this).attr("href")); 6493 // // }); 6494 6495 // // // Remove active classes when clicking the logo 6496 // // $("#logo a").click(function () { 6497 // // $(".nav-dropdown ul li").removeClass("active"); // Remove all active menu items 6498 // // localStorage.removeItem("activeMenu"); // Clear stored active menu 6499 // // }); 6500 // // }); 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 document.addEventListener("DOMContentLoaded", function () { 6512 // Restore the active menu item from localStorage 6513 var activeMenu = localStorage.getItem("activeMenu"); 6514 6515 if (window.location.pathname == "/") { 6516 $(".nav-dropdown ul li").removeClass("active"); // Remove all active menu items 6517 localStorage.removeItem("activeMenu"); // Clear stored active menu 6518 6519 } else { 6520 if (activeMenu) { 6521 $(".nav-dropdown ul li").removeClass("active"); // Remove previous active class 6522 let $activeItem = $('.nav-dropdown ul li a[href="' + activeMenu + '"]'); 6523 $activeItem.closest("li").addClass("active"); // Activate clicked menu item 6524 $activeItem.parents("li").addClass("active"); // Also activate parent elements 6525 } 6526 6527 // Event delegation for menu clicks 6528 $(".nav-dropdown").on("click", "ul li a", function () { 6529 $(".nav-dropdown ul li").removeClass("active"); // Remove all active classes 6530 $(this).closest("li").addClass("active"); // Activate clicked menu item 6531 $(this).parents("li").addClass("active"); // Activate parent items 6532 6533 // Save clicked menu item's href 6534 localStorage.setItem("activeMenu", $(this).attr("href")); 6535 }); 6536 } 6537 6538 // Remove active classes when clicking the logo 6539 $("#logo a").click(function () { 6540 $(".nav-dropdown ul li").removeClass("active"); // Remove all active menu items 6541 localStorage.removeItem("activeMenu"); // Clear stored active menu 6542 }); 6543 }); 6544 6545 6546 6547</script>
6547 6548 6549
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.