/*
 * VerdantDevCore site styles
 * ==========================
 * The one place for this site's custom CSS. Loaded on every page by the child theme (functions.php),
 * after Elementor's and the plugins' stylesheets.
 *
 * Do not add CSS anywhere else: not in Appearance > Customize > Additional CSS, the theme's style.css,
 * Elementor's "Custom CSS" boxes (page, element or Royal), or form templates.
 *
 * Contents (order matters; later sections win ties with earlier ones, as they did before the move)
 *   1. Theme base ....................... fonts, general classes (was the child theme's style.css)
 *   2. Page & template styles ........... was Elementor/Royal "Custom CSS" on pages, templates and elements
 *   3. Site styles ...................... header mega menu, shared components, About, Home, service pages,
 *                                         responsive (was Customizer > Additional CSS)
 *   4. Forms ............................ Contact Form 7 "Project Enquiry" (was inside the form template)
 *
 * Scoping in section 2: rules that only applied where a page or template was shown are prefixed with
 *   :where(body:has(.elementor-<id>))
 * which keeps them limited to those pages without changing their specificity.
 */


/* =====================================================================
   1. THEME BASE
   Fonts and general classes (formerly themes/verdantdevcore/style.css).
   ===================================================================== */

/* Add your custom styles below this line */

/* Enqueue the parent theme's stylesheet */

/***
 
/* Reserve space for Clutch widget to prevent CLS */
.clutch-widget {
    min-height: 20rem; /* 320px expressed in rem */
    display: block;
}

====================================================================
    Import Custom Fonts & Font Styling
====================================================================
***/

@font-face {
    font-family: 'Raleway';
    src: url('../fonts/Raleway/Raleway-Regular.eot'); /* IE9 Compat Modes */
    src: url('../fonts/Raleway/Raleway-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('../fonts/Raleway/Raleway-Regular.ttf') format('truetype'); /* Safari, Android, iOS */
    font-weight: normal;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Raleway';
    src: url('../fonts/Raleway/Raleway-Bold.eot'); /* IE9 Compat Modes */
    src: url('../fonts/Raleway/Raleway-Bold.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('../fonts/Raleway/Raleway-Bold.ttf') format('truetype'); /* Safari, Android, iOS */
    font-weight: bold;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Raleway';
    src: url('../fonts/Raleway/Raleway-Medium.eot'); /* IE9 Compat Modes */
    src: url('../fonts/Raleway/Raleway-Medium.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('../fonts/Raleway/Raleway-Medium.ttf') format('truetype'); /* Safari, Android, iOS */
    font-weight: 500;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Raleway';
    src: url('../fonts/Raleway/Raleway-ExtraBold.eot'); /* IE9 Compat Modes */
    src: url('../fonts/Raleway/Raleway-ExtraBold.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('../fonts/Raleway/Raleway-ExtraBold.ttf') format('truetype'); /* Safari, Android, iOS */
    font-weight: 800;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Gilroy';
    src: url('../fonts/Gilroy/Gilroy-Regular.eot'); /* IE9 Compat Modes */
    src: url('../fonts/Gilroy/Gilroy-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('../fonts/Gilroy/Gilroy-Regular.ttf') format('truetype'); /* Safari, Android, iOS */
    font-weight: normal;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Gilroy';
    src: url('../fonts/Gilroy/Gilroy-Medium.eot'); /* IE9 Compat Modes */
    src: url('../fonts/Gilroy/Gilroy-Medium.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('../fonts/Gilroy/Gilroy-Medium.ttf') format('truetype'); /* Safari, Android, iOS */
    font-weight: 500;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Gilroy';
    src: url('../fonts/Gilroy/Gilroy-SemiBold.woff2') format('woff2'),
         url('../fonts/Gilroy/Gilroy-SemiBold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Gilroy';
    src: url('../fonts/Gilroy/Gilroy-Light.eot'); /* IE9 Compat Modes */
    src: url('../fonts/Gilroy/Gilroy-Light.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('../fonts/Gilroy/Gilroy-Light.ttf') format('truetype'); /* Safari, Android, iOS */
    font-weight: 300;
    font-style: normal;
	font-display: swap;
}

@font-face {
    font-family: 'Gilroy';
    src: url('../fonts/Gilroy/Gilroy-Thin.eot'); /* IE9 Compat Modes */
    src: url('../fonts/Gilroy/Gilroy-Thin.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('../fonts/Gilroy/Gilroy-Thin.ttf') format('truetype'); /* Safari, Android, iOS */
    font-weight: 100;
    font-style: normal;
	font-display: swap;
}


/* Corrected selector for site title */
.site-title, h1, h2, h3, h4, h5, h6 {
    font-family: "Raleway", Arial, sans-serif;
}

body, p, a, li, span, div {
    font-family: "Gilroy", Arial, sans-serif;
}

h1 {
	font-size: 2.5rem;
	font-weight: 700 !important;
	line-height: 3rem !important;
}

h2 {
	font-size: 2.5rem;
	font-weight: 700 !important;
	line-height: 3rem !important;
}

h4 {
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.625rem;
}

h5 {
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.5rem;
}

p {
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.5rem;
}

/*
-----------------------------------
  Special font classifications
-----------------------------------
*/

.lg-sz-h1 h1{
	font-size: 3rem;
	font-weight: 700;
	line-height: 3.6rem !important;
}

.companies-intro p{
	font-size: 1.25rem;
	font-weight: 600;
}

.lg-sz-p p{
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.74rem !important;
}

.md-sz-p p{
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.4rem;
}

.why-choose-us p{
	font-size: 1.25rem;
	line-height: 1.875rem;
	font-weight: 500;
}

.sm-sz-p p{
	font-size: 0.875rem;
	line-height: 1.313rem;
	font-weight: 400;
}

.xs-sz-p p{
	font-size: 0.75rem;
	line-height: 1.313rem;
	font-weight: 400;
}

/***
=====================================
    General Classes & IDs Styling
=====================================
***/

.elementor-40 .elementor-element.elementor-element-0fe2df8:not(.elementor-motion-effects-element-type-background), .elementor-40 .elementor-element.elementor-element-0fe2df8 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-color: #022A46;
    top: -10rem;
}

.wpr-sub-mega-menu{
	margin-top: -150px;
	z-index: 1000;
}

/* Container Styling */
#main-header .gt_selector .notranslate {
    position: relative;
    display: inline-block;
}

/* Style the select element */
#main-header .gt_selector .notranslate {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background: url('https://verdantdevcore.com/wp-content/uploads/2024/06/language-square.svg') no-repeat left center;
    padding-left: 30px;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
    border: 1px solid #ccc;
    border-radius: 8px; 
    background-size: 20px 20px;
}

/* Ensure icon is not repeated in options */
#main-header.gt_selector.notranslate option {
    background: none !important;
    padding-left: 0 !important;
}

/* Bolden and style the "Languages" header in the dropdown */
#main-header.gt_selector.notranslate option:first-child {
    font-weight: bold;
    pointer-events: none; 
}

/* Add spacing and padding to dropdown options */
#main-header.gt_selector.notranslate option {
    padding: 10px; 
    margin-bottom: 32px; 
}

/* Additional styling for the dropdown itself */
#main-header.gt_selector.notranslate {
    padding: 10px; 
    border-radius: 8px; 
}

/* The CSS code block below is used to style the Float Widget style across the Verdant DevCore website --- Disable it when the widget style moves away from the Float style */
.gtranslate_wrapper div#gt_float_wrapper {
    position: fixed;
    top: 150px !important;
    right: 10px !important;
    z-index: 999999;
}
.gt_float_switcher {
    font-size: 14px !important;
}
.gt_float_switcher img {
    width: 20px !important;
    height: auto;
    margin: 0 5px 0 0;
}
/* STYLE END for the Float Widget style */

/* Styling the chat message text*/

.initial-message-text {
    font-family: Gilroy;
	font-weight: 300;
    line-height: 20px;
}


/*
==========================================
    Homepage Customisation & Sections
==========================================
*/

.services-carousel .elementor img {
    width: 100% !important;
}

.swiper-arrows-position-outside .mySwiper {
    position: static;
    width: 100% !important;
}

#client-testimonials .swiper-pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal.swiper-pagination-bullets-dynamic {
    display: none;
}

/*
==========================================
  Stick Header
==========================================
*/

/*
=========================================================
 Media queries for label display on smaller screens 
=============================================================
*/

@media screen and (min-width: 1200px) {
	
}

@media screen and (max-width: 1200px) {
	
}

@media screen and (max-width: 1024px) {

	h1 {
	font-size: 1.6rem;
	font-weight: 700 !important;
	line-height: 2.125rem !important;
	}
	
	h2 {
	font-size: 1.6rem;
	font-weight: 700 !important;
	line-height: 2.125rem !important;	
	}

	h4 {
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.25rem;
	}

	p {
	font-size: 0.9rem;
	font-weight: 400;
	line-height: 1.25rem;
	}
	
	.why-choose-us p{
	font-size: 1rem;
	line-height: 1.5rem;
	font-weight: 500;
	}
	
	/* !important: the desktop rule's line-height is !important and otherwise doubles the spacing here */
	.lg-sz-h1 h1{
	font-size: 2rem;
	font-weight: 700;
	line-height: 2.6rem !important;
	}
	
	.lg-sz-p p{
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.5rem;
	}
	
	/* Styling for the GTranslate Float Widget (to push the widget lower than the header naviagtion primary CTA on desktop view) */
    .gtranslate_wrapper div#gt_float_wrapper {
        position: fixed;
        top: 75px !important;
    }

}

@media screen and (max-width: 767px) {

	h1 {
	font-size: 1.5rem;
	font-weight: 700 !important;
	line-height: 2rem !important;
	}
	
	h2 {
	font-size: 1.5rem;
	font-weight: 700 !important;
	line-height: 2rem !important;
	}

	h4 {
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.25rem;
	}

	p {
	font-size: 0.825rem;
	font-weight: 400;
	line-height: 1.25rem;
	}

	.companies-intro p{
	font-size: 1rem;
	font-weight: 600;
	}

  .lg-sz-p p{
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 1.74rem;
	}

	.md-sz-p p{
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.4rem;
	}
 
	.why-choose-us p{
	font-size: 0.825rem;
	line-height: 1.25rem;
	font-weight: 500;
	}
	
	.lg-sz-h1 h1{
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 2.4rem !important;
}
}


/* =====================================================================
   2. PAGE & TEMPLATE STYLES
   Formerly Elementor "Custom CSS" (Pro Elements and Royal) on individual pages,
   templates and elements. Each block names where it came from.
   ===================================================================== */

/* --- Header & footer templates --- */

/* Page custom CSS from: Footer (#78) */
:where(body:has(.elementor-78)) .elementor .vpf-cta {
	position: relative;
	overflow: hidden;
	background-color: #02203B;
	background-image:
		radial-gradient(circle 12rem at 2.5rem 0, rgba(255, 255, 255, 0.05) 0 99%, transparent 100%),
		radial-gradient(circle 12rem at 2.5rem 100%, rgba(255, 255, 255, 0.05) 0 99%, transparent 100%),
		radial-gradient(circle 12rem at calc(100% - 2.5rem) 0, rgba(255, 255, 255, 0.07) 0 99%, transparent 100%),
		radial-gradient(circle 12rem at calc(100% - 2.5rem) 100%, rgba(255, 255, 255, 0.07) 0 99%, transparent 100%),
		linear-gradient(90deg, #021F37 0%, #022C4D 40%, #03406D 72%, #0260A0 100%);
	background-repeat: no-repeat;
}

/* Heading and intro */

:where(body:has(.elementor-78)) .vpf-cta .vpf-title .elementor-heading-title {
	margin: 0;
	font-size: 4rem;
	line-height: 1.075 !important;
	font-weight: 600;
	color: #FFFFFF;
}

:where(body:has(.elementor-78)) .vpf-cta .vpf-sub {
	margin-top: 1.5rem;
	font-size: 0.9375rem;
	line-height: 1.3;
	color: #D6DEE6;
}

:where(body:has(.elementor-78)) .vpf-cta .vpf-sub p {
	margin: 0;
}

/* Buttons */

:where(body:has(.elementor-78)) .vpf-cta .vpf-btns {
	margin-top: 3.25rem;
}

:where(body:has(.elementor-78)) .vpf-cta .vpf-btn .elementor-button {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.75rem;
	padding: 1rem 1.875rem;
	border: 0.0625rem solid #FFFFFF;
	border-radius: 0.75rem;
	font-size: 0.875rem;
	line-height: 1.2;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

:where(body:has(.elementor-78)) .vpf-cta .vpf-btn--light .elementor-button {
	background: #FFFFFF;
	color: #0260A0;
}

:where(body:has(.elementor-78)) .vpf-cta .vpf-btn--light .elementor-button:hover {
	background: transparent;
	color: #FFFFFF;
}

:where(body:has(.elementor-78)) .vpf-cta .vpf-btn--ghost .elementor-button {
	background: transparent;
	color: #FFFFFF;
}

:where(body:has(.elementor-78)) .vpf-cta .vpf-btn--ghost .elementor-button:hover {
	background: #FFFFFF;
	color: #0260A0;
}

/* Tablet and mobile */

@media (max-width: 64rem) {
	:where(body:has(.elementor-78)) .vpf-cta .vpf-title .elementor-heading-title {
		font-size: 3rem;
	}

}

@media (max-width: 47.9375rem) {
	:where(body:has(.elementor-78)) .vpf-cta .vpf-title .elementor-heading-title {
		font-size: 2.25rem;
	}

	:where(body:has(.elementor-78)) .vpf-cta .vpf-btns {
		margin-top: 2.25rem;
	}

	:where(body:has(.elementor-78)) .vpf-cta .vpf-btn,
	:where(body:has(.elementor-78)) .vpf-cta .vpf-btn .elementor-button {
		width: 100%;
	}

}

/* Footers #78 / #988 / #1062: on mobile the link groups inherit the tablet grid's two equal
   rows, which stretched Products to the height of Services. Let each group take its own height. */
@media (max-width: 47.9375rem) {
	:is(.elementor-78, .elementor-988, .elementor-1062) .e-con.e-grid.elementor-element-efff702 {
		grid-template-rows: none;
	}
}

/* Tablet: 5 link groups in 3 columns put Resources and Contact on a second row below the long Services
   list, leaving big gaps under Products and Company. Stack them instead:
   Products + Resources | Services | Company + Contact. */
@media (min-width: 48rem) and (max-width: 64rem) {
	:is(.elementor-78, .elementor-988, .elementor-1062) .e-con.e-grid.elementor-element-efff702 {
		row-gap: 2.5rem;
	}

	:is(.elementor-78, .elementor-988, .elementor-1062) .e-con.e-grid.elementor-element-efff702 > .e-con {
		align-self: start;
	}

	:is(.elementor-78, .elementor-988, .elementor-1062) .elementor-element-efff702 > .elementor-element-51e8dbe { grid-area: 1 / 1; }
	:is(.elementor-78, .elementor-988, .elementor-1062) .elementor-element-efff702 > .elementor-element-d232656 { grid-area: 2 / 1; }
	:is(.elementor-78, .elementor-988, .elementor-1062) .elementor-element-efff702 > .elementor-element-d8e8c31 { grid-area: 1 / 2 / span 2; }
	:is(.elementor-78, .elementor-988, .elementor-1062) .elementor-element-efff702 > .elementor-element-3977f7d { grid-area: 1 / 3; }
	:is(.elementor-78, .elementor-988, .elementor-1062) .elementor-element-efff702 > .elementor-element-b48472a { grid-area: 2 / 3; }
}

/* --- Elementor library templates --- */

/* Element custom CSS from: Blog Item box (#4669)
   Element: text-editor 611ab0a */
:where(body:has(.elementor-4669)) .blog-cat {
	background: #4B6BFB0D;
	border-radius: 6px;
}

/* Element custom CSS from: Featured Post (#4700)
   Element: heading 7b584c8 */
:where(body:has(.elementor-4700)) .blog-feature-h3 h3 {
	font-family: Raleway !important;
}

/* Page custom CSS from: Case Study Detail (#4958) */
/* Key Takeaways: navy background runs edge to edge, cards stay aligned to your container */

:where(body:has(.elementor-4958)) .vdc-cs .vdc-cs-takeaways {
	box-shadow: 0 0 0 100vmax #022946 !important;
	clip-path: inset(0 -100vmax) !important;
}

/* FAQ block: centre it in the container */

:where(body:has(.elementor-4958)) .vdc-cs .vdc-cs-faq__wrap {
	margin-inline: auto;
	!important;
}

/* Element custom CSS from: Products Listing (body sections) (#4968), Products (#4966)
   Element: container 1b079721, container 4b02ba31 */
/* =====================================================================
   Products page — styles for the imported Elementor template.
   Lives in: first section (Hero) → Advanced → Custom CSS.
   Every rule is scoped to .vpl (set on each top-level section), so it
   can't leak into the rest of the site. Panel controls on a widget
   still win over these rules, so you can fine-tune in Elementor.
   ===================================================================== */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl {
	--vpl-ink: #1B1B33;
	--vpl-ink-2: #2B2650;
	--vpl-body: #4A4A4A;
	--vpl-blue: #0260A0;
	--vpl-tint: #F3F7FA;
	--vpl-navy: #022946;
}

/* ---------- Shared: section heading + intro (.vpl-head / .vpl-title / .vpl-sub) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-head {
	margin-bottom: 4rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-title .elementor-heading-title {
	max-width: 37rem;
	margin: 0 auto;
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 700;
	color: var(--vpl-ink);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-sub {
	max-width: 37rem;
	margin: 1.25rem auto 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--vpl-body);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-sub p:last-child {
	margin-bottom: 0;
}

/* ---------- Shared: buttons (.vpl-btn--primary / .vpl-btn--outline) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.875rem;
	min-width: 12.5rem;
	padding: 1rem 2.5rem;
	border: 0.0625rem solid var(--vpl-blue);
	border-radius: 0.625rem;
	font-size: 0.9375rem;
	line-height: 1.2;
	font-weight: 600;
	transition: background-color 0.2s ease, color 0.2s ease;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn .elementor-button-content-wrapper {
	flex-direction: row;
	gap: 0.875rem;
	align-items: center;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn .elementor-button-icon {
	order: 2;
	margin: 0;
	font-size: 0.875rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn .elementor-button-icon i,
:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn .elementor-button-icon svg {
	transform: rotate(-45deg);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn--primary .elementor-button {
	background: var(--vpl-blue);
	color: #FFFFFF;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn--primary .elementor-button:hover {
	background: var(--vpl-navy);
	border-color: var(--vpl-navy);
	color: #FFFFFF;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn--outline .elementor-button {
	background: #FFFFFF;
	color: var(--vpl-blue);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn--outline .elementor-button:hover {
	background: var(--vpl-blue);
	color: #FFFFFF;
}

/* ---------- Shared: image slots (.vpl-media) — leave empty, fill later */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media {
	overflow: hidden;
	border-radius: 0.625rem;
	background-color: #E9EEF3;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media .vpl-fill,
:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media .vpl-fill > *,
:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media .vpl-fill img {
	width: 100%;
	height: 100%;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media .vpl-fill {
	flex: 1 1 auto;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media .vpl-fill img {
	display: block;
	object-fit: cover;
	border-radius: 0;
}

/* ================================ 1. HERO (.vpl-hero) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-title--hero .elementor-heading-title {
	max-width: 38rem;
	font-size: 2.875rem;
	line-height: 1.15;
	font-weight: 600;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-hl {
	color: var(--vpl-blue);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-sub--hero {
	max-width: 36rem;
	margin-top: 1.5rem;
	font-size: 1rem;
	color: #333333;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-hero .vpl-btns {
	margin: 2.5rem 0 2.5rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media--hero {
	min-height: 32rem;
}

/* ================================ 2. PRODUCTS (.vpl-products) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-products .vpl-title .elementor-heading-title {
	max-width: 37rem;
	font-size: 2.875rem;
	font-weight: 400;
	color: var(--vpl-ink-2);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-products .vpl-head {
	margin-bottom: 5.25rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media--product {
	min-height: 34.5rem;
}

/* Tag pills = Icon List (inline, no icons) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tags .elementor-icon-list-items {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	margin-block: 0;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tags .elementor-icon-list-item {
	margin: 0 !important;
	padding: 0.4375rem 0.875rem;
	background: #EEF5FB;
	border-radius: 0.375rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tags .elementor-icon-list-item::after {
	display: none !important;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tags .elementor-icon-list-text {
	padding: 0;
	font-size: 0.8125rem;
	line-height: 1.3;
	color: #4F86B7;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-ptitle {
	margin-top: 1.75rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-ptitle .elementor-heading-title {
	font-size: 2.375rem;
	line-height: 1.2;
	font-weight: 600;
	color: var(--vpl-ink-2);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-soon {
	font-size: 1rem;
	font-weight: 400;
	color: #555555;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-pdesc {
	margin-top: 1.75rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--vpl-body);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-pdesc p:last-child {
	margin-bottom: 0;
}

/* Feature checklist = Icon List */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-checks {
	margin-top: 1rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-checks .elementor-icon-list-item {
	padding: 0.5625rem 0;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-checks .elementor-icon-list-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 1.375rem;
	height: 1.375rem;
	margin-right: 0.75rem;
	border-radius: 50%;
	background: #EEF5FB;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-checks .elementor-icon-list-icon i {
	font-size: 0.5625rem;
	color: var(--vpl-blue);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-checks .elementor-icon-list-icon svg {
	width: 0.5625rem;
	height: 0.5625rem;
	fill: var(--vpl-blue);
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-checks .elementor-icon-list-text {
	font-size: 0.8125rem;
	color: #333333;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-products .vpl-btns {
	margin-top: 2.75rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-products .vpl-btn .elementor-button {
	min-width: 12.5rem;
}

/* ================================ 3. FEATURES on black (.vpl-dark) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-dark .vpl-title .elementor-heading-title {
	font-size: 2.5rem;
	font-weight: 400;
	color: #FFFFFF;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-dark .vpl-sub {
	color: #E6E6E6;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-dark .vpl-head {
	margin-bottom: 3rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-feature .elementor-icon-box-icon {
	margin-bottom: 1.375rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-feature .elementor-icon,
:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-step .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border-radius: 0.25rem;
	font-size: 1rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-feature .elementor-icon svg,
:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-step .elementor-icon svg {
	width: 1rem;
	height: 1rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-feature .elementor-icon-box-title {
	margin: 0 0 0.75rem;
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 500;
	color: #FFFFFF;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-feature .elementor-icon-box-description {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.55;
	color: #E0E0E0;
}

/* ================================ 4. PROCESS cards (.vpl-process) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-process .vpl-title .elementor-heading-title {
	max-width: 30rem;
	color: #141414;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-process .vpl-sub {
	max-width: 31rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-step {
	padding: 1.5rem 1.5rem 1.75rem;
	background: var(--vpl-blue);
	border-radius: 0.25rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-step .elementor-icon-box-icon {
	margin-bottom: 1.125rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-step .elementor-icon-box-title {
	margin: 0 0 0.875rem;
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 600;
	color: #FFFFFF;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-step .elementor-icon-box-description {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
	color: #E8F1F8;
}

/* ================================ 5. TESTIMONIALS (.vpl-testi, PRO Testimonial Carousel) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-testi .vpl-title .elementor-heading-title {
	max-width: 34rem;
	color: #141414;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-testi .vpl-head {
	margin-bottom: 1rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-swiper {
	position: relative;
	padding-top: 4.25rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-main-swiper {
	overflow: visible;
	clip-path: inset(-2rem -100vw -2rem 0);
}

/* next card peeks on the right only */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-swiper-button {
	position: absolute;
	top: 0;
	bottom: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.375rem;
	height: 2.375rem;
	margin: 0;
	background: #F3F5F7;
	border: 0.0625rem solid #E6E9EC;
	border-radius: 0.25rem;
	color: #333333;
	font-size: 0.875rem;
	transform: none;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-swiper-button-prev {
	left: auto;
	right: 15.75rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-swiper-button-next {
	left: auto;
	right: 12.5rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-swiper-button svg {
	width: 0.875rem;
	height: 0.875rem;
	fill: currentColor;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .swiper-slide {
	height: auto;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-testimonial {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	min-height: 14rem;
	padding: 1.5rem 1.5rem 1.75rem;
	background: var(--vpl-tint);
	border: 0.0625rem solid #E3E8ED;
	border-radius: 0.25rem;
	text-align: left;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-testimonial__text {
	font-size: 1.0625rem;
	line-height: 1.4;
	font-weight: 500;
	font-style: normal;
	color: #1A1A1A;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-testimonial__footer {
	margin-top: 1.75rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-testimonial__image img {
	width: 2.375rem;
	height: 2.375rem;
	border-radius: 50%;
	object-fit: cover;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-testimonial__name {
	font-size: 1rem;
	font-weight: 500;
	color: #1A1A1A;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-testimonial__title {
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	color: #666666;
}

/* ================================ 6. STATS (.vpl-stats, Counter) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-stats .vpl-title .elementor-heading-title {
	max-width: 30rem;
	color: #FFFFFF;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-stats .vpl-sub {
	max-width: 28rem;
	color: #D6DEE6;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-stats .vpl-head {
	margin-bottom: 2.75rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-stat {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 8.75rem;
	padding: 1.5rem 1rem;
	background: rgba(255, 255, 255, 0.08);
	border: 0.0625rem solid rgba(255, 255, 255, 0.12);
	border-radius: 0.25rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-stat .elementor-counter {
	flex-direction: column;
	align-items: center;
	text-align: center;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-stat .elementor-counter-number-wrapper {
	font-size: 2.375rem;
	line-height: 1;
	font-weight: 600;
	color: #FFFFFF;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-stat .elementor-counter-title {
	margin-top: 1.25rem;
	font-size: 0.875rem;
	line-height: 1.4;
	font-weight: 400;
	color: #D6DEE6;
}

/* ================================ 7. FAQ (.vpl-faqsec, core Accordion) */

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-faqsec .vpl-title .elementor-heading-title {
	max-width: none;
	font-weight: 600;
	color: #2D2D2D;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-faqsec .vpl-sub {
	max-width: 37rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-faqsec .vpl-head {
	margin-bottom: 3rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-accordion-item {
	margin-bottom: 1.75rem;
	border: 0.0625rem dashed #DBE3E9 !important;
	border-radius: 0.75rem;
	transition: background-color 0.25s ease;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-accordion-item:has(> .elementor-tab-title.elementor-active) {
	background: var(--vpl-tint);
	border-color: var(--vpl-tint) !important;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-tab-title {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1.875rem 2rem;
	border: 0 !important;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-accordion-title {
	font-size: 1.125rem;
	line-height: 1.35;
	font-weight: 500;
	color: #1A1A1A;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-accordion-icon {
	float: none !important;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 2rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--vpl-navy);
	color: #FFFFFF;
	font-size: 0.75rem;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-accordion-icon i {
	color: #FFFFFF;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-accordion-icon svg {
	width: 0.75rem;
	height: 0.75rem;
	fill: #FFFFFF;
}

:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-tab-content {
	padding: 0 2rem 2rem;
	border: 0 !important;
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--vpl-body);
}

/* ================================ Responsive */

@media (max-width: 64rem) {
	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media--product {
		min-height: 26rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-swiper-button-prev {
		right: 3.25rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-swiper-button-next {
		right: 0;
	}

}

@media (max-width: 48rem) {
	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-head,
	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-products .vpl-head {
		margin-bottom: 2.5rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-title .elementor-heading-title,
	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl-products .vpl-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-title--hero .elementor-heading-title {
		font-size: 2rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media--hero {
		min-height: 14rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-media--product {
		min-height: 18rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-ptitle .elementor-heading-title {
		font-size: 1.75rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btn .elementor-button {
		min-width: 0;
		min-height: 3.25rem;
		padding: 0.875rem 1.5rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btns .vpl-btn {
		flex: 1 1 auto;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-btns .vpl-btn .elementor-button {
		width: 100%;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-tcar .elementor-testimonial__text {
		font-size: 1rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-stat .elementor-counter-number-wrapper {
		font-size: 2rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-tab-title {
		padding: 1.25rem;
		gap: 1rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-accordion-title {
		font-size: 1rem;
	}

	:where(body:has(:is(.elementor-4968, .elementor-4966))) .vpl .vpl-faq .elementor-tab-content {
		padding: 0 1.25rem 1.5rem;
	}

}

/* Element custom CSS from: About – Core Values (#5004), About us (#671)
   Element: container 17e53987, container 6de129e */
/* Shared heading styles for this section (scoped to the section class) */

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-head {
	margin-bottom: 3rem;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-title .elementor-heading-title {
	margin: 0;
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 600;
	color: #FFFFFF;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-sub {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #E6E6E6;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-sub p:last-child {
	margin: 0;
}

@media (max-width: 48rem) {
	:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-head {
		margin-bottom: 2rem;
	}

}

/* Core Values — dark band with soft green corner glows */

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) {
	background-image: radial-gradient(28rem 28rem at 0% 0%, rgba(54,140,120,0.45), transparent 60%), radial-gradient(24rem 24rem at 100% 100%, rgba(54,140,120,0.4), transparent 60%);
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-vrows {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-vrow > .elementor-widget {
	flex: 1 1 0;
	min-width: 0;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-value {
	height: 100%;
	padding: 1.5rem 1.5rem 1.75rem;
	background: rgba(255,255,255,0.03);
	border: 0.0625rem solid rgba(255,255,255,0.08);
	border-radius: 0.5rem;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-value .elementor-widget-container,
:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-value .elementor-icon-box-wrapper {
	height: 100%;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-value .elementor-icon-box-icon {
	margin-bottom: 1.5rem;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-value .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	font-size: 1rem;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-value .elementor-icon svg {
	width: 1rem;
	height: 1rem;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-value .elementor-icon-box-title {
	margin: 0 0 0.75rem;
	font-size: 1.375rem;
	line-height: 1.3;
	font-weight: 600;
	color: #FFFFFF;
}

:is(.elementor-5004 .elementor-element.elementor-element-6de129e, .elementor-671 .elementor-element.elementor-element-17e53987) .vab-value .elementor-icon-box-description {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: #B5B5B5;
}

/* Element custom CSS from: About – Journey (#5006), About us (#671)
   Element: container 432eec86, container 44cf1827 */
/* Shared heading styles for this section (scoped to the section class) */

:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-head {
	margin-bottom: 3rem;
}

:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-title .elementor-heading-title {
	margin: 0;
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 600;
	color: #2B2650;
}

:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-sub {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #4A4A68;
}

:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-sub p:last-child {
	margin: 0;
}

@media (max-width: 48rem) {
	:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-head {
		margin-bottom: 2rem;
	}

}

/* Journey of Innovation — year cards */

:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-year-card {
	overflow: hidden;
	background: #F3F6FA;
	border-radius: 0.5rem;
}

:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-year-top {
	min-height: 11rem;
	padding: 2rem 1rem;
}

:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-year .elementor-heading-title {
	margin: 0;
	font-size: 4rem;
	line-height: 1;
	font-weight: 700;
	letter-spacing: -0.02em;
}

:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-year-text {
	padding: 2.25rem 2.25rem 2.5rem;
	font-size: 1rem;
	line-height: 1.8;
	color: #3B3A55;
}

:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-year-text p:last-child {
	margin: 0;
}

@media (max-width: 48rem) {
	:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-year-top {
		min-height: 8rem;
	}

	:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-year .elementor-heading-title {
		font-size: 3rem;
	}

	:is(.elementor-5006 .elementor-element.elementor-element-44cf1827, .elementor-671 .elementor-element.elementor-element-432eec86) .vab-year-text {
		padding: 1.5rem;
	}

}

/* Element custom CSS from: About – Awards (#5013), About us (#671)
   Element: container 2110de6, container 42a544fb */
/* Shared heading styles for this section (scoped to the section class) */

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-head {
	margin-bottom: 3rem;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-title .elementor-heading-title {
	margin: 0;
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 600;
	color: #2B2650;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-sub {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #4A4A68;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-sub p:last-child {
	margin: 0;
}

@media (max-width: 48rem) {
	:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-head {
		margin-bottom: 2rem;
	}

}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-carousel {
	position: relative;
	padding-top: 5rem;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-carousel .swiper {
	overflow: visible;
	clip-path: inset(-100vmax -100vmax -100vmax 0);
	position: static;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-carousel .elementor-swiper-button {
	position: absolute;
	top: 0;
	bottom: auto;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.375rem;
	height: 3rem;
	margin: 0;
	background: #F3F4F5;
	border: 0.0625rem solid #E6E8EB;
	border-radius: 0.25rem;
	color: #333333;
	cursor: pointer;
	transform: none;
	pointer-events: auto;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-carousel .elementor-swiper-button svg {
	width: 1rem;
	height: 1rem;
	fill: #333333;
	pointer-events: none;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-carousel .elementor-swiper-button-prev {
	left: auto;
	right: 4.5rem;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-carousel .elementor-swiper-button-next {
	left: auto;
	right: 0;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-carousel .elementor-swiper-button:hover {
	background: #0260A0;
	border-color: #0260A0;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-carousel .elementor-swiper-button:hover svg {
	fill: #FFFFFF;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-carousel .swiper-slide {
	height: auto;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) {
	overflow-x: clip;
}

/* Awards — cards */

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-award {
	height: 100%;
	padding: 3.125rem 3.125rem 3.5rem;
	background: #FCFEFE;
	border: 0.0625rem solid #E3EAEC;
	border-radius: 0.5rem;
	text-align: center;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-award-img img {
	display: block;
	width: 100%;
	height: auto;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-award-tag {
	margin-top: 1.25rem;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-award-tag p {
	display: inline-block;
	margin: 0;
	padding: 0.375rem 1rem;
	background: #F1F4F5;
	border-radius: 62rem;
	font-size: 0.9375rem;
	color: #3B3A55;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-award-title .elementor-heading-title {
	margin: 1rem 0 0;
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 500;
	color: #2B2650;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-award-text {
	margin-top: 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.35;
	color: #4A4A68;
}

:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-award-text p:last-child {
	margin: 0;
}

@media (max-width: 48rem) {
	:is(.elementor-5013 .elementor-element.elementor-element-42a544fb, .elementor-671 .elementor-element.elementor-element-2110de6) .vab-award {
		padding: 2rem;
	}

}

/* Element custom CSS from: About – Media (#5021), About us (#671)
   Element: container 362d6085, container 575f466c */
/* Shared heading styles for this section (scoped to the section class) */

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-head {
	margin-bottom: 3rem;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-title .elementor-heading-title {
	margin: 0;
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 600;
	color: #2B2650;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-sub {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #4A4A68;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-sub p:last-child {
	margin: 0;
}

@media (max-width: 48rem) {
	:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-head {
		margin-bottom: 2rem;
	}

}

/* Featured In & Media Mentions */

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media {
	padding: 1.875rem 1.875rem 2.5rem;
	background: #F6F6F6;
	border: 0.0625rem solid #E6E6E6;
	border-radius: 0.75rem;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-logo {
	align-self: flex-start;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-logo img {
	display: block;
	width: auto;
	height: 3rem;
	object-fit: contain;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-title .elementor-heading-title {
	margin: 1.25rem 0 0;
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 500;
	color: #2B2650;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-text {
	margin-top: 0.5rem;
	font-size: 1rem;
	line-height: 1.6;
	color: #3B3A55;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-text p:last-child {
	margin: 0;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-link {
	margin-top: 1.75rem;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-link .elementor-button {
	display: inline-flex;
	padding: 0;
	background: none;
	border: 0;
	font-size: 0.875rem;
	font-weight: 600;
	color: #0260A0;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-link .elementor-button-content-wrapper {
	flex-direction: row-reverse;
	gap: 1rem;
	align-items: center;
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-link .elementor-button-icon svg {
	width: 0.875rem;
	height: 0.875rem;
	fill: #0260A0;
	transform: rotate(-45deg);
}

:is(.elementor-5021 .elementor-element.elementor-element-362d6085, .elementor-671 .elementor-element.elementor-element-575f466c) .vab-media-link .elementor-button:hover {
	color: #022946;
}

/* Element custom CSS from: About – Clients Say (#5029), About us (#671)
   Element: container 598f5fd3, container 7599d6e8 */
/* Shared heading styles for this section (scoped to the section class) */

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-head {
	margin-bottom: 3rem;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-title .elementor-heading-title {
	margin: 0;
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 600;
	color: #151B33;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-sub {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #4A4A68;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-sub p:last-child {
	margin: 0;
}

@media (max-width: 48rem) {
	:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-head {
		margin-bottom: 2rem;
	}

}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-carousel {
	position: relative;
	padding-top: 5rem;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-carousel .swiper {
	overflow: visible;
	clip-path: inset(-100vmax -100vmax -100vmax 0);
	position: static;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-carousel .elementor-swiper-button {
	position: absolute;
	top: 0;
	bottom: auto;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.375rem;
	height: 3rem;
	margin: 0;
	background: #F3F4F5;
	border: 0.0625rem solid #E6E8EB;
	border-radius: 0.25rem;
	color: #333333;
	cursor: pointer;
	transform: none;
	pointer-events: auto;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-carousel .elementor-swiper-button svg {
	width: 1rem;
	height: 1rem;
	fill: #333333;
	pointer-events: none;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-carousel .elementor-swiper-button-prev {
	left: auto;
	right: 4.5rem;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-carousel .elementor-swiper-button-next {
	left: auto;
	right: 0;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-carousel .elementor-swiper-button:hover {
	background: #0260A0;
	border-color: #0260A0;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-carousel .elementor-swiper-button:hover svg {
	fill: #FFFFFF;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-carousel .swiper-slide {
	height: auto;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) {
	overflow-x: clip;
}

/* What Our Clients Say — cards */

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-tcar .elementor-testimonial {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	min-height: 16rem;
	padding: 2.25rem 1.875rem;
	background: #F3F7FA;
	border: 0.0625rem solid #E3E8ED;
	border-radius: 0.375rem;
	text-align: left;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-tcar .elementor-testimonial__text {
	font-size: 1.25rem;
	line-height: 1.2;
	font-weight: 500;
	font-style: normal;
	color: #1A1A1A;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-tcar .elementor-testimonial__footer {
	margin-top: 3.5rem;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-tcar .elementor-testimonial__image img {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	object-fit: cover;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-tcar .elementor-testimonial__name {
	font-size: 1.125rem;
	font-weight: 500;
	color: #1A1A1A;
}

:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-tcar .elementor-testimonial__title {
	margin-top: 0.25rem;
	font-size: 0.9375rem;
	color: #666666;
}

@media (max-width: 48rem) {
	:is(.elementor-5029 .elementor-element.elementor-element-7599d6e8, .elementor-671 .elementor-element.elementor-element-598f5fd3) .vab-tcar .elementor-testimonial__text {
		font-size: 1.0625rem;
	}

}

/* Element custom CSS from: About – Leadership Team (#5031), About us (#671)
   Element: container 24402951 (also copied to Team #808), container 29b8a946 */
/* Our Leadership Team — dark band, intro + Join card left, 2x2 leaders right */

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-lead-row {
	gap: 6.75rem;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-title .elementor-heading-title {
	margin: 0;
	font-size: 3rem;
	line-height: 1.2;
	font-weight: 700;
	color: #FFFFFF;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-sub {
	margin-top: 1.75rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #D9D9D9;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-sub p:last-child,
:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join-text p:last-child,
:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-member-role p:last-child {
	margin: 0;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join {
	margin-top: 3.25rem;
	padding: 1.875rem 1.25rem 2.25rem;
	background: #1A1A1A;
	border: 0.0625rem solid rgba(255,255,255,0.1);
	border-radius: 0.5rem;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join-title .elementor-heading-title {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1.3;
	font-weight: 600;
	color: #FFFFFF;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join-text {
	margin-top: 1.5rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #CFCFCF;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join-link {
	margin-top: 2.75rem;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join-link .elementor-button {
	display: inline-flex;
	padding: 0;
	background: none;
	border: 0;
	font-size: 1rem;
	font-weight: 600;
	color: #D9D9D9;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join-link .elementor-button-content-wrapper {
	flex-direction: row-reverse;
	gap: 0.875rem;
	align-items: center;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join-link .elementor-button-icon svg {
	width: 1rem;
	height: 1rem;
	fill: #D9D9D9;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join-link .elementor-button:hover,
:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-join-link .elementor-button:hover svg {
	color: #FFFFFF;
	fill: #FFFFFF;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-member-img img {
	display: block;
	width: 100%;
	aspect-ratio: 332 / 375;
	object-fit: cover;
	border-radius: 0.375rem;
	background: #222222;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-member-name .elementor-heading-title {
	margin: 1.125rem 0 0;
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 600;
	color: #FFFFFF;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-member-role {
	margin-top: 0.75rem;
	font-size: 0.8125rem;
	color: #CFCFCF;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-member-social {
	margin-top: 1.25rem;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-member-social .elementor-social-icons-wrapper {
	gap: 0.625rem;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-member-social .elementor-social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.875rem;
	height: 1.875rem;
	padding: 0;
	background: transparent;
	border: 0.0625rem solid rgba(255,255,255,0.2);
	border-radius: 50%;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-member-social .elementor-social-icon svg {
	width: 0.75rem;
	height: 0.75rem;
	fill: #FFFFFF;
}

:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-member-social .elementor-social-icon:hover {
	background: #0260A0;
	border-color: #0260A0;
}

@media (max-width: 64rem) {
	:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-lead-row {
		gap: 3rem;
	}

}

@media (max-width: 48rem) {
	:is(.elementor-5031 .elementor-element.elementor-element-29b8a946, .elementor-671 .elementor-element.elementor-element-24402951, .elementor-808 .elementor-element.elementor-element-24402951) .vab-title .elementor-heading-title {
		font-size: 2.25rem;
	}

}

/* Element custom CSS from: About – Team (#5034), About us (#671)
   Element: container 5b5dc348, container 734ad9e0 */
/* Shared heading styles for this section (scoped to the section class) */

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-head {
	margin-bottom: 3rem;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-title .elementor-heading-title {
	margin: 0;
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 600;
	color: #2B2650;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-sub {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #4A4A68;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-sub p:last-child {
	margin: 0;
}

@media (max-width: 48rem) {
	:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-head {
		margin-bottom: 2rem;
	}

}

/* Meet the Team */

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-img img {
	display: block;
	width: 100%;
	aspect-ratio: 305 / 311;
	object-fit: cover;
	border-radius: 0.375rem;
	background: #E9EEF3;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-name .elementor-heading-title {
	margin: 1rem 0 0;
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 600;
	color: #1A1A1A;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-role {
	margin-top: 0.75rem;
	font-size: 1rem;
	color: #3B3A55;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-role p:last-child {
	margin: 0;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-social {
	margin-top: 0.75rem;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-social .elementor-social-icons-wrapper {
	gap: 1rem;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-social .elementor-social-icon {
	width: 1.875rem;
	height: 1.875rem;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0.0625rem solid #0260A0;
	border-radius: 50%;
	font-size: 0.75rem;
	transition: background-color 0.2s ease;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-social .elementor-social-icon svg {
	width: 0.75rem;
	height: 0.75rem;
	fill: #0260A0;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-social .elementor-social-icon:hover {
	background: #0260A0;
}

:is(.elementor-5034 .elementor-element.elementor-element-5b5dc348, .elementor-671 .elementor-element.elementor-element-734ad9e0) .vab-member-social .elementor-social-icon:hover svg {
	fill: #FFFFFF;
}

/* Element custom CSS from: About – Stats (#5044), Home (#102), About us (#671), Services (#838), Custom Software Development (#855), Website Development (#869), Product Design & UX (#878), Digital Transformation & Technology Consulting (#899), Cloud Services & Modernization (#927), Artificial Intelligence (#5349), SaaS Development (#5354), Mobile App Development (#5355), Web Application Development (#5356)
   Elements: 4 (container) */
/* Shared heading styles for this section (scoped to the section class) */

:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-head {
	margin-bottom: 3rem;
}

:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-title .elementor-heading-title {
	margin: 0;
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 600;
	color: #FFFFFF;
}

:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-sub {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #D6DEE6;
}

:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-sub p:last-child {
	margin: 0;
}

@media (max-width: 48rem) {
	:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-head {
		margin-bottom: 2rem;
	}

}

/* Delivering Software — stats */

:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-stat {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 10.875rem;
	padding: 1.5rem 1rem;
	background: rgba(255,255,255,0.08);
	border: 0.0625rem solid rgba(255,255,255,0.12);
	border-radius: 0.375rem;
}

:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-stat .elementor-counter {
	flex-direction: column;
	align-items: center;
	text-align: center;
}

:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-stat .elementor-counter-number-wrapper {
	font-size: 3.25rem;
	line-height: 1;
	font-weight: 600;
	color: #FFFFFF;
}

:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-stat .elementor-counter-title {
	margin-top: 1.5rem;
	font-family: "Raleway", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 400;
	color: #D6DEE6;
}

@media (max-width: 48rem) {
	:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-stat .elementor-counter-number-wrapper {
		font-size: 2.25rem;
	}

	:is(.elementor-5044 .elementor-element.elementor-element-15750920, .elementor-102 .elementor-element.elementor-element-5b7a265b, .elementor-671 .elementor-element.elementor-element-1e4be514, .elementor-838 .elementor-element.elementor-element-8a3d2e5, .elementor-855 .elementor-element.elementor-element-8a3d2e5, .elementor-869 .elementor-element.elementor-element-8a3d2e5, .elementor-878 .elementor-element.elementor-element-8a3d2e5, .elementor-899 .elementor-element.elementor-element-8a3d2e5, .elementor-927 .elementor-element.elementor-element-8a3d2e5, .elementor-5349 .elementor-element.elementor-element-8a3d2e5, .elementor-5354 .elementor-element.elementor-element-8a3d2e5, .elementor-5355 .elementor-element.elementor-element-8a3d2e5, .elementor-5356 .elementor-element.elementor-element-8a3d2e5) .vab-stat {
		min-height: 8rem;
	}

}

/* --- Pages --- */

/* Element custom CSS from: Home (#102)
   Element: bdt-panel-slider 50814ea */
:where(body:has(.elementor-102)) .bdt-panel-slide-desc {
	height: 45% !important;
}

@media screen and (max-width: 1024px) {
	:where(body:has(.elementor-102)) .bdt-panel-slide-desc {
		height: 45% !important;
	}

}

@media screen and (max-width: 767px) {
	:where(body:has(.elementor-102)) .bdt-panel-slide-desc {
		height: 50% !important;
	}

}

/* Element custom CSS from: Home (#102)
   Element: testimonials-carousel 141e03ad */
:where(body:has(.elementor-102)) .elementor .elementor-element.testimonials .swiper-wrapper .block-shadow {
	border-style: solid !important;
	border-width: 1rem 0rem 0rem 0rem !important;
	border-radius: 7px 7px 7px 7px;
}

:where(body:has(.elementor-102)) .mySwiper {
	padding: 30px 30px 50px 0px;
}

:where(body:has(.elementor-102)) .swiper-arrows-position-outside .mySwiper {
	position: static;
	width: 100%;
}

/* Target all swiper-slide elements within the specific swiper-wrapper */

:where(body:has(.elementor-102)) .swiper-wrapper .swiper-slide.slider-container-background {
	width: 559px !important;
	margin-right: 30px;
}

/* Target the first block */

:where(body:has(.elementor-102)) ul.swiper-wrapper > li:nth-child(1) .block-shadow.slider-container-block-background {
	border: #61DAFB !important;
	padding: 40px 50px 50px 50px;
}

/* Target the second block */

:where(body:has(.elementor-102)) ul.swiper-wrapper > li:nth-child(2) .block-shadow.slider-container-block-background {
	border: #0CBFAA !important;
	padding: 40px 50px 50px 50px;
}

/* Target the third block */

:where(body:has(.elementor-102)) ul.swiper-wrapper > li:nth-child(3) .block-shadow.slider-container-block-background {
	border: #FC9A7D !important;
	padding: 40px 50px 50px 50px;
}

@media screen and (max-width: 1024px) {
	:where(body:has(.elementor-102)) .swiper-wrapper .swiper-slide.slider-container-background {
		width: 400px !important;
		margin-right: 10px;
	}

	:where(body:has(.elementor-102)) ul.swiper-wrapper > li:nth-child(1) .block-shadow.slider-container-block-background {
		padding: 20px 20px 30px 30px;
	}

	:where(body:has(.elementor-102)) ul.swiper-wrapper > li:nth-child(2) .block-shadow.slider-container-block-background {
		padding: 20px 20px 30px 30px;
	}

	:where(body:has(.elementor-102)) ul.swiper-wrapper > li:nth-child(3) .block-shadow.slider-container-block-background {
		padding: 20px 20px 30px 30px;
	}

}

@media screen and (max-width: 767px) {
	:where(body:has(.elementor-102)) .swiper-wrapper .swiper-slide.slider-container-background {
		width: 300px !important;
		margin-right: 10px;
	}

	:where(body:has(.elementor-102)) ul.swiper-wrapper > li:nth-child(1) .block-shadow.slider-container-block-background {
		padding: 20px 20px 15px 30px;
	}

	:where(body:has(.elementor-102)) ul.swiper-wrapper > li:nth-child(2) .block-shadow.slider-container-block-background {
		padding: 20px 20px 15px 30px;
	}

	:where(body:has(.elementor-102)) ul.swiper-wrapper > li:nth-child(3) .block-shadow.slider-container-block-background {
		padding: 20px 20px 15px 15px;
	}

}

/* Element custom CSS from: About us (#671)
   Element: testimonial-carousel 689be962 */
.elementor-671 .elementor-element.elementor-element-689be962 .vab-carousel .elementor-swiper,
.elementor-671 .elementor-element.elementor-element-689be962 .vab-carousel .elementor-widget-container {
	position: static;
}

/* Element custom CSS from: Custom Software Development (#855)
   Element: text-editor 7d0dfd9 */
:where(body:has(.elementor-855)) .semi-bold p {
	font-weight: 600 !important;
}

/* Element custom CSS from: Services (#838), Custom Software Development (#855), Website Development (#869), Product Design & UX (#878), Digital Transformation & Technology Consulting (#899), Cloud Services & Modernization (#927), Artificial Intelligence (#5349), SaaS Development (#5354), Mobile App Development (#5355), Web Application Development (#5356)
   Element: container 82500ce */
/* ================================ 5. TESTIMONIALS (.vpl-testi, PRO Testimonial Carousel) */

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl-testi .vpl-title .elementor-heading-title {
	max-width: 34rem;
	color: #141414;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl-testi .vpl-head {
	margin-bottom: 1rem;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-swiper {
	position: relative;
	padding-top: 4.25rem;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-main-swiper {
	position: static;
	overflow: visible;
	clip-path: inset(-100vmax -100vmax -100vmax 0);
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl.vpl .vpl-tcar .elementor-swiper-button {
	position: absolute;
	top: 0;
	bottom: auto;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.375rem;
	height: 2.375rem;
	margin: 0;
	background: #F3F5F7;
	border: 0.0625rem solid #E1E5EA;
	border-radius: 0.25rem;
	color: #333333 !important;
	cursor: pointer;
	transform: none;
	pointer-events: auto;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl.vpl .vpl-tcar .elementor-swiper-button-prev {
	left: auto;
	right: 3.25rem;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl.vpl .vpl-tcar .elementor-swiper-button-next {
	left: auto;
	right: 0;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl.vpl .vpl-tcar .elementor-swiper-button svg {
	width: 0.875rem;
	height: 0.875rem;
	fill: #333333 !important;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl.vpl .vpl-tcar .elementor-swiper-button:hover {
	background: #0260A0;
	border-color: #0260A0;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl.vpl .vpl-tcar .elementor-swiper-button:hover svg {
	fill: #FFFFFF;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-swiper-button-prev {
	left: auto;
	right: 15.75rem;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-swiper-button-next {
	left: auto;
	right: 12.5rem;
	fill: #000 !important;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-swiper-button svg {
	width: 0.875rem;
	height: 0.875rem;
	fill: currentColor;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .swiper-slide {
	height: auto;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-testimonial {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	min-height: 14rem;
	padding: 1.5rem 1.5rem 1.75rem;
	background: #F3F7FA;
	border: 0.0625rem solid #E3E8ED;
	border-radius: 0.25rem;
	text-align: left;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-testimonial__text {
	font-family: "Gilroy" !important;
	font-size: 1.125rem;
	line-height: 1.4;
	font-weight: 500;
	font-style: normal;
	letter-spacing:-1% !important;
	color: #1A1A1A !important;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-testimonial__footer {
	margin-top: 1.75rem;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-testimonial__image img {
	width: 2.375rem;
	height: 2.375rem;
	border-radius: 50%;
	object-fit: cover;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-testimonial__name {
	font-size: 1rem;
	font-weight: 500;
	color: #1A1A1A;
}

:where(body:has(:is(.elementor-838, .elementor-855, .elementor-869, .elementor-878, .elementor-899, .elementor-927, .elementor-5349, .elementor-5354, .elementor-5355, .elementor-5356))) .vpl .vpl-tcar .elementor-testimonial__title {
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	color: #666666;
}

/* Element custom CSS from: Careers (#961)
   Element: bdt-panel-slider 83b0de4 */
:where(body:has(.elementor-961)) .bdt-panel-slide-desc {
	height: 50% !important;
}

/* Element custom CSS from: Open Roles (#1023)
   Element: tabs ebce7da */
:where(body:has(.elementor-1023)) .bdt-panel-slide-desc {
	height: 45% !important;
}

@media screen and (max-width: 1024px) {
	:where(body:has(.elementor-1023)) .bdt-panel-slide-desc {
		height: 50% !important;
	}

}

/* Open Roles tabs on phones: Elementor turns them into an accordion (active title above its jobs, the
   other titles stacked below). They were plain text with no sign they open; style them as rows. */
@media (max-width: 47.9375rem) {
	.elementor-1023 .elementor-element.elementor-element-ebce7da .elementor-tab-mobile-title {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 1rem 0.25rem;
		border-top: 0.0625rem solid #DCE3EA !important;
		font-weight: 600;
		cursor: pointer;
	}

	.elementor-1023 .elementor-element.elementor-element-ebce7da .elementor-tab-mobile-title::after {
		content: "+";
		font-size: 1.25rem;
		font-weight: 400;
		line-height: 1;
		color: #0260A0;
	}

	.elementor-1023 .elementor-element.elementor-element-ebce7da .elementor-tab-mobile-title.elementor-active {
		color: #0260A0;
	}

	.elementor-1023 .elementor-element.elementor-element-ebce7da .elementor-tab-mobile-title.elementor-active::after {
		content: "\2013";
	}

	.elementor-1023 .elementor-element.elementor-element-ebce7da .elementor-tab-content {
		padding: 0.5rem 0 1.5rem;
	}
}

/* Element custom CSS from: Blog (#2181)
   Element: loop-grid 561129a */
:where(body:has(.elementor-2181)) #load-more-blog .elementor-button {
	background: transparent;
	border: solid 1px #025FA0;
	font-weight: 700;
	font-size: 0.825rem;
}

/* Element custom CSS from: Products (#4966)
   Element: heading 3b99a2db */
:where(body:has(.elementor-4966)) .vpl-h1 h1 {
	font-weight: 700 !important;
}

/* Element custom CSS from: Products (#4966)
   Element: icon-box 422b9185 */
:where(body:has(.elementor-4966)) .vpl-feature .elementor-icon-box-description {
	width: 21rem !important;
}

@media screen and (max-width: 1024px) {
	:where(body:has(.elementor-4966)) .vpl-feature .elementor-icon-box-description {
		width: auto !important;
	}

}

/* Element custom CSS from: Products (#4966)
   Element: icon-box 539efc1f */
:where(body:has(.elementor-4966)) .vpl-step .elementor-icon-box-description {
	width: 20rem !important;
}

@media screen and (max-width: 1024px) {
	:where(body:has(.elementor-4966)) .vpl-step .elementor-icon-box-description {
		width: auto !important;
	}

}

/* Page custom CSS from: Products (#4966) */
:where(body:has(.elementor-4966)) .vpl {
	--vpl-ink: #1B1B33;
	--vpl-ink-2: #2B2650;
	--vpl-body: #4A4A4A;
	--vpl-blue: #0260A0;
	--vpl-tint: #F3F7FA;
	--vpl-navy: #022946;
}

:where(body:has(.elementor-4966)) .vpl .vpl-head {
	margin-bottom: 4rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-title .elementor-heading-title {
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 700;
	color: var(--vpl-ink);
}

:where(body:has(.elementor-4966)) .vpl .vpl-sub {
	margin: 1.25rem auto 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--vpl-body);
}

:where(body:has(.elementor-4966)) .vpl .vpl-sub p:last-child {
	margin-bottom: 0;
}

/* ---------- Shared: buttons (.vpl-btn--primary / .vpl-btn--outline) */

:where(body:has(.elementor-4966)) .vpl .vpl-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.875rem;
	min-width: 12.5rem;
	padding: 1rem 2.5rem;
	border: 0.0625rem solid var(--vpl-blue);
	border-radius: 0.625rem;
	font-size: 0.9375rem;
	line-height: 1.2;
	font-weight: 600;
	transition: background-color 0.2s ease, color 0.2s ease;
}

:where(body:has(.elementor-4966)) .vpl .vpl-btn .elementor-button-content-wrapper {
	flex-direction: row;
	gap: 0.875rem;
	align-items: center;
}

:where(body:has(.elementor-4966)) .vpl .vpl-btn .elementor-button-icon {
	order: 2;
	margin: 0;
	font-size: 0.875rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-btn .elementor-button-icon i,
:where(body:has(.elementor-4966)) .vpl .vpl-btn .elementor-button-icon svg {
	transform: rotate(-45deg);
}

:where(body:has(.elementor-4966)) .vpl .vpl-btn--primary .elementor-button {
	background: var(--vpl-blue);
	color: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl .vpl-btn--primary .elementor-button:hover {
	background: var(--vpl-navy);
	border-color: var(--vpl-navy);
	color: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl .vpl-btn--outline .elementor-button {
	background: #FFFFFF;
	color: var(--vpl-blue);
}

:where(body:has(.elementor-4966)) .vpl .vpl-btn--outline .elementor-button:hover {
	background: var(--vpl-blue);
	color: #FFFFFF;
}

/* ---------- Shared: image slots (.vpl-media) — leave empty, fill later */

:where(body:has(.elementor-4966)) .vpl .vpl-media {
	overflow: hidden;
	border-radius: 0.625rem;
	background-color: #E9EEF3;
}

:where(body:has(.elementor-4966)) .vpl .vpl-media .vpl-fill,
:where(body:has(.elementor-4966)) .vpl .vpl-media .vpl-fill > *,
:where(body:has(.elementor-4966)) .vpl .vpl-media .vpl-fill img {
	width: 100%;
	height: 100%;
}

:where(body:has(.elementor-4966)) .vpl .vpl-media .vpl-fill {
	flex: 1 1 auto;
}

:where(body:has(.elementor-4966)) .vpl .vpl-media .vpl-fill img {
	display: block;
	object-fit: cover;
	border-radius: 0;
}

/* ================================ 1. HERO (.vpl-hero) */

:where(body:has(.elementor-4966)) .vpl .vpl-title--hero .elementor-heading-title {
	font-size: 2.875rem;
	line-height: 1.15;
	font-weight: 600;
}

:where(body:has(.elementor-4966)) .vpl .vpl-hl {
	color: var(--vpl-blue);
}

:where(body:has(.elementor-4966)) .vpl .vpl-sub--hero {
	margin-top: 1.5rem;
	font-size: 1rem;
	color: #333333;
}

:where(body:has(.elementor-4966)) .vpl-hero .vpl-btns {
	margin: 2.5rem 0 2.5rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-media--hero {
	min-height: 32rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-swiper {
	position: relative;
	isolation: isolate;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-swiper-button {
	z-index: 10 !important;
	pointer-events: auto !important;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-swiper-button svg {
	pointer-events: none;
}

/* ================================ 2. PRODUCTS (.vpl-products) */

:where(body:has(.elementor-4966)) .vpl-products .vpl-title .elementor-heading-title {
	font-size: 2.875rem;
	font-weight: 400;
	color: var(--vpl-ink-2);
}

:where(body:has(.elementor-4966)) .vpl-products .vpl-head {
	margin-bottom: 5.25rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-media--product {
	min-height: 34.5rem;
}

/* Tag pills = Icon List (inline, no icons) */

:where(body:has(.elementor-4966)) .vpl .vpl-tags .elementor-icon-list-items {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	margin-block: 0;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tags .elementor-icon-list-item {
	margin: 0 !important;
	padding: 0.4375rem 0.875rem;
	background: #EEF5FB;
	border-radius: 0.375rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tags .elementor-icon-list-item::after {
	display: none !important;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tags .elementor-icon-list-text {
	padding: 0;
	font-size: 0.8125rem;
	line-height: 1.3;
	color: #4F86B7;
}

:where(body:has(.elementor-4966)) .vpl .vpl-ptitle {
	margin-top: 1.75rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-ptitle .elementor-heading-title {
	font-size: 2.375rem;
	line-height: 1.2;
	font-weight: 600;
	color: var(--vpl-ink-2);
}

:where(body:has(.elementor-4966)) .vpl .vpl-soon {
	font-size: 1rem;
	font-weight: 400;
	color: #555555;
}

:where(body:has(.elementor-4966)) .vpl .vpl-pdesc {
	margin-top: 1.75rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--vpl-body);
}

:where(body:has(.elementor-4966)) .vpl .vpl-pdesc p:last-child {
	margin-bottom: 0;
}

/* Feature checklist = Icon List */

:where(body:has(.elementor-4966)) .vpl .vpl-checks {
	margin-top: 1rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-checks .elementor-icon-list-item {
	padding: 0.5625rem 0;
}

:where(body:has(.elementor-4966)) .vpl .vpl-checks .elementor-icon-list-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 1.375rem;
	height: 1.375rem;
	margin-right: 0.75rem;
	border-radius: 50%;
	background: #EEF5FB;
}

:where(body:has(.elementor-4966)) .vpl .vpl-checks .elementor-icon-list-icon i {
	font-size: 0.5625rem;
	color: var(--vpl-blue);
}

:where(body:has(.elementor-4966)) .vpl .vpl-checks .elementor-icon-list-icon svg {
	width: 0.5625rem;
	height: 0.5625rem;
	fill: var(--vpl-blue);
}

:where(body:has(.elementor-4966)) .vpl .vpl-checks .elementor-icon-list-text {
	font-size: 0.8125rem;
	color: #333333;
}

:where(body:has(.elementor-4966)) .vpl-products .vpl-btns {
	margin-top: 2.75rem;
}

:where(body:has(.elementor-4966)) .vpl-products .vpl-btn .elementor-button {
	min-width: 12.5rem;
}

/* ================================ 3. FEATURES on black (.vpl-dark) */

:where(body:has(.elementor-4966)) .vpl-dark .vpl-title .elementor-heading-title {
	font-size: 2.5rem;
	font-weight: 400;
	color: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl-dark .vpl-sub {
	color: #E6E6E6;
}

:where(body:has(.elementor-4966)) .vpl-dark .vpl-head {
	margin-bottom: 3rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-feature .elementor-icon-box-icon {
	margin-bottom: 1.375rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-feature .elementor-icon,
:where(body:has(.elementor-4966)) .vpl .vpl-step .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border-radius: 0.25rem;
	font-size: 1rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-feature .elementor-icon svg,
:where(body:has(.elementor-4966)) .vpl .vpl-step .elementor-icon svg {
	width: 1rem;
	height: 1rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-feature .elementor-icon-box-title {
	margin: 0 0 0.75rem;
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 500;
	color: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl .vpl-feature .elementor-icon-box-description {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.55;
	color: #E0E0E0;
}

/* ================================ 4. PROCESS cards (.vpl-process) */

:where(body:has(.elementor-4966)) .vpl-process .vpl-title .elementor-heading-title {
	max-width: 30rem;
	color: #141414;
}

:where(body:has(.elementor-4966)) .vpl-process .vpl-sub {
	max-width: 31rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-step {
	padding: 1.5rem 1.5rem 1.75rem;
	background: var(--vpl-blue);
	border-radius: 0.375rem !important;
}

:where(body:has(.elementor-4966)) .vpl .vpl-step .elementor-icon-box-icon {
	margin-bottom: 1.125rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-step .elementor-icon-box-title {
	margin: 0 0 0.875rem;
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 600;
	color: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl .vpl-step .elementor-icon-box-description {
	margin: 0;
	font-size: 0.875rem;
	line-height: 1.5;
	color: #E8F1F8;
}

/* ================================ 5. TESTIMONIALS (.vpl-testi, PRO Testimonial Carousel) */

:where(body:has(.elementor-4966)) .vpl-testi .vpl-title .elementor-heading-title {
	max-width: 34rem;
	color: #141414;
}

:where(body:has(.elementor-4966)) .vpl-testi .vpl-head {
	margin-bottom: 1rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-swiper {
	position: relative;
	padding-top: 4.25rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-main-swiper {
	position: static;
	overflow: visible;
	clip-path: inset(-100vmax -100vmax -100vmax 0);
}

:where(body:has(.elementor-4966)) .vpl.vpl .vpl-tcar .elementor-swiper-button {
	position: absolute;
	top: 0;
	bottom: auto;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.375rem;
	height: 2.375rem;
	margin: 0;
	background: #F3F5F7;
	border: 0.0625rem solid #E1E5EA;
	border-radius: 0.25rem;
	color: #333333 !important;
	cursor: pointer;
	transform: none;
	pointer-events: auto;
}

:where(body:has(.elementor-4966)) .vpl.vpl .vpl-tcar .elementor-swiper-button-prev {
	left: auto;
	right: 3.25rem;
}

:where(body:has(.elementor-4966)) .vpl.vpl .vpl-tcar .elementor-swiper-button-next {
	left: auto;
	right: 0;
}

:where(body:has(.elementor-4966)) .vpl.vpl .vpl-tcar .elementor-swiper-button svg {
	width: 0.875rem;
	height: 0.875rem;
	fill: #333333 !important;
}

:where(body:has(.elementor-4966)) .vpl.vpl .vpl-tcar .elementor-swiper-button:hover {
	background: #0260A0;
	border-color: #0260A0;
}

:where(body:has(.elementor-4966)) .vpl.vpl .vpl-tcar .elementor-swiper-button:hover svg {
	fill: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-swiper-button-prev {
	left: auto;
	right: 15.75rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-swiper-button-next {
	left: auto;
	right: 12.5rem;
	fill: #000 !important;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-swiper-button svg {
	width: 0.875rem;
	height: 0.875rem;
	fill: currentColor;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .swiper-slide {
	height: auto;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-testimonial {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
	min-height: 14rem;
	padding: 1.5rem 1.5rem 1.75rem;
	background: var(--vpl-tint);
	border: 0.0625rem solid #E3E8ED;
	border-radius: 0.25rem;
	text-align: left;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-testimonial__text {
	font-family: "Gilroy" !important;
	font-size: 1.125rem;
	line-height: 1.4;
	font-weight: 400;
	font-style: normal;
	letter-spacing: 0% !important;
	color: #1A1A1A !important;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-testimonial__footer {
	margin-top: 1.75rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-testimonial__image img {
	width: 2.375rem;
	height: 2.375rem;
	border-radius: 50%;
	object-fit: cover;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-testimonial__name {
	font-size: 1rem;
	font-weight: 500;
	color: #1A1A1A;
}

:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-testimonial__title {
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	color: #666666;
}

/* ================================ 6. STATS (.vpl-stats, Counter) */

:where(body:has(.elementor-4966)) .vpl-stats .vpl-title .elementor-heading-title {
	max-width: 32rem;
	color: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl-stats .vpl-sub {
	max-width: 30rem;
	color: #D6DEE6;
}

:where(body:has(.elementor-4966)) .vpl-stats .vpl-head {
	margin-bottom: 2.75rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-stat {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 8.75rem;
	padding: 1.5rem 1rem;
	background: rgba(255, 255, 255, 0.08);
	border: 0.0625rem solid rgba(255, 255, 255, 0.12);
	border-radius: 0.25rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-stat .elementor-counter {
	flex-direction: column;
	align-items: center;
	text-align: center;
}

:where(body:has(.elementor-4966)) .vpl .vpl-stat .elementor-counter-number-wrapper {
	font-size: 2.375rem;
	line-height: 1;
	font-weight: 600;
	color: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl .vpl-stat .elementor-counter-title {
	margin-top: 1.25rem;
	font-size: 0.875rem;
	line-height: 1.4;
	font-weight: 400;
	color: #D6DEE6;
}

/* ================================ 7. FAQ (.vpl-faqsec, core Accordion) */

:where(body:has(.elementor-4966)) .vpl-faqsec .vpl-title .elementor-heading-title {
	max-width: none;
	font-weight: 600;
	color: #2D2D2D;
}

:where(body:has(.elementor-4966)) .vpl-faqsec .vpl-sub {
	max-width: 37rem;
}

:where(body:has(.elementor-4966)) .vpl-faqsec .vpl-head {
	margin-bottom: 3rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-accordion-item {
	margin-bottom: 1.75rem;
	border: 0.0625rem dashed #DBE3E9 !important;
	border-radius: 0.75rem;
	transition: background-color 0.25s ease;
}

:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-accordion-item:has(> .elementor-tab-title.elementor-active) {
	background: var(--vpl-tint);
	border-color: var(--vpl-tint) !important;
}

:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-tab-title {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding: 1.875rem 2rem;
	border: 0 !important;
}

:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-accordion-title {
	font-size: 1.125rem;
	line-height: 1.35;
	font-weight: 500;
	color: #1A1A1A;
}

:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-accordion-icon {
	float: none !important;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 2rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--vpl-navy);
	color: #FFFFFF;
	font-size: 0.75rem;
}

:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-accordion-icon i {
	color: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-accordion-icon svg {
	width: 0.75rem;
	height: 0.75rem;
	fill: #FFFFFF;
}

:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-tab-content {
	padding: 0 2rem 2rem;
	border: 0 !important;
	font-size: 0.875rem;
	line-height: 1.6;
	color: var(--vpl-body);
}

/* ================================ Responsive */

@media (max-width: 64rem) {
	:where(body:has(.elementor-4966)) .vpl .vpl-media--product {
		min-height: 26rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-swiper-button-prev {
		right: 3.25rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-swiper-button-next {
		right: 0;
	}

}

@media (max-width: 48rem) {
	:where(body:has(.elementor-4966)) .vpl .vpl-head,
	:where(body:has(.elementor-4966)) .vpl-products .vpl-head {
		margin-bottom: 2.5rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-title .elementor-heading-title,
	:where(body:has(.elementor-4966)) .vpl-products .vpl-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-title--hero .elementor-heading-title {
		font-size: 2rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-media--hero {
		min-height: 14rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-media--product {
		min-height: 18rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-ptitle .elementor-heading-title {
		font-size: 1.75rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-btn .elementor-button {
		min-width: 0;
		min-height: 3.25rem;
		padding: 0.875rem 1.5rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-btns .vpl-btn {
		flex: 1 1 auto;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-btns .vpl-btn .elementor-button {
		width: 100%;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-tcar .elementor-testimonial__text {
		font-size: 1rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-stat .elementor-counter-number-wrapper {
		font-size: 2rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-tab-title {
		padding: 1.25rem;
		gap: 1rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-accordion-title {
		font-size: 1rem;
	}

	:where(body:has(.elementor-4966)) .vpl .vpl-faq .elementor-tab-content {
		padding: 0 1.25rem 1.5rem;
	}

}



/* =====================================================================
   3. SITE STYLES
   Formerly Appearance > Customize > Additional CSS.
   ===================================================================== */

/* =====================================================================
   SITE STYLES
   ---------------------------------------------------------------------
   0.  Header mega menu
   1.  Global fixes
   2.  Shared components
   3.  About page      (.vab)
   4.  Home page       (.vhm)
   5.  Service pages   (.vsv)
   6.  Responsive      (tablet, then mobile)

   Service page templates:
	   vsv-industries.json    Industries We Serve        (.vsv-industries)
	   vsv-process.json       Our Development Process    (.vsv-process)
	   vsv-technologies.json  Technologies We Work With  (.vsv-tech)
	   vsv-faq.json           Frequently Asked Questions (.vsv-faq)
   ===================================================================== */


/* ---------------------------------------------------------------------
   0. HEADER MEGA MENU
   --------------------------------------------------------------------- */

/* Flatten the wrappers around the mega menu: same layout, no stacking layer of their own */
#masthead .e-parent > .e-con:has(.wpr-mega-menu-container),
#masthead .elementor-widget-wpr-mega-menu,
#masthead .elementor-widget-wpr-mega-menu > .elementor-widget-container,
#masthead .wpr-nav-menu-container,
#masthead .wpr-nav-menu,
#masthead .wpr-nav-menu > li {
	z-index: auto !important;
	transform: none !important;
	filter: none !important;
	perspective: none !important;
	isolation: auto !important;
	will-change: auto !important;
	contain: none !important;
}

/* The header row is the one stacking context holding logo, menu, button and panel */
#masthead .e-parent:has(.wpr-mega-menu-container) {
	isolation: isolate;
}

/* The mega panel is the lowest layer inside the header row */
#masthead .wpr-nav-menu > li > .wpr-sub-mega-menu {
	z-index: 1 !important;
	isolation: isolate;
}

/* Everything else in the header row sits above the panel:
   top-level menu links, logo and button columns, and the widget-level
   fallbacks (logo, button, language switcher) for when they have no column */
#masthead .wpr-nav-menu > li > .wpr-menu-item,
#masthead .e-parent:has(.wpr-mega-menu-container) > .e-con:not(:has(.wpr-mega-menu-container)),
#masthead .elementor-widget-site-logo,
#masthead .elementor-widget-theme-site-logo,
#masthead .elementor-widget-image,
#masthead .elementor-widget-button,
#masthead .elementor-widget-wp-widget-gtranslate,
#masthead .hfe-site-logo {
	position: relative;
	z-index: 10;
}


/* Mobile off-canvas menu: keep the close button above the logo row,
   and hide the floating language switcher while the menu is open */
/* The panel's logo row has z-index 1000000 */
.ekit-sidebar-group .ekit_widget-heading {
	position: relative;
	z-index: 1000001;
}

/* The floating language switcher hides while the mobile menu or a desktop mega menu is open
   (it sits over the Services menu's last column) */
body:has(.ekit-sidebar-group.ekit_isActive) .gt_float_switcher,
body:has(.ekit-sidebar-group.ekit_isActive) .gtranslate_wrapper,
body:has(.wpr-sub-mega-menu.wpr-animate-sub) .gt_float_switcher,
body:has(.wpr-sub-mega-menu.wpr-animate-sub) .gtranslate_wrapper {
	visibility: hidden;
}

/* Technologies is hidden for now: desktop menu item (Main Menu #12, Dark Text Menu #1963) and its
   section in the mobile menu (AnyWhere Elementor template 2376). Delete this rule to bring it back. */
.menu-item-12,
.menu-item-1963,
.ekit-sidebar-group .elementskit-card:has(.elementor-2376) {
	display: none !important;
}


/* ---------------------------------------------------------------------
   1. GLOBAL FIXES
   --------------------------------------------------------------------- */

/* Elements hidden per device must not keep their space in grids */
@media (min-width: 64.0625rem) {
	.elementor .elementor-element.elementor-hidden-desktop {
		display: none !important;
	}
}

@media (min-width: 48rem) and (max-width: 64rem) {
	.elementor .elementor-element.elementor-hidden-tablet {
		display: none !important;
	}
}

@media (max-width: 47.9375rem) {
	.elementor .elementor-element.elementor-hidden-mobile {
		display: none !important;
	}
}

/* Placeholders hidden on EVERY device: hide unconditionally.
   Also covers the sub-pixel gaps the queries above leave at ~767-768px and ~1024-1025px. */
.elementor .elementor-element.elementor-hidden-desktop.elementor-hidden-tablet.elementor-hidden-mobile {
	display: none !important;
}

/* Grids: Elementor sets repeat(N, 1fr) rows. Once hidden items drop out, the leftover
   EMPTY rows still take the height of the tallest row (+ row-gap), which causes big gaps.
   Let rows size to their content instead. */
.vab .vab-grid.e-grid,
.vsv .vsv-steps.e-grid,
.elementor .vsv-tech .vsv-tech-grid.e-grid {
	grid-template-rows: none !important;
	grid-auto-rows: auto !important;
}


/* ---------------------------------------------------------------------
   2. SHARED COMPONENTS
   --------------------------------------------------------------------- */

/* --- 2.1 Section headings (.vab + .vsv) --- */

.vab .vab-title .elementor-heading-title,
.vsv .vsv-title .elementor-heading-title {
	margin: 0;
	font-size: 2.5rem;
	line-height: 1.2;
	font-weight: 600;
}

.vab .vab-title .elementor-heading-title {
	color: #2B2650;
}

.vsv .vsv-title .elementor-heading-title {
	color: #171C2C;
}

.vab .vab-head {
	margin-bottom: 3rem;
}

.vsv .vsv-head {
	margin-bottom: 3.75rem;
}

.vab .vab-sub {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #4A4A68;
}

.vsv .vsv-sub {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #302A4E;
}

/* Dark sections: white heading */
.vab-values .vab-title .elementor-heading-title,
.vab-stats .vab-title .elementor-heading-title,
.vab-cta .vab-title .elementor-heading-title,
.vhm-cases .vab-title .elementor-heading-title,
.vsv--dark .vsv-title .elementor-heading-title {
	color: #FFFFFF;
}

.vab-values .vab-sub {
	color: #E6E6E6;
}

.vab-stats .vab-sub,
.vab-cta .vab-sub,
.vhm-cases .vab-sub {
	color: #D6DEE6;
}

.vsv--dark .vsv-sub {
	color: #D0DEEB;
}


/* --- 2.2 Body font (Raleway) --- */

.vsv .vsv-sub,
.vab-stats .vab-stat .elementor-counter-title,
.vsv-process .vsv-step .elementor-icon-box-description,
.vsv-faq .vsv-faq-answer {
	font-family: "Raleway", sans-serif;
}


/* --- 2.3 Rich text: no trailing margin on the last paragraph --- */

.vab .vab-sub p:last-child,
.vsv .vsv-sub p:last-child,
.vab-journey .vab-year-text p:last-child,
.vab-awards .vab-award-text p:last-child,
.vab-media-sec .vab-media-text p:last-child,
.vab-team .vab-member-role p:last-child,
.vsv-industries .vsv-ind-text p:last-child,
.vsv-tech .vsv-tech-list p:last-child,
.vsv-faq .vsv-faq-answer p:last-child {
	margin: 0;
}


/* --- 2.4 Equal-height cards --- */

.vab-values .vab-value,
.vab-values .vab-value .elementor-widget-container,
.vab-values .vab-value .elementor-icon-box-wrapper,
.vab-awards .vab-award,
.vab-clients .vab-tcar .elementor-testimonial,
.elementor .vsv-process .vsv-step.elementor-widget,
.vsv-process .vsv-step .elementor-widget-container,
.vsv-process .vsv-step .elementor-icon-box-wrapper {
	height: 100%;
}


/* --- 2.5 Carousels (.vab Awards + Clients, .vsv Industries) ---
   Arrows sit top-right above the cards; the next card peeks on the right. */

.vab-awards,
.vab-clients,
.vsv-industries {
	overflow-x: clip;
}

.vab .vab-carousel {
	position: relative;
	padding-top: 5rem;
}

.vsv .vsv-carousel {
	position: relative;
	padding-top: 5.375rem;
}

.vab .vab-carousel .elementor-swiper,
.vab .vab-carousel .elementor-widget-container,
.vsv .vsv-carousel .elementor-widget-container {
	position: static;
}

.vab .vab-carousel .swiper,
.vsv .vsv-carousel .swiper {
	position: static;
	overflow: visible;
	clip-path: inset(-100vmax -100vmax -100vmax 0);
}

.vab .vab-carousel .swiper-slide,
.vsv .vsv-carousel .swiper-slide {
	height: auto;
}

.vab .vab-carousel .elementor-swiper-button,
.elementor .vsv .vsv-carousel.elementor-element .elementor-swiper-button {
	position: absolute;
	top: 0;
	bottom: auto;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 3.375rem;
	margin: 0;
	border: 0.0625rem solid;
	border-radius: 0.25rem;
	font-size: 1rem;
	cursor: pointer;
	transform: none;
	pointer-events: auto;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.vab .vab-carousel .elementor-swiper-button {
	height: 3rem;
	background: #F3F4F5;
	border-color: #E6E8EB;
	color: #333333;
}

.elementor .vsv .vsv-carousel.elementor-element .elementor-swiper-button {
	height: 2.875rem;
	background: #F7F7F7;
	border-color: #EDEDED;
	color: #565656;
}

/* Icon follows the button colour, so it changes on hover without extra rules */
.vab .vab-carousel .elementor-swiper-button svg,
.elementor .vsv .vsv-carousel.elementor-element .elementor-swiper-button svg {
	width: 1rem;
	height: 1rem;
	fill: currentColor;
	pointer-events: none;
}

.vab .vab-carousel .elementor-swiper-button-prev {
	left: auto;
	right: 4.5rem;
}

.elementor .vsv .vsv-carousel.elementor-element .elementor-swiper-button-prev {
	left: auto;
	right: 4.625rem;
}

.vab .vab-carousel .elementor-swiper-button-next,
.elementor .vsv .vsv-carousel.elementor-element .elementor-swiper-button-next {
	left: auto;
	right: 0;
}

.vab .vab-carousel .elementor-swiper-button:hover,
.elementor .vsv .vsv-carousel.elementor-element .elementor-swiper-button:hover {
	background: #0260A0;
	border-color: #0260A0;
	color: #FFFFFF;
}


/* --- 2.6 Buttons: solid / ghost (About CTA + Home) --- */

.vab-cta .vab-btn .elementor-button,
.vhm-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	font-weight: 600;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.vab-cta .vab-btn--light .elementor-button,
.vhm-btn--light .elementor-button {
	background: #FFFFFF;
}

.vab-cta .vab-btn--light .elementor-button:hover,
.vhm-btn--light .elementor-button:hover {
	background: transparent;
	color: #FFFFFF;
}


/* --- 2.7 Text-link buttons (label + arrow) --- */

.vab-media-sec .vab-media-link .elementor-button,
.vab-leadership .vab-join-link .elementor-button {
	display: inline-flex;
	padding: 0;
	background: none;
	border: 0;
	font-weight: 600;
	text-decoration: none !important;
}

.vab-media-sec .vab-media-link .elementor-button-content-wrapper,
.vab-leadership .vab-join-link .elementor-button-content-wrapper {
	flex-direction: row-reverse;
	align-items: center;
}


/* --- 2.8 Member cards (Leadership + Team) --- */

.vab-leadership .vab-member-img img,
.vab-team .vab-member-img img {
	display: block;
	width: 100%;
	object-fit: cover;
	border-radius: 0.375rem;
}

.vab-leadership .vab-member-name .elementor-heading-title,
.vab-team .vab-member-name .elementor-heading-title {
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 600;
}

.vab-leadership .vab-member-role,
.vab-team .vab-member-role {
	margin-top: 0.75rem;
}

.vab-leadership .vab-member-social .elementor-social-icon,
.vab-team .vab-member-social .elementor-social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.875rem;
	height: 1.875rem;
	padding: 0;
	background: transparent;
	border: 0.0625rem solid;
	border-radius: 50%;
	font-size: 0.75rem;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.vab-leadership .vab-member-social .elementor-social-icon svg,
.vab-team .vab-member-social .elementor-social-icon svg {
	width: 0.75rem;
	height: 0.75rem;
}

.vab-leadership .vab-member-social .elementor-social-icon:hover,
.vab-team .vab-member-social .elementor-social-icon:hover {
	background: #0260A0;
	border-color: #0260A0;
}

/* Tablet/mobile fix (2026-11-05): inside Elementor's flex-column card the image widget was sized
   from the photo file (e.g. 305x311) rather than the stretched width, so once the grid went to one
   column the photo overflowed its box and the name/role sat on top of it. The cards are a simple
   stack, so lay them out as plain blocks. Also give every card the same zero padding (some had
   Elementor's default 10px and sat inset) and top-align the rows. */
.vab-leadership .vab-member.e-con,
.vab-team .vab-member.e-con {
	--display: block;
	--padding-top: 0;
	--padding-right: 0;
	--padding-bottom: 0;
	--padding-left: 0;
	align-self: start;
}

.vab-leadership .vab-member-img,
.vab-leadership .vab-member-img .elementor-widget-container,
.vab-team .vab-member-img,
.vab-team .vab-member-img .elementor-widget-container {
	height: auto;
}

.vab-leadership .vab-member-img img,
.vab-team .vab-member-img img {
	height: auto;
	max-width: 100%;
}


/* --- 2.9 Job opening sliders (Careers, Open Roles) ---
   Element Pack panel sliders with the class "current-job-opening". This was in the sliders' Royal
   "Custom CSS" boxes, which never reached the live site. */

.current-job-opening .swiper-slide {
	border-radius: 0.675rem;
}

.current-job-opening .bdt-panel-slide-desc {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.67) 88.96%);
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
}

/* "Apply Now" link: keep the arrow clear of the label (the Open Roles sliders had no gap) */
.current-job-opening .bdt-panel-slide-link {
	align-items: center;
	gap: 0.5rem;
}

/* The arrow sat on the text baseline (inline SVG), a few pixels above centre */
.current-job-opening .bdt-panel-slide-link .bdt-button-icon-align-right {
	display: flex;
	align-items: center;
}

.current-job-opening .bdt-panel-slide-link .bdt-button-icon-align-right svg {
	display: block;
}

/* Panel-slider links behave like the other text links on dark backgrounds (see 2.10) */
.bdt-panel-slide-link,
.bdt-panel-slide-link:hover {
	text-decoration: none !important;
}

.bdt-panel-slide-link {
	transition: color 0.25s ease !important;
}

.bdt-panel-slide-link:hover {
	color: #FFFFFF !important;
}

.bdt-panel-slide-link:hover svg,
.bdt-panel-slide-link:hover svg path {
	fill: #FFFFFF !important;
}

.bdt-panel-slide-link .bdt-button-icon-align-right {
	transition: transform 0.25s ease;
}

.bdt-panel-slide-link:hover .bdt-button-icon-align-right {
	transform: translateX(0.25rem);
}

/* --- 2.10 Button hover behaviour: one per button type ---
   Every Elementor button carries "vbtn" plus one type class (Advanced > CSS Classes):
     vbtn--primary      filled blue               hover: navy fill
     vbtn--light        filled white              hover: brand blue fill, white text
     vbtn--ghost        blue outline              hover: fills blue, white text
     vbtn--ghost-light  white outline (dark bg)   hover: fills white, navy text
     vbtn--header       header call to action     hover: white with a blue outline and blue text
     vbtn--link         text link (light bg)      hover: navy text, arrow nudges
     vbtn--link-light   text link (dark bg)       hover: white text, arrow nudges
   No button moves, grows or swings on hover. !important wins over Elementor's per-button hover colours. */

.vbtn .elementor-button {
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease !important;
}

.vbtn .elementor-button-icon,
.vbtn .elementor-button-icon svg {
	transition: transform 0.25s ease, fill 0.25s ease, color 0.25s ease !important;
}

.vbtn--primary .elementor-button:hover,
.vbtn--primary .elementor-button:focus-visible {
	background-color: #022A46 !important;
	border-color: #022A46 !important;
	color: #FFFFFF !important;
}

.vbtn--light .elementor-button:hover,
.vbtn--light .elementor-button:focus-visible,
.vbtn--ghost .elementor-button:hover,
.vbtn--ghost .elementor-button:focus-visible {
	background-color: #025FA0 !important;
	border-color: #025FA0 !important;
	color: #FFFFFF !important;
}

.vbtn--ghost-light .elementor-button:hover,
.vbtn--ghost-light .elementor-button:focus-visible {
	background-color: #FFFFFF !important;
	border-color: #FFFFFF !important;
	color: #022A46 !important;
}

.vbtn--header .elementor-button:hover,
.vbtn--header .elementor-button:focus-visible {
	background-color: #FFFFFF !important;
	border-color: #025FA0 !important;
	box-shadow: inset 0 0 0 0.0625rem #025FA0 !important;
	color: #025FA0 !important;
}

/* Icons follow the text colour (stroked icons such as the external-link arrow already do) */
.vbtn .elementor-button:hover .elementor-button-icon svg:not([fill="none"]) {
	fill: currentColor !important;
}

.vbtn .elementor-button:hover .elementor-button-icon i {
	color: currentColor !important;
}

/* Text links: colour change and a small arrow nudge, nothing else */
.vbtn--link .elementor-button:hover,
.vbtn--link .elementor-button:focus-visible {
	color: #022A46 !important;
}

.vbtn--link-light .elementor-button:hover,
.vbtn--link-light .elementor-button:focus-visible {
	color: #FFFFFF !important;
}

.vbtn--link .elementor-button:hover .elementor-button-icon,
.vbtn--link-light .elementor-button:hover .elementor-button-icon {
	transform: translateX(0.25rem);
}

/* External links (north-east arrow) nudge diagonally */
.vbtn--link.vab-media-link .elementor-button:hover .elementor-button-icon {
	transform: translate(0.15rem, -0.15rem);
}

/* Carousel arrows: one hover everywhere */
.elementor-swiper-button {
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.elementor .elementor-swiper-button:hover {
	background-color: #025FA0 !important;
	border-color: #025FA0 !important;
	color: #FFFFFF !important;
}

.elementor .elementor-swiper-button:hover svg {
	fill: #FFFFFF !important;
}

/* ---------------------------------------------------------------------
   3. ABOUT PAGE   (.vab)
   --------------------------------------------------------------------- */

/* --- 3.1 Our Core Values   (.vab-values) --- */

.vab-values {
	background-image:
		radial-gradient(28rem 28rem at 0% 0%, rgba(54, 140, 120, 0.45), transparent 60%),
		radial-gradient(24rem 24rem at 100% 100%, rgba(54, 140, 120, 0.4), transparent 60%);
}

.vab-values .vab-vrows {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.vab-values .vab-vrow > .elementor-widget {
	flex: 1 1 0;
	min-width: 0;
}

.vab-values .vab-value {
	padding: 1.5rem 1.5rem 1.75rem;
	background: rgba(255, 255, 255, 0.03);
	border: 0.0625rem solid rgba(255, 255, 255, 0.08);
	border-radius: 0.5rem;
}

.vab-values .vab-value .elementor-icon-box-icon {
	margin-bottom: 1.5rem;
}

.vab-values .vab-value .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	font-size: 1rem;
}

.vab-values .vab-value .elementor-icon svg {
	width: 1rem;
	height: 1rem;
}

.vab-values .vab-value .elementor-icon-box-title {
	margin: 0 0 0.75rem;
	font-size: 1.375rem;
	line-height: 1.3;
	font-weight: 600;
	color: #FFFFFF;
}

.vab-values .vab-value .elementor-icon-box-description {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: #B5B5B5;
}


/* --- 3.2 Our Journey of Innovation   (.vab-journey) --- */

.vab-journey .vab-year-card {
	overflow: hidden;
	background: #F3F6FA;
	border-radius: 0.5rem;
}

.vab-journey .vab-year-top {
	min-height: 11rem;
	padding: 2rem 1rem;
}

.vab-journey .vab-year .elementor-heading-title {
	margin: 0;
	font-size: 4rem;
	line-height: 1;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.vab-journey .vab-year-text {
	padding: 2.25rem 2.25rem 2.5rem;
	font-size: 1rem;
	line-height: 1.8;
	color: #3B3A55;
}


/* --- 3.3 Awards & Recognition   (.vab-awards) --- */

.vab-awards .vab-award {
	padding: 3.125rem 3.125rem 3.5rem;
	background: #FCFEFE;
	border: 0.0625rem solid #E3EAEC;
	border-radius: 0.5rem;
	text-align: center;
}

.vab-awards .vab-award-img img {
	display: block;
	width: 100%;
	height: auto;
}

.vab-awards .vab-award-tag {
	margin-top: 1.25rem;
}

.vab-awards .vab-award-tag p {
	display: inline-block;
	margin: 0;
	padding: 0.375rem 1rem;
	background: #F1F4F5;
	border-radius: 62rem;
	font-size: 0.9375rem;
	color: #3B3A55;
}

.vab-awards .vab-award-title .elementor-heading-title,
.vab-media-sec .vab-media-title .elementor-heading-title {
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 500;
	color: #2B2650;
}

.vab-awards .vab-award-title .elementor-heading-title {
	margin: 1rem 0 0;
}

.vab-awards .vab-award-text {
	margin-top: 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.35;
	color: #4A4A68;
}


/* --- 3.4 Featured In & Media Mentions   (.vab-media-sec) --- */

.vab-media-sec .vab-media {
	padding: 1.875rem 1.875rem 2.5rem;
	background: #F6F6F6;
	border: 0.0625rem solid #E6E6E6;
	border-radius: 0.75rem;
}

.vab-media-sec .vab-media-logo {
	align-self: flex-start;
}

.vab-media-sec .vab-media-logo img {
	display: block;
	width: 65% !important;
	height: 3rem;
	object-fit: contain;
}

.vab-media-sec .vab-media-title .elementor-heading-title {
	margin: 1.25rem 0 0;
}

.vab-media-sec .vab-media-text {
	margin-top: 0.5rem;
	font-size: 1rem;
	line-height: 1.6;
	color: #3B3A55;
}

.vab-media-sec .vab-media-link {
	margin-top: 1.75rem;
}

.vab-media-sec .vab-media-link .elementor-button {
	font-size: 0.875rem;
	color: #0260A0;
}

.vab-media-sec .vab-media-link .elementor-button-content-wrapper {
	gap: 1rem;
}

.vab-media-sec .vab-media-link .elementor-button-icon svg {
	width: 0.875rem;
	height: 0.875rem;
	fill: #0260A0;
	transform: rotate(-45deg);
}

.vab-media-sec .vab-media-link .elementor-button:hover {
	color: #022946;
}


/* --- 3.5 What Our Clients Say   (.vab-clients) --- */

.vab-clients .vab-title .elementor-heading-title {
	color: #151B33;
}

.vab-clients .vab-tcar .elementor-testimonial {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 16rem;
	padding: 2.25rem 1.875rem;
	background: #F3F7FA;
	border: 0.0625rem solid #E3E8ED;
	border-radius: 0.375rem;
	text-align: left;
}

.vab-clients .vab-tcar .elementor-testimonial__text {
	font-size: 1.25rem;
	line-height: 1.2;
	font-weight: 500;
	font-style: normal;
	color: #1A1A1A;
}

.vab-clients .vab-tcar .elementor-testimonial__footer {
	margin-top: 3.5rem;
}

.vab-clients .vab-tcar .elementor-testimonial__image img {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	object-fit: cover;
}

.vab-clients .vab-tcar .elementor-testimonial__name {
	font-size: 1.125rem;
	font-weight: 500;
	color: #1A1A1A;
}

.vab-clients .vab-tcar .elementor-testimonial__title {
	margin-top: 0.25rem;
	font-size: 0.9375rem;
	color: #666666;
}


/* --- 3.6 Our Leadership Team   (.vab-leadership) --- */

.vab-leadership .vab-lead-row {
	gap: 6.75rem;
}

.vab-leadership .vab-join {
	margin-top: 3.25rem;
	padding: 1.875rem 1.25rem 2.25rem;
	background: #1A1A1A;
	border: 0.0625rem solid rgba(255, 255, 255, 0.1);
	border-radius: 0.5rem;
}

.vab-leadership .vab-join-title .elementor-heading-title {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1.3;
	font-weight: 600;
	color: #FFFFFF;
}

.vab-leadership .vab-join-text {
	margin-top: 1.5rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #CFCFCF;
}

.vab-leadership .vab-join-link {
	margin-top: 2.75rem;
}

.vab-leadership .vab-join-link .elementor-button {
	font-size: 1rem;
	color: #D9D9D9;
}

.vab-leadership .vab-join-link .elementor-button-content-wrapper {
	gap: 0.875rem;
}

.vab-leadership .vab-join-link .elementor-button-icon svg {
	width: 1rem;
	height: 1rem;
	fill: #D9D9D9;
}

.vab-leadership .vab-join-link .elementor-button:hover,
.vab-leadership .vab-join-link .elementor-button:hover svg {
	color: #FFFFFF;
	fill: #FFFFFF;
}

.vab-leadership .vab-member-img img {
	aspect-ratio: 332 / 375;
	background: #222222;
}

.vab-leadership .vab-member-name .elementor-heading-title {
	margin: 1.125rem 0 0;
	color: #FFFFFF;
}

.vab-leadership .vab-member-role {
	font-size: 0.8125rem;
	color: #CFCFCF;
}

.vab-leadership .vab-member-social {
	margin-top: 1.25rem;
}

.vab-leadership .vab-member-social .elementor-social-icons-wrapper {
	gap: 0.625rem;
}

.vab-leadership .vab-member-social .elementor-social-icon {
	border-color: rgba(255, 255, 255, 0.2);
}

.vab-leadership .vab-member-social .elementor-social-icon svg {
	fill: #FFFFFF;
}


/* --- 3.7 Meet the Team Behind the Innovation   (.vab-team) --- */

.vab-team .vab-member-img img {
	aspect-ratio: 305 / 311;
	background: #E9EEF3;
}

.vab-team .vab-member-name .elementor-heading-title {
	margin: 1rem 0 0;
	color: #1A1A1A;
}

.vab-team .vab-member-role {
	font-size: 1rem;
	color: #3B3A55;
}

.vab-team .vab-member-social {
	margin-top: 0.75rem;
}

.vab-team .vab-member-social .elementor-social-icons-wrapper {
	gap: 1rem;
}

.vab-team .vab-member-social .elementor-social-icon {
	border-color: #0260A0;
}

.vab-team .vab-member-social .elementor-social-icon svg {
	fill: #0260A0;
}

.vab-team .vab-member-social .elementor-social-icon:hover svg {
	fill: #FFFFFF;
}


/* --- 3.8 Delivering Software That Drives Business Growth   (.vab-stats) --- */

.elementor .vab-stats .vab-stat.elementor-widget {
	box-sizing: border-box;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	min-height: 10.875rem;
	padding: 3rem 1rem 1.5rem;
	background: rgba(255, 255, 255, 0.08);
	border: 0.0625rem solid rgba(255, 255, 255, 0.12);
	border-radius: 0.375rem;
}

.vab-stats .vab-stat .elementor-widget-container {
	width: 100%;
}

.vab-stats .vab-stat .elementor-counter {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.vab-stats .vab-stat .elementor-counter-number-wrapper {
	order: 1;
	font-size: 3.25rem;
	line-height: 1;
	font-weight: 600;
	color: #FFFFFF;
}

.vab-stats .vab-stat .elementor-counter-title {
	order: 2;
	margin-top: 1.5rem;
	font-size: 1rem;
	line-height: 1.5;
	font-weight: 400;
	color: #D6DEE6;
}


/* --- 3.9 Ready to Build Your Software?   (.vab-cta) --- */

.vab-cta {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.vab-cta::before,
.vab-cta::after {
	content: "";
	position: absolute;
	top: -10.5rem;
	z-index: -1;
	width: 21rem;
	height: 21rem;
	background: rgba(255, 255, 255, 0.05);
	border-radius: 50%;
	box-shadow: 0 33rem 0 rgba(255, 255, 255, 0.05);
	pointer-events: none;
}

.vab-cta::before {
	left: -7rem;
}

.vab-cta::after {
	right: -7rem;
}

.vab-cta .vab-btns {
	gap: 1.875rem;
}

.vab-cta .vab-btn .elementor-button {
	min-height: 3.75rem;
	padding: 1rem 1.875rem;
	border: 0.0625rem solid #FFFFFF;
	border-radius: 0.75rem;
	font-size: 0.9375rem;
}

.vab-cta .vab-btn--light .elementor-button {
	color: #0260A0;
}

.vab-cta .vab-btn--ghost .elementor-button {
	background: transparent;
	color: #FFFFFF;
}

.vab-cta .vab-btn--ghost .elementor-button:hover {
	background: #FFFFFF;
	color: #0260A0;
}


/* ---------------------------------------------------------------------
   4. HOME PAGE   (.vhm)
   --------------------------------------------------------------------- */

/* --- 4.1 Shared --- */

/* Fallback grid gap (zero specificity: any gap set in Elementor wins) */
:where(.vhm-grid) {
	gap: 1.5rem;
}

/* Centred section heading */
.vhm-insights .vab-head,
.vhm-cases .vab-head,
.vhm-products .vab-head {
	align-items: center;
	text-align: center;
}

.vhm-insights .vab-sub,
.vhm-products .vab-sub {
	color: #3B3A55;
}

/* Closing button row */
.vhm-cta {
	margin-top: 3.5rem;
}

.vhm-btn .elementor-button {
	font-size: 0.875rem;
	line-height: 1.2;
}

.elementor-widget.vhm-btn--primary .elementor-button {
	padding: 1.25rem 3rem;
	background: #0260A0;
	border: 0.0625rem solid #0260A0;
	border-radius: 1rem;
	color: #FFFFFF;
}

.elementor-widget.vhm-btn--primary .elementor-button:hover {
	background: #022946;
	border-color: #022946;
	color: #FFFFFF;
}

.vhm-btn--light .elementor-button {
	padding: 1.25rem 2.5rem;
	border: 0.0625rem solid #FFFFFF;
	border-radius: 0.75rem;
	color: #022946;
}

/* Text-link buttons (arrow after the label) */
.vhm-post-more .elementor-button,
.vhm-prod-more .elementor-button {
	display: inline-flex;
	padding: 0;
	background: none !important;
	border: 0;
	font-weight: 600 !important;
}

.vhm-post-more .elementor-button-content-wrapper,
.vhm-prod-more .elementor-button-content-wrapper {
	flex-direction: row;
	gap: 0.75rem;
	align-items: center;
}

.vhm-post-more .elementor-button-icon,
.vhm-prod-more .elementor-button-icon {
	order: 1;
}

.vhm-post-more .elementor-button-icon svg,
.vhm-prod-more .elementor-button-icon svg {
	display: block;
	width: 1rem;
	height: 1rem;
	transition: transform 0.2s ease;
}

.vhm-post-more .elementor-button:hover .elementor-button-icon svg {
	transform: translateX(0.25rem);
}

.elementor .vhm-insights .elementor-post__excerpt p,
.vhm-products .vhm-prod-text p {
	margin: 0;
}

.elementor .vhm-insights .elementor-post__title a,
.vhm-products .vhm-prod-title a {
	color: inherit;
	text-decoration: none;
}


/* --- 4.2 Insights & Resources   (.vhm-insights) --- */

.vhm-insights .vab-title .elementor-heading-title {
	color: #022946;
}

/* Grid gap (change here, or in the widget's Layout settings) */
.vhm-insights .vhm-post-grid {
	--grid-column-gap: 1.5rem;
	--grid-row-gap: 1.5rem;
}

/* Card */
.elementor .vhm-insights .elementor-post__card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: #E9E9EB;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* Image: edge to edge, fixed ratio.
   The extra .vhm-post-grid .elementor-posts-container is needed: the widget's own rules
   (padding-bottom ratio, fit-height img width:auto) out-rank shorter selectors, which shrank the
   photo to ~74x39px in the corner of the box (2026-11-06). */
.elementor .vhm-insights .vhm-post-grid .elementor-posts-container .elementor-post__thumbnail {
	position: relative;
	width: 100%;
	height: auto;
	padding-bottom: 0;
	aspect-ratio: 405 / 260;
	overflow: hidden;
}

.elementor .vhm-insights .vhm-post-grid .elementor-posts-container .elementor-post__thumbnail img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	max-width: none;
	height: 100%;
	transform: none;
	object-fit: cover;
}

/* No grey hover gradient over the photo (the widget's default "hover gradient" effect) */
.elementor .vhm-insights .vhm-post-grid .elementor-post__card .elementor-post__thumbnail__link::after {
	content: none;
	display: none;
}

/* A post with no featured image gets the same box with the blog fallback image, so the
   card lines up with the others */
.elementor .vhm-insights .vhm-post-grid .elementor-post__card:not(:has(.elementor-post__thumbnail__link))::before {
	content: "";
	display: block;
	aspect-ratio: 405 / 260;
	background: #022946 url("/wp-content/uploads/2026/07/blog-image-fallback.png") center / cover no-repeat;
}

/* Category chip: sits under the image, not over it */
.elementor .vhm-insights .elementor-post__badge {
	position: static;
	align-self: flex-start;
	margin: 1.25rem 0 0 1.5rem;
	padding: 0.75rem 1rem;
	background: #FFFFFF;
	border-radius: 0;
	font-size: 1rem;
	line-height: 1.2;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
	color: #0260A0;
}

.elementor .vhm-insights .elementor-post__text {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	margin: 0;
	padding: 1.25rem 1.5rem 2rem;
}

/* Chip -> title gap is 1rem. The widget adds 20px under the chip and 20px above the text block
   (60px in all with the padding); these selectors out-rank its rules. */
.elementor .vhm-insights .vhm-post-grid .elementor-post__card .elementor-post__badge {
	margin-bottom: 0;
}

.elementor .vhm-insights .vhm-post-grid .elementor-post__card .elementor-post__text {
	margin-top: 0;
}

.elementor .vhm-insights .vhm-post-grid .elementor-post__card .elementor-post__badge + .elementor-post__text {
	padding-top: 1rem;
}

.elementor .vhm-insights .elementor-post__title {
	margin: 0;
	font-size: 1.375rem;
	line-height: 1.3;
	font-weight: 600;
	color: #1F1F1F;
}

.elementor .vhm-insights .elementor-post__title a:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* Titles: at most 3 lines. On desktop every title box is 3 lines tall so the excerpts and
   Read More links start at the same height in all three cards. */
.elementor .vhm-insights .elementor-post__title a {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}

@media (min-width: 64.0625rem) {
	.elementor .vhm-insights .elementor-post__title {
		min-height: calc(3 * 1.3em);
	}
}

/* Excerpt: exactly 4 lines (the widget sends 40 words, so every card fills them), ending in an ellipsis */
.elementor .vhm-insights .elementor-post__excerpt {
	margin: 0.75rem 0 0;
	font-size: 1.0625rem;
	line-height: 1.45;
	color: #3B3A55;
}

.elementor .vhm-insights .elementor-post__excerpt p {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	overflow: hidden;
	margin: 0;
}

/* Read More: underlined link + arrow, pinned to the bottom of the card */
.elementor .vhm-insights .elementor-post__read-more {
	align-self: flex-start;
	margin: auto 0 0;
	padding-top: 1.5rem;
	font-size: 1rem;
	line-height: 1.3;
	font-weight: 600;
	color: #0260A0;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.elementor .vhm-insights .elementor-post__read-more:hover {
	color: #022946;
}

.elementor .vhm-insights .elementor-post__read-more::after {
	--vhm-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h12M9 3l5 5-5 5' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	content: "";
	display: inline-block;
	width: 1rem;
	height: 1rem;
	margin-left: 0.75rem;
	vertical-align: -0.125rem;
	background-color: #022946;
	-webkit-mask: var(--vhm-arrow) center / contain no-repeat;
	mask: var(--vhm-arrow) center / contain no-repeat;
}


/* --- 4.3 Case Studies   (.vhm-cases) ---
   The cards come from the case studies plugin shortcode [vdc_case_studies_grid]
   and are styled by the plugin (grid.css). Heading colours are in section 2.1;
   only the grid width lives here. */

.vhm-cases .vhm-case-grid {
	width: 100%;
}


/* --- 4.4 Products   (.vhm-products) --- */

.vhm-products .vab-title .elementor-heading-title {
	color: #0B2239;
}

/* Card */
.vhm-products .vhm-prod {
	overflow: hidden;
	background: #FCFDFE;
	border: 0.0625rem solid #E3EAEF;
	border-radius: 1rem;
}

/* Coloured logo panel (set the colour on the container in Elementor) */
.vhm-products .vhm-prod-media {
	align-items: center;
	justify-content: center;
	aspect-ratio: 630 / 372;
}

.vhm-products .vhm-prod-logo img {
	display: block;
	max-width: 80%;
	height: auto;
	margin-inline: auto;
}

.vhm-products .vhm-prod-body {
	flex: 1 1 auto;
	align-items: flex-start;
	padding: 1.875rem;
}

/* Tag chips: type them as a bullet list in the text editor */
.vhm-products .vhm-prod-tags ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.625rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.vhm-products .vhm-prod-tags li {
	margin: 0;
	padding: 0.5rem 0.875rem;
	background: #EAF3FB;
	border-radius: 0.375rem;
	font-size: 0.8125rem;
	line-height: 1.2;
	color: #2F7FB8;
}

.vhm-products .vhm-prod-title {
	margin-top: 1.25rem;
}

.vhm-products .vhm-prod-title .elementor-heading-title {
	margin: 0;
	font-size: 1.75rem;
	line-height: 1.2;
	font-weight: 600;
	color: #1A1A1A;
}

/* "(Coming Soon)" after a product name: same as the Products page's .vpl-soon */
.vhm-products .vhm-prod-title .vhm-prod-soon {
	font-size: 1rem;
	font-weight: 400;
	color: #555555;
}

/* Same baseline as the name, on Home and on the Products page (was a subscript until 2026-11-06) */
.vhm-products .vhm-prod-title .vhm-prod-soon,
.vpl .vpl-soon {
	vertical-align: baseline;
}

.vhm-products .vhm-prod-text {
	margin-top: 1rem;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #3B3A55;
}

.vhm-products .vhm-prod-more {
	margin-top: auto;
	padding-top: 1.5rem;
}

.vhm-products .vhm-prod-more .elementor-button {
	font-size: 0.8125rem;
	color: #0260A0;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.vhm-products .vhm-prod-more .elementor-button:hover {
	color: #022946;
}

/* Cards link to their section on the Products page: the stroked north-east arrow SVG, turned to point right */
.vhm-products .vhm-prod-more .elementor-button-icon svg {
	width: 0.875rem;
	height: 0.875rem;
	fill: none;
	stroke: currentColor;
	rotate: 45deg;
}

/* Services page intro heading breaks over two lines, as in the design */
.services-we-offer > .elementor-widget-heading .elementor-heading-title {
	max-width: 40rem;
	margin-inline: auto;
	text-align: center;
}


/* --- 4.5 Tech Stack Marquee   ("Powered by Modern, Scalable Technologies") ---
   Container .marquee-content holds two shortcode widgets (.marquee-item), each
   showing the same tech-icon grid. Each copy fills the container width; both
   slide left by one copy width and the loop restarts, so the join is seamless.
   Change the speed with --vdc-marquee-duration. */

.elementor .marquee-content {
	--vdc-marquee-duration: 45s;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: flex-start;
	gap: 0;
	width: 100%;
	overflow: hidden;
}

.elementor .marquee-content > .marquee-item {
	flex: 0 0 auto;
	min-width: 100%;
	margin: 0;
	animation: vdc-marquee var(--vdc-marquee-duration) linear infinite;
	will-change: transform;
}

/* Pause while the pointer is over it */
.elementor .marquee-content:hover > .marquee-item {
	animation-play-state: paused;
}

@keyframes vdc-marquee {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-100%);
	}
}

/* The second copy makes the loop seamless, so it must show on mobile too */
@media (max-width: 47.9375rem) {
	.elementor .marquee-content > .marquee-item.elementor-hidden-mobile {
		display: block !important;
	}

	/* The icon grid (template #599, a517166) is 4 columns x 2 rows on mobile, flowing by column, but holds
	   16 icons: the 8 extra icons made implicit columns that squeezed the real ones to 0px, so the strip
	   was empty. Use 8 fixed columns and let each copy be as wide as its icons, so the strip scrolls. */
	.elementor .marquee-content > .marquee-item {
		min-width: max-content;
	}

	.elementor-599 .elementor-element.elementor-element-a517166 {
		grid-template-columns: repeat(8, 5rem) !important;
		grid-auto-flow: row !important;
		width: max-content;
		padding-right: var(--column-gap, 1rem);
	}
}

/* Reduced motion: stop moving, show one copy, allow manual scroll.
   Must stay AFTER the mobile rule above (same specificity, later wins). */
@media (prefers-reduced-motion: reduce) {
	.elementor .marquee-content > .marquee-item {
		animation: none;
	}

	.elementor .marquee-content > .marquee-item:nth-child(n+2) {
		display: none !important;
	}

	.elementor .marquee-content {
		overflow-x: auto;
	}
}


/* --- 4.6 A Proven Process for Building Better Software   (.vhm-process) --- */

.vhm-process .vhm-process-copy {
	flex: 0 0 33rem;
}

.vhm-process .vhm-process-media {
	flex: 1 1 0;
	min-width: 0;
}

.vab.vhm-process .vab-head {
	margin-bottom: 0;
}

.vhm-process .vab-title .elementor-heading-title {
	font-weight: 700;
	color: #022035;
}

.vhm-process .vab-sub {
	margin-top: 1.25rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #312A50;
}

.vhm-process .vab-sub p {
	margin: 0;
}

.vhm-process .vhm-process-img img {
	display: block;
	width: 100%;
	aspect-ratio: 783 / 510;
	object-fit: cover;
	border-radius: 0.5rem;
}


/* --- 4.7 Buttons: outline + plain text link (Proven Process, Reliable Delivery) ---
   .elementor-widget is there to outrank Elementor's global button colour, which header/footer
   templates print inline after this file. */

.elementor-widget.vhm-btn--outline .elementor-button {
	padding: 1.25rem 3rem;
	background: transparent;
	border: 0.0625rem solid #0260A0;
	border-radius: 1rem;
	color: #0260A0;
}

.elementor-widget.vhm-btn--outline .elementor-button:hover {
	background: #0260A0;
	color: #FFFFFF;
}

.elementor-widget.vhm-link .elementor-button {
	padding: 0.125rem;
	background: none;
	border: 0;
	font-size: 0.875rem;
	font-weight: 700;
	color: #025FA0;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.elementor-widget.vhm-link .elementor-button:hover {
	background: none;
	color: #022946;
}


/* --- 4.8 Services carousel: frosted text panel   (Element Pack panel slider, widget 50814ea) ---
   Was in the widget's Royal "Custom CSS" box, which never reached the live site. */

.elementor-102 .elementor-element-50814ea .bdt-panel-slide-desc {
	background: #00000019;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.elementor-102 .elementor-element-50814ea .bdt-panel-slide-text {
	width: 95%;
}

.elementor-102 .elementor-element-50814ea .bdt-panel-slide-text p {
	font-size: 0.875rem;
	line-height: 1.3;
}

.elementor-102 .elementor-element-50814ea .bdt-button-icon-align-right {
	margin-top: 0.25rem;
}


/* ---------------------------------------------------------------------
   5. SERVICE PAGES   (.vsv)
   Dark sections: add the class "vsv--dark" to the section container.
   --------------------------------------------------------------------- */

/* --- 5.1 Industries We Serve   (.vsv-industries) --- */

/* Card: background image is set per card in Elementor (Style > Background) */
.elementor .vsv-industries .vsv-ind-card {
	position: relative;
	overflow: hidden;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 0.5rem;
	aspect-ratio: 405 / 458;
	padding: 1.25rem 1.25rem 2.25rem;
	background-color: #1E2633;
	background-position: center center;
	background-size: cover;
	border-radius: 0.375rem;
}

.elementor .vsv-industries .vsv-ind-card > .elementor-element {
	position: relative;
	z-index: 1;
}

.vsv-industries .vsv-ind-title .elementor-heading-title {
	margin: 0;
	font-family: "Gilroy", sans-serif;
	font-size: 1.25rem;
	line-height: 1.2;
	font-weight: 600;
	color: #FFFFFF;
}

.vsv-industries .vsv-ind-text {
	font-family: "Gilroy", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	color: #FFFFFF;
}

/* Desktop: cards start at the content edge, three 405px cards plus a peek of the fourth */
@media (min-width: 64.0625rem) {
	.elementor .vsv-industries .vsv-carousel.elementor-element {
		width: calc(100% - 12rem);
		margin-inline: 6rem;
	}

	.elementor .vsv-industries .vsv-carousel .swiper {
		width: calc(100% + 1.6875rem);
	}
}


/* --- 5.2 Our Development Process   (.vsv-process) --- */

:where(.vsv .vsv-steps) {
	gap: 1.25rem;
}

/* Desktop grid is 1255px wide (three 405px cards), a few px wider than the content column */
@media (min-width: 64.0625rem) {
	.elementor .vsv-process .vsv-steps.e-con {
		width: calc(100% + 0.4375rem);
		margin-inline: -0.21875rem;
		padding: 0;
	}
}

.elementor .vsv-process .vsv-step.elementor-widget {
	box-sizing: border-box;
	padding: 1.875rem;
	background: #025FA0;
	border-radius: 0.375rem;
}

.vsv-process .vsv-step .elementor-icon-box-wrapper {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	text-align: start;
}

.vsv-process .vsv-step .elementor-icon-box-icon {
	display: block;
	margin: 0 0 0.8125rem;
}

.vsv-process .vsv-step .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.125rem;
	height: 2.8125rem;
	padding: 0;
	background: #F4F7FA;
	border-radius: 0.375rem;
	color: #025FA0;
	font-size: 1.5rem;
}

/* Icons carry their own colours; fill: none keeps stroke icons from filling in */
.elementor .vsv-process .vsv-step .elementor-icon svg {
	width: 1.5rem;
	height: 1.5rem;
	fill: none;
}

.vsv-process .vsv-step .elementor-icon i {
	color: #025FA0;
}

.vsv-process .vsv-step .elementor-icon-box-title {
	margin: 0 0 0.625rem;
	font-family: "Gilroy", sans-serif;
	font-size: 1.25rem;
	line-height: 1.25;
	font-weight: 600;
	color: #FFFFFF;
}

.vsv-process .vsv-step .elementor-icon-box-title a,
.vsv-process .vsv-step .elementor-icon-box-title span {
	color: inherit;
}

.vsv-process .vsv-step .elementor-icon-box-description {
	margin: 0;
	font-family: "Raleway", sans-serif;
	font-size: 1rem;
	line-height: 1.375;
	color: rgba(255, 255, 255, 0.8);
}


/* --- 5.3 Technologies We Work With   (.vsv-tech) ---
   Divider lines are drawn per cell, so they adapt to any number of rows.
   Desktop: 4 columns. Tablet and mobile overrides are in section 6. */

.elementor .vsv-tech .vsv-tech-grid.e-grid {
	gap: 0;
}

.elementor .vsv-tech .vsv-tech-cell {
	box-sizing: border-box;
	gap: 1.25rem;
	padding: 2rem 2.375rem;
	border: 0 solid rgba(255, 255, 255, 0.14);
}

/* Vertical line left of columns 2-4, horizontal line above rows 2+ */
.elementor .vsv-tech .vsv-tech-cell:not(:nth-child(4n+1)) {
	border-left-width: 0.0625rem;
}

.elementor .vsv-tech .vsv-tech-cell:nth-child(n+5) {
	border-top-width: 0.0625rem;
}

.vsv-tech .vsv-tech-title .elementor-heading-title {
	margin: 0;
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 500;
	color: #FFFFFF;
}

.vsv-tech .vsv-tech-list {
	font-size: 1rem;
	line-height: 1.5;
	color: #D0DEEB;
}


/* --- 5.4 Frequently Asked Questions   (.vsv-faq) --- */

/* Keep the list centred under the heading (its width is set in Elementor).
   The variables override the widget's own icon colours and icon order. */
.elementor .vsv-faq .vsv-faq-list {
	align-self: center;
	--n-accordion-icon-normal-color: #FFFFFF;
	--n-accordion-icon-active-color: #FFFFFF;
	--n-accordion-title-icon-order: 1;
}

.vsv-faq .vsv-title .elementor-heading-title {
	color: #2B2B2B;
}

.vsv-faq .vsv-sub {
	color: rgba(43, 43, 43, 0.8);
}

.elementor .vsv-faq .e-n-accordion {
	display: flex;
	flex-direction: column;
	gap: 1.875rem;
}

.elementor .vsv-faq .e-n-accordion-item {
	margin: 0;
	background: #FFFFFF;
	border: 0.0625rem dashed rgba(220, 220, 220, 0.8);
	border-radius: 0.75rem;
	transition: background-color 0.2s ease;
}

.elementor .vsv-faq .e-n-accordion-item[open] {
	background: #F4F7FA;
	border-color: rgba(220, 220, 220, 0.5);
}

.elementor .vsv-faq .e-n-accordion-item-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 2.5rem;
	background: transparent;
	border: 0;
	cursor: pointer;
	list-style: none;
}

.elementor .vsv-faq .e-n-accordion-item-title::-webkit-details-marker {
	display: none;
}

.elementor .vsv-faq .e-n-accordion-item-title-header {
	flex: 1 1 auto;
	min-width: 0;
}

/* Open item: 50px above the question, 30px between question and answer */
.elementor .vsv-faq .e-n-accordion-item[open] > .e-n-accordion-item-title {
	padding-top: 3.125rem;
	padding-bottom: 1.875rem;
}

.elementor .vsv-faq .e-n-accordion-item-title-text {
	margin: 0;
	font-family: "Gilroy", sans-serif;
	font-size: 1.5rem;
	line-height: 1.2;
	font-weight: 600;
	color: #2B2B2B;
}

/* Plus / minus inside a navy circle */
.elementor .vsv-faq .e-n-accordion-item-title-icon {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	background: #022A46;
	border-radius: 50%;
	color: #FFFFFF;
}

.elementor .vsv-faq .e-n-accordion-item-title-icon > span {
	height: auto;
	align-items: center;
}

.elementor .vsv-faq .e-n-accordion-item-title-icon svg {
	width: 1.5rem;
	height: 1.5rem;
	fill: #FFFFFF;
}

.elementor .vsv-faq .e-n-accordion-item-title-icon i {
	font-size: 0.875rem;
	color: #FFFFFF;
}

/* Answer panel */
.elementor .vsv-faq .e-n-accordion-item > .e-con {
	padding: 0 2.5rem 3.125rem;
	background: transparent;
	border: 0;
}

.vsv-faq .vsv-faq-answer {
	font-family: "Gilroy", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	color: rgba(43, 43, 43, 0.8);
}


/* ---------------------------------------------------------------------
   6. RESPONSIVE
   Order matters: tablet, then 48rem, then mobile (later wins on ties).
   --------------------------------------------------------------------- */

/* --- Tablet (up to 64rem) --- */

@media (max-width: 64rem) {
	/* About: Leadership */
	.vab-leadership .vab-lead-row {
		gap: 3rem;
	}

	/* Service pages: headings */
	.vsv .vsv-title .elementor-heading-title {
		font-size: 2.125rem;
	}

	.vsv .vsv-head {
		margin-bottom: 3rem;
	}

	/* Service pages: Technologies, 2 columns.
	   Odd cells lose the left line; rows 2+ get a top line. */
	.elementor .vsv-tech .vsv-tech-cell:nth-child(odd) {
		border-left-width: 0;
	}

	.elementor .vsv-tech .vsv-tech-cell:nth-child(n+3) {
		border-top-width: 0.0625rem;
	}

	.elementor .vsv-tech .vsv-tech-cell {
		padding: 1.75rem;
	}

	/* Service pages: FAQ */
	.elementor .vsv-faq .e-n-accordion-item-title,
	.elementor .vsv-faq .e-n-accordion-item[open] > .e-n-accordion-item-title {
		padding: 2rem;
	}

	.elementor .vsv-faq .e-n-accordion-item > .e-con {
		padding: 0 2rem 2.25rem;
	}

	/* Home: Proven Process stacks (text, then image) */
	.vhm-process .vhm-process-copy,
	.vhm-process .vhm-process-media {
		flex: none;
	}
}


/* --- About + Home (up to 48rem) --- */

@media (max-width: 48rem) {
	.vab .vab-title .elementor-heading-title {
		font-size: 1.875rem;
	}

	.vab .vab-head {
		margin-bottom: 2rem;
	}

	/* Journey */
	.vab-journey .vab-year-top {
		min-height: 8rem;
	}

	.vab-journey .vab-year .elementor-heading-title {
		font-size: 3rem;
	}

	.vab-journey .vab-year-text {
		padding: 1.5rem;
	}

	/* Awards */
	.vab-awards .vab-award {
		padding: 2rem;
	}

	/* Clients */
	.vab-clients .vab-tcar .elementor-testimonial__text {
		font-size: 1.0625rem;
	}

	/* Stats */
	.vab-stats .vab-stat .elementor-counter-number-wrapper {
		font-size: 2.25rem;
	}

	.elementor .vab-stats .vab-stat.elementor-widget {
		min-height: 8rem;
	}

	/* Home */
	.vhm-cta {
		margin-top: 2.5rem;
	}

	.vhm-products .vhm-prod-title .elementor-heading-title {
		font-size: 1.5rem;
	}

	.vhm-products .vhm-prod-body {
		padding: 1.5rem;
	}

	.elementor-widget.vhm-btn--outline .elementor-button {
		padding: 1.25rem 2.5rem;
	}
}


/* --- Mobile (up to 47.9375rem), service pages --- */

@media (max-width: 47.9375rem) {
	.vsv .vsv-title .elementor-heading-title {
		font-size: 1.75rem;
	}

	.vsv .vsv-head {
		margin-bottom: 2.25rem;
	}

	/* Industries carousel */
	.vsv .vsv-carousel {
		padding-top: 4.5rem;
	}

	.elementor .vsv .vsv-carousel.elementor-element .elementor-swiper-button {
		width: 3rem;
		height: 2.625rem;
	}

	.elementor .vsv .vsv-carousel.elementor-element .elementor-swiper-button-prev {
		right: 3.75rem;
	}

	.elementor .vsv-industries .vsv-ind-card {
		aspect-ratio: auto;
		min-height: 24rem;
	}

	/* Process */
	.elementor .vsv-process .vsv-step.elementor-widget {
		padding: 1.5rem;
	}

	/* Technologies: 1 column, horizontal lines only */
	.elementor .vsv-tech .vsv-tech-cell:nth-child(2n) {
		border-left-width: 0;
	}

	.elementor .vsv-tech .vsv-tech-cell:nth-child(n+2) {
		border-top-width: 0.0625rem;
	}

	.elementor .vsv-tech .vsv-tech-cell {
		padding: 1.5rem 0;
	}

	/* FAQ */
	.elementor .vsv-faq .e-n-accordion {
		gap: 1rem;
	}

	.elementor .vsv-faq .e-n-accordion-item-title,
	.elementor .vsv-faq .e-n-accordion-item[open] > .e-n-accordion-item-title {
		padding: 1.5rem 1.25rem;
	}

	.elementor .vsv-faq .e-n-accordion-item-title-text {
		font-size: 1.0625rem;
	}

	.elementor .vsv-faq .e-n-accordion-item-title-icon {
		width: 2.125rem;
		height: 2.125rem;
	}

	.elementor .vsv-faq .e-n-accordion-item > .e-con {
		padding: 0 1.25rem 1.5rem;
	}
}


/* Service sections share the "Why Choose" gutters below desktop: 3rem on tablet, 2rem on mobile.
   Elementor only sets the padding variables per element, so the property itself can be set here. */
@media (max-width: 64rem) {
	.elementor .vsv.e-con:is(.vsv-industries, .vsv-process, .vsv-tech, .vsv-faq) {
		padding-inline: 3rem;
	}
}

@media (max-width: 47.9375rem) {
	.elementor .vsv.e-con:is(.vsv-industries, .vsv-process, .vsv-tech, .vsv-faq) {
		padding-inline: 2rem;
	}
}


/* Case Studies listing (#4949): the hero (ae4771c) and the listing (ff13716) kept 4-6rem side padding
   on every device, which squeezed the cards to ~200px on phones. Same gutters as the service sections. */
@media (max-width: 64rem) {
	.elementor-4949 .elementor-element:is(.elementor-element-ae4771c, .elementor-element-ff13716) {
		padding-inline: 3rem;
	}
}

@media (max-width: 47.9375rem) {
	.elementor-4949 .elementor-element:is(.elementor-element-ae4771c, .elementor-element-ff13716) {
		padding-inline: 2rem;
	}
}


/* Grids below desktop: Elementor keeps the desktop row count (repeat(N, 1fr)), so once the columns drop
   the rows are stretched past their content and cards end with blank space (e.g. Careers "How We Hire").
   Let rows size to their content; cards in the same row still match heights. */
@media (max-width: 64rem) {
	.elementor .e-con.e-grid {
		grid-template-rows: none !important;
		grid-auto-rows: auto !important;
	}
}


/* Stats band ("Delivering Software That Drives Business Growth", .vab-stats): 5 counters in a 3-column
   (tablet) or 2-column (mobile) grid left the last row hanging on the left. Wrap them in a centred
   row instead, same 18px gap and column widths. */
@media (max-width: 64rem) {
	.vab-stats .e-grid:has(> .vab-stat) {
		display: flex !important;
		flex-wrap: wrap;
		justify-content: center;
		gap: 1.125rem;
	}

	.vab-stats .e-grid > .vab-stat {
		flex: 0 0 calc((100% - 2 * 1.125rem) / 3);
	}
}

@media (max-width: 47.9375rem) {
	.vab-stats .e-grid > .vab-stat {
		flex-basis: calc((100% - 1.125rem) / 2);
	}
}


/* Tablet + mobile line heights (user request 2026-11-05): body text, Elementor headings and form labels
   at 1.5, enforced over the per-section rules. */
@media (max-width: 64rem) {
	p,
	label,
	.elementor .elementor-heading-title {
		line-height: 1.5 !important;
	}
}


/* Home (#102) "A Proven Process for Building Better Software": centred once it stacks (tablet + mobile). */
@media (max-width: 64rem) {
	.vhm-process .vhm-process-copy,
	.vhm-process .vab-head,
	.vhm-process .vhm-actions {
		--align-items: center;
		align-items: center;
		text-align: center;
	}

	.vhm-process .vab-title .elementor-heading-title,
	.vhm-process .vab-sub {
		text-align: center;
	}

	/* The buttons sit in a wrapping row */
	.vhm-process .vhm-actions {
		--justify-content: center;
		justify-content: center;
	}

	.vhm-process .vhm-actions > .elementor-widget {
		align-self: center;
	}

	.vhm-process .vhm-actions .elementor-button-wrapper {
		text-align: center;
	}
}


/* Team (#808) section headers centred on tablet + mobile: hero (d7f7be0 heading, 319c7eb text, 429db9b
   button), Our Leadership Team (4d5a54b3, 5b1fafc8), Who We Are (8dc6803) and Join Our Team (358a4c0,
   9925fc6 text, 1e58dd3 button). Member names and card titles stay left-aligned. */
@media (max-width: 64rem) {
	.elementor-808 .elementor-element:is(.elementor-element-d7f7be0, .elementor-element-319c7eb, .elementor-element-4d5a54b3, .elementor-element-5b1fafc8, .elementor-element-8dc6803, .elementor-element-358a4c0, .elementor-element-9925fc6),
	.elementor-808 .elementor-element:is(.elementor-element-d7f7be0, .elementor-element-4d5a54b3, .elementor-element-358a4c0) .elementor-heading-title,
	.elementor-808 .elementor-element:is(.elementor-element-319c7eb, .elementor-element-5b1fafc8, .elementor-element-8dc6803, .elementor-element-9925fc6) :is(p, h2) {
		text-align: center !important;
	}

	.elementor-808 .elementor-element:is(.elementor-element-429db9b, .elementor-element-1e58dd3) {
		align-self: center;
	}

	.elementor-808 .elementor-element:is(.elementor-element-429db9b, .elementor-element-1e58dd3) .elementor-button-wrapper {
		text-align: center;
	}
}


/* Home (#102) "Scalable AI and Software…" text (0107a94) is justified; in a narrow column that leaves
   wide gaps between words. Left-align it below desktop. */
@media (max-width: 64rem) {
	.elementor-102 .elementor-element-0107a94,
	.elementor-102 .elementor-element-0107a94 p {
		text-align: left !important;
	}
}


/* FAQs (#1087) on phones: General FAQs (c13dbad) had 1rem side padding, Project FAQs (c348341) 2rem,
   so the two lists had different widths. Both 2rem. */
@media (max-width: 47.9375rem) {
	.elementor-1087 .elementor-element.elementor-element-c13dbad {
		padding-inline: 2rem;
	}
}


/* Team (#808) "Who We Are": the four cards (grid b74836d) each had different padding (32/20, 32/16/16,
   16, 16px) and one centred its text, so headings didn't line up. Same padding, top-aligned. */
.elementor-808 .elementor-element-b74836d > .e-con {
	--padding-top: 2rem;
	--padding-right: 1.25rem;
	--padding-bottom: 2rem;
	--padding-left: 1.25rem;
	--justify-content: flex-start;
	justify-content: flex-start;
}


/* Our Process (#1071): the process-wheel band (cdfc983) had a -1rem top margin that slid it over the
   bottom of the hero photos at every width. */
.elementor-1071 .elementor-element.elementor-element-cdfc983 {
	margin-top: 0;
}


/* Virtual Bootcamp (#1109) hero: the Royal dual button (9927830) put Enrol Today and Download Brochure
   edge to edge. Space them on every device. */
.elementor-1109 .elementor-element-9927830 .wpr-dual-button {
	gap: 1rem;
}

@media (max-width: 47.9375rem) {
	.elementor-1109 .elementor-element-9927830 .wpr-dual-button {
		gap: 0.75rem;
	}
}


/* Industries keeps its tight heading gap at every width.
   Must stay LAST: it ties with the .vsv .vsv-head rules above and wins by coming after them. */
.vsv-industries .vsv-head {
	margin-bottom: 0.75rem;
}


/* --- Blog (2026-11-06) ---------------------------------------------------------------------
   Article card: loop item "Blog Item box" (#4669), used by the Blog page's Latest Posts grid and the
   single post's Latest Post row. Cards in a row share one height, photos share one shape, titles
   stop at 3 lines and the author/date line sits on the bottom edge. */
.e-loop-item.elementor-4669,
.elementor-4669 .elementor-element.elementor-element-66d9e9a {
	height: 100%;
}

.elementor-4669 .elementor-element.elementor-element-13ed66c {
	flex: 1 1 auto;
	flex-wrap: nowrap;
	justify-content: flex-start;
	height: 100%;
}

.elementor-4669 .elementor-element.elementor-element-41fec38 {
	width: 100%;
}

.elementor-4669 .elementor-element.elementor-element-41fec38 img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.elementor-4669 .elementor-element.elementor-element-4274d7a .elementor-heading-title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}

.elementor-4669 .elementor-element.elementor-element-d82416f {
	margin-top: auto;
}

/* Blog page (#2181) hero: the featured post used negative margins (-16rem under the hero, +16rem
   above Latest Posts) to hang over the blue band. A longer title made the card taller than 16rem, so
   on phones it ran over the "Latest Posts" heading. Now the band is a gradient that stops a fixed
   distance above the card's bottom edge, and the margins are zero, so any card height fits. */
body .elementor-2181 .elementor-element.elementor-element-212c0ee:not(.elementor-motion-effects-element-type-background) {
	background-color: transparent;
	background-image: linear-gradient(to bottom, var(--e-global-color-d09ecf1) calc(100% - 15rem), transparent calc(100% - 15rem));
}

.elementor-2181 .elementor-element.elementor-element-570fc88 {
	--margin-bottom: 0rem;
}

.elementor-2181 .elementor-element.elementor-element-b7dd57c {
	--margin-top: 0rem;
	--padding-top: 5rem;
}

@media (max-width: 47.9375rem) {
	body .elementor-2181 .elementor-element.elementor-element-212c0ee:not(.elementor-motion-effects-element-type-background) {
		background-image: linear-gradient(to bottom, var(--e-global-color-d09ecf1) calc(100% - 8rem), transparent calc(100% - 8rem));
	}

	.elementor-2181 .elementor-element.elementor-element-b7dd57c {
		--padding-top: 3rem;
	}

	/* One card per row on phones: let each card take its own height (equal-height rows made every
	   card as tall as the tallest one) */
	body .elementor-2181 .elementor-element.elementor-element-561129a .elementor-loop-container,
	body .elementor-4667 .elementor-element.elementor-element-7f126d6 .elementor-loop-container {
		grid-auto-rows: auto;
	}

	/* Featured post card (#4700) on phones: show a band of the photo above the white card
	   (it used to cover almost all of it). "body" because the loop item's CSS prints after site.css. */
	body .elementor-4700 .elementor-element.elementor-element-f665fb0 {
		--padding-top: 11rem;
		--padding-right: 1rem;
		--padding-bottom: 1rem;
		--padding-left: 1rem;
	}

	body .elementor-4700 .elementor-element.elementor-element-61d6239 {
		--padding-top: 1.5rem;
		--padding-right: 1.25rem;
		--padding-bottom: 1.5rem;
		--padding-left: 1.25rem;
	}
}

/* Custom Software Development (#855) "Built to Solve": the photo-quote card (befa4d0) is hidden on
   every device until a real client quote is sourced (user, 2026-11-06). The grid (8e260b2) drops to
   one column and, on desktop, Overview and Business Challenges sit side by side.
   To bring the quote back: un-hide befa4d0 in Elementor and delete these rules. */
.elementor-855 .elementor-element.elementor-element-8e260b2 {
	--e-con-grid-template-columns: 1fr;
}

@media (min-width: 64.0625rem) {
	.elementor-855 .elementor-element.elementor-element-def068c {
		--flex-direction: row;
		--gap: 4rem;
		--row-gap: 4rem;
		--column-gap: 4rem;
	}

	.elementor-855 .elementor-element.elementor-element-def068c > .e-con {
		flex: 1 1 0;
		min-width: 0;
	}
}


/* =====================================================================
   4. FORMS
   Contact Form 7 "Project Enquiry" form (#79). Formerly a <style> block inside the form template.
   ===================================================================== */

.wpcf7-list-item {
	display: inline-block;
	margin: 0 0 0 0.5rem;
}

.contact-form-7-form br {
	display: none;
}

.contact-form-7-form .row {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 0.5em;
}

.contact-form-7-form .column {
	flex: 1;
	padding: 0.5rem 1rem 0.5rem 0rem;
}

.contact-form-7-form label {
	display: block;
	font-weight: 500;
	color: #344054;
	font-size: 1rem;
	margin-bottom: 1rem;
}

/* Adjust input and textarea heights */

.contact-form-7-form input[type="text"],
.contact-form-7-form input[type="email"],
.contact-form-7-form input[type="tel"],
.contact-form-7-form textarea,
.contact-form-7-form select {
	width: 100%;
	padding: 1rem;
	margin-bottom: 0.5em;
	box-sizing: border-box;
	color: #312A50;
	background-color: #FFFFFF;
	border: 1px solid #D0D5DDC2;
	border-radius: 6px;
	box-shadow: 0 1px 2px 0 #1018280D;
}

.intl-tel-input {
	position: relative;
	display: block !important;
}

.contact-form-7-form textarea {
	height: 150px;
}

.contact-form-7-form #service-description {
	height: 135px;
}

.contact-form-7-form #project-description {
	height: 150px;
}

.contact-form-7-form input[type="radio"] {
	margin-right: 0.5rem;
}

.contact-form-7-form .budget-options label,
.contact-form-7-form .timeline-options label,
.contact-form-7-form .platform-icons label {
	display: block;
	align-items: center;
	cursor: pointer;
	margin-right: 1rem;
	position: relative;
	padding: 18px;
	background-color: #FFFFFF;
	border-radius: 12px;
	box-shadow: 0 17.51px 40.14px 0 #8F8F8F40;
	text-align: center;
}

.contact-form-7-form input[type="submit"] {
	color: #fff;
	font-size: 1rem;
	line-height: 1.5rem;
	font-weight: 700;
	padding: 1.25rem 7.5rem;
	background-color: #025FA0;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 0.25s ease;
}

.contact-form-7-form input[type="submit"]:hover {
	background-color: #022A46;
}

a#policy-cta:hover {
	color: #025fa0 !important;
}

.contact-form-7-form .budget-options .wpcf7-list-item,
.contact-form-7-form .timeline-options .wpcf7-list-item {
	display: inline-flex;
	align-items: center;
	margin-right: 10px;
	position: relative;
	width: auto;
}

.contact-form-7-form .budget-options .wpcf7-list-item label,
.contact-form-7-form .timeline-options .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	background-color: #FFFFFF;
	padding: 20px;
	border-radius: 12px;
	box-shadow: 0px 17.51px 40.14px 0px rgba(143, 143, 143, 0.40);
	position: relative;
	padding-left: 10px;
}

.platform-icons {
	display: inline-flex;
	align-items: center;
	margin-right: 10px;
}

/* Style for radio button & checkbox labels */

.contact-form-7-form .wpcf7-list-item,
.contact-form-7-form .wpcf7-list-item.first {
	display: inline-flex;
	align-items: center;
	margin-right: 10px;
	position: relative;
}

/* Ensure the radio button or checkbox appears first */

.contact-form-7-form .platform-icons .wpcf7-list-item input[type="radio"],
.contact-form-7-form .platform-icons .wpcf7-list-item input[type="checkbox"] {
	order: 1;
	margin-right: 10px;
}

/* Add icon after radio button or checkbox */

.contact-form-7-form .platform-icons .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	background-color: #FFFFFF;
	padding: 18px;
	border-radius: 12px;
	box-shadow: 0px 17.51px 40.14px 0px rgba(143, 143, 143, 0.40);
	position: relative;
	padding-left: 25px;
}

/* Add icon images for each radio button or checkbox */

.contact-form-7-form .platform-icons .wpcf7-list-item:nth-child(1) label::before {
	content: "";
	order: 2;
	display: inline-block;
	width: 24px;
	height: 24px;
	background-image: url('/wp-content/uploads/2025/08/artificial-intelligence.png');
	background-size: contain;
	background-repeat: no-repeat;
	margin-right: 10px;
}

.contact-form-7-form .platform-icons .wpcf7-list-item:nth-child(2) label::before {
	content: "";
	order: 2;
	display: inline-block;
	width: 24px;
	height: 24px;
	background-image: url('/wp-content/uploads/2024/05/monitor.svg');
	background-size: contain;
	background-repeat: no-repeat;
	margin-right: 10px;
}

.contact-form-7-form .platform-icons .wpcf7-list-item:nth-child(3) label::before {
	content: "";
	order: 2;
	display: inline-block;
	width: 24px;
	height: 24px;
	background-image: url('/wp-content/uploads/2024/05/apple.svg');
	background-size: contain;
	background-repeat: no-repeat;
	margin-right: 10px;
}

.contact-form-7-form .platform-icons .wpcf7-list-item:nth-child(4) label::before {
	content: "";
	order: 2;
	display: inline-block;
	width: 24px;
	height: 24px;
	background-image: url('/wp-content/uploads/2024/05/android.svg');
	background-size: contain;
	background-repeat: no-repeat;
	margin-right: 10px;
}

.contact-form-7-form .platform-icons .wpcf7-list-item:nth-child(5) label::before {
	content: "";
	order: 2;
	display: inline-block;
	width: 24px;
	height: 24px;
	background-image: url('/wp-content/uploads/2024/07/mobile-phone-svgrepo-com.svg');
	background-size: contain;
	background-repeat: no-repeat;
	margin-right: 10px;
}

.contact-form-7-form .platform-icons .wpcf7-list-item:nth-child(6) label::before {
	content: "";
	order: 2;
	display: inline-block;
	width: 24px;
	height: 24px;
	background-image: url('/wp-content/uploads/2024/08/application.png');
	background-size: contain;
	background-repeat: no-repeat;
	margin-right: 10px;
}

/* Ensure the label text appears last */

.contact-form-7-form .platform-icons .wpcf7-list-item label span {
	order: 3;
}

/*=============================
 Responsive Styling 
===============================*/

@media screen and (max-width: 1024px) {
	.contact-form-7-form .row {
		flex-direction: column;
	}

}

@media screen and (max-width: 768px) {
	.contact-form-7-form .row {
		flex-direction: column;
	}

	.platform-icons {
		display: inline-flex;
		align-items: flex-start;
	}

	.contact-form-7-form .column {
		width: 100%;
		padding: 0.5rem 0;
	}

	.contact-form-7-form .platform-icons {
		display: flex;
		flex-direction: column;
	}

	.contact-form-7-form .platform-icons .wpcf7-list-item {
		margin: 10px 0;
	}

	.contact-form-7-form .budget-options,
	.contact-form-7-form .timeline-options {
		display: flex;
		flex-direction: column;
	}

	.contact-form-7-form .budget-options .wpcf7-list-item,
	.contact-form-7-form .timeline-options .wpcf7-list-item {
		margin: 10px 0;
	}

}


/* Consent checkbox (2026-11-05): keep the box beside its text; the wrapped lines used to run
   underneath the box. */
.wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.wpcf7-acceptance .wpcf7-list-item label {
	display: flex;
	align-items: flex-start;
	gap: 0.625rem;
}

.wpcf7-acceptance .wpcf7-list-item input[type="checkbox"] {
	flex: none;
	margin: 0.2em 0 0;
}
