/* =========================================================================
   Hero banner slider — 3 native Elementor slides inside #vz-banner-track,
   turned into a Slick slider by hero-slider.js.
   Colours come from Elementor Global Colors (primary / secondary / text).
   ========================================================================= */

#vz-banner-track {
	--vz-primary: var(--e-global-color-primary);
	--vz-secondary: var(--e-global-color-secondary);
	--vz-text: var(--e-global-color-text);
}

/* Full-bleed: break the banner column out of Elementor's boxed container
   (html has overflow-x:hidden so 100vw adds no scrollbar). */
#vz-banner-track {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	padding: 0 !important;
}

#vz-banner-track>.elementor-widget-wrap {
	display: block;
	position: relative;
}

/* Each slide */
#vz-banner-track .elementor-inner-section {
	background: linear-gradient(115deg,
			color-mix(in srgb, var(--vz-secondary) 8%, #ffffff) 0%,
			#f7fafe 55%,
			color-mix(in srgb, var(--vz-secondary) 10%, #ffffff) 100%);
	overflow: hidden;
}

/* Faint globe watermark echoing the reference world-map backdrop */
#vz-banner-track .elementor-inner-section>.elementor-container::after {
	content: "\f57d";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	position: absolute;
	right: -70px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 540px;
	line-height: 1;
	color: color-mix(in srgb, var(--vz-secondary) 5%, transparent);
	pointer-events: none;
	z-index: 0;
}

/* Boxed, centered, tall content area */
#vz-banner-track .elementor-inner-section>.elementor-container {
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
	min-height: 770px;
	align-items: center;
	padding: 50px 24px;
}

#vz-banner-track .elementor-inner-section .elementor-column {
	z-index: 2;
}

/* Eyebrow (h6) gets a primary lead bar */
#vz-banner-track h6.elementor-heading-title {
	display: inline-flex;
	align-items: center;
}

#vz-banner-track h6.elementor-heading-title::before {
	content: "";
	width: 34px;
	height: 3px;
	background: var(--vz-primary);
	margin-right: 12px;
	border-radius: 2px;
	flex: 0 0 auto;
}

/* Accent word inside the H1 */
#vz-banner-track .vz-hs-accent {
	color: var(--vz-primary);
}

/* Force banner text + button onto the globals (Elementor widget data may hold
   old hardcoded hex after an editor save; these keep it tied to Site Settings). */
#vz-banner-track h6.elementor-heading-title {
	color: var(--vz-primary) !important;
}

#vz-banner-track h1.elementor-heading-title {
	color: var(--vz-secondary) !important;
}

#vz-banner-track h1.elementor-heading-title .vz-hs-accent {
	color: var(--vz-primary) !important;
}

/* Image: rounded + shadow + primary ring accent behind */
#vz-banner-track .elementor-widget-image {
	position: relative;
}

#vz-banner-track .elementor-widget-image img {
	border-radius: 22px;
	box-shadow: 0 30px 60px rgba(18, 48, 107, .20);
}

#vz-banner-track .elementor-widget-image::after {
	content: "";
	position: absolute;
	z-index: -1;
	width: 190px;
	height: 190px;
	right: 4px;
	bottom: -30px;
	border: 12px solid color-mix(in srgb, var(--vz-primary) 22%, transparent);
	border-radius: 50%;
}

/* ---- Before Slick init: show only the first slide (no tall flash) ---- */
#vz-banner-track>.elementor-widget-wrap:not(.slick-initialized)>.elementor-inner-section:not(:first-child) {
	display: none;
}

#vz-banner-track>.elementor-widget-wrap {
	visibility: hidden;
}

#vz-banner-track>.elementor-widget-wrap.slick-initialized,
#vz-banner-track>.elementor-widget-wrap:not(.slick-initialized) {
	visibility: visible;
}

/* ---- Slick arrows ---- */
#vz-banner-track .slick-prev,
#vz-banner-track .slick-next {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: #fff;
	z-index: 6;
	box-shadow: 0 10px 24px rgba(18, 48, 107, .16);
	transition: background .2s ease;
}

#vz-banner-track .slick-prev:hover,
#vz-banner-track .slick-next:hover {
	background: var(--vz-secondary);
}

#vz-banner-track .slick-prev {
	left: 26px;
}

#vz-banner-track .slick-next {
	right: 26px;
}

#vz-banner-track .slick-prev:before,
#vz-banner-track .slick-next:before {
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: 18px;
	color: var(--vz-secondary);
	opacity: 1;
}

#vz-banner-track .slick-prev:hover:before,
#vz-banner-track .slick-next:hover:before {
	color: #fff;
}

#vz-banner-track .slick-prev:before {
	content: "\f060";
}

#vz-banner-track .slick-next:before {
	content: "\f061";
}

/* ---- Slick dots ---- */
#vz-banner-track .slick-dots {
	bottom: 22px;
}

#vz-banner-track .slick-dots li button:before {
	font-family: 'Poppins', sans-serif;
	content: "\2022";
	font-size: 13px;
	color: var(--vz-secondary);
	opacity: .3;
}

#vz-banner-track .slick-dots li.slick-active button:before {
	color: var(--vz-primary);
	opacity: 1;
	border: 1px solid;
	border-radius: 100px;
}

/* ---- Entrance animation on the active slide ---- */
#vz-banner-track .slick-slide .elementor-column:first-child>.elementor-widget-wrap>* {
	opacity: 0;
}

#vz-banner-track .slick-current .elementor-column:first-child>.elementor-widget-wrap>* {
	animation: vzHsUp .7s cubic-bezier(.4, 0, .2, 1) forwards;
}

#vz-banner-track .slick-current .elementor-column:first-child>.elementor-widget-wrap>*:nth-child(1) {
	animation-delay: .12s;
}

#vz-banner-track .slick-current .elementor-column:first-child>.elementor-widget-wrap>*:nth-child(2) {
	animation-delay: .24s;
}

#vz-banner-track .slick-current .elementor-column:first-child>.elementor-widget-wrap>*:nth-child(3) {
	animation-delay: .36s;
}

#vz-banner-track .slick-current .elementor-column:first-child>.elementor-widget-wrap>*:nth-child(4) {
	animation-delay: .48s;
}

@keyframes vzHsUp {
	from {
		opacity: 0;
		transform: translateY(24px);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

/* ---- Responsive ---- */
@media (max-width: 980px) {
	#vz-banner-track .elementor-inner-section>.elementor-container {
		min-height: 0;
		text-align: center;
	}

	#vz-banner-track h6.elementor-heading-title {
		justify-content: center;
	}

	#vz-banner-track .elementor-widget-image::after {
		display: none;
	}
}

@media (max-width: 600px) {

	#vz-banner-track .slick-prev,
	#vz-banner-track .slick-next {
		display: none !important;
	}
}