/**
 * Site-wide child theme overrides.
 * Loaded on every page after parent Hello Elementor styles.
 */

 .elementor-widget-counter {
  text-align: center;
 }

 .category-filter .jet-smart-filters-radio .jet-radio-list-wrapper .jet-filter-row .jet-radio-list__decorator {
  display: none;
 }

 .category-filter .jet-smart-filters-radio .jet-radio-list-wrapper .jet-filter-row .jet-radio-list__item::after{
  content: " ";
  display: block;
  width: 1px;
  background: #0d3fac;
  height: 20px;
  margin-left: 20px;
 }

 .counter-special .elementor-counter .elementor-counter-title {
  font-size: 16px;
  max-width: 260px;
 }

/* ------------------------------------------------------------------
   Arrow on hover — Elementor Button: class arrow-hover
   Hides the button icon until hover/focus.
   ------------------------------------------------------------------ */
.arrow-hover .elementor-button-content-wrapper {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.arrow-hover .elementor-button-icon {
	display: inline-flex;
	align-items: center;
	opacity: 0;
	transform: translateX(-4px);
	max-width: 0;
	margin: 0 !important;
	overflow: hidden;
	transition:
		opacity 0.3s ease,
		transform 0.3s ease,
		max-width 0.3s ease,
		margin 0.3s ease;
	pointer-events: none;
}

.arrow-hover .elementor-button-icon svg {
	display: block;
	flex-shrink: 0;
}

.arrow-hover:hover .elementor-button-icon,
.arrow-hover:focus-visible .elementor-button-icon,
.arrow-hover .elementor-button:hover .elementor-button-icon,
.arrow-hover .elementor-button:focus-visible .elementor-button-icon {
	opacity: 1;
	transform: translateX(0);
	max-width: 2em;
	margin-inline-start: 8px !important;
}

.elementor-widget-button.white-hover .elementor-button-wrapper a.elementor-button {
	color: #fff;
	transition: all 0.4s ease;
}

.elementor-widget-button.white-hover .elementor-button-wrapper a.elementor-button:hover,
.elementor-widget-button.white-hover .elementor-button-wrapper a.elementor-button:focus-visible {
	color: #0d3fac !important;
	background-color: #fff !important;
	border-color: #fff !important;
}

.video-bg {
	max-height: 578px;
}

/*
 * Home strip: same cover treatment as .video-bg, but the box is 11vh
 * minus the container's top and bottom padding (Elementor default 15px).
 */
.elementor .elementor-element.e-con.home-video-bg {
	position: relative;
	height: calc(100vh - 80px);
	min-height: calc(100vh - 80px);
	overflow: hidden;

	@media (max-width: 767px) {
		height: 60vh;
		min-height: 60vh;
	}
}

.home-video-bg > .elementor-widget-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
}

.home-video-bg .elementor-widget-container,
.home-video-bg .e-hosted-video,
.home-video-bg .elementor-wrapper {
	height: 100%;
	aspect-ratio: unset !important;
}

.home-video-bg .elementor-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.home-video-bg > .elementor-widget-heading {
	z-index: 1;
}

/* Fill the Elementor min-height on mobile (video otherwise keeps aspect-ratio). */
@media (max-width: 767px) {
	.video-bg {
		position: relative;
		min-height: 557px;
		max-height: none;
		overflow: hidden;
	}

	.video-bg > .elementor-widget-video {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		margin: 0;
	}

	.video-bg .elementor-widget-container,
	.video-bg .e-hosted-video,
	.video-bg .elementor-wrapper {
		height: 100%;
		aspect-ratio: unset !important;
	}

	.video-bg .elementor-video {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}

	.video-bg > .elementor-widget-heading {
		z-index: 1;
	}
}

/*
 * 3+2 card grid: last row centered under the first.
 * Desktop uses a 6-col track so each card spans 2; items 4–5 start at col 2 & 4.
 */
@media (min-width: 1025px) {
	.elementor .e-con.centered-grid.e-grid {
		--e-con-grid-template-columns: repeat(6, 1fr);
		grid-template-columns: repeat(6, 1fr);
	}

	.elementor .e-con.centered-grid.e-grid > .e-con {
		grid-column: span 2;
	}

	.elementor .e-con.centered-grid.e-grid > .e-con:nth-child(4) {
		grid-column: 2 / span 2;
	}

	.elementor .e-con.centered-grid.e-grid > .e-con:nth-child(5) {
		grid-column: 4 / span 2;
	}
}

/*
 * Centered lists: bullet sits next to each line (not pinned to the left edge).
 */
.special-list ul {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}

.special-list ul li {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}

.special-list ul li::before {
	content: "•";
	margin-right: 0.45em;
	color: currentColor;
}

/*
 * Equal-height cards. Elementor's 1fr row sizes each background to its
 * own text. Drop that track so every card stretches to the tallest one
 * in the row, and keep the copy centered.
 */
.elementor .values-applications.e-grid {
	--e-con-grid-template-rows: none;
	--justify-items: stretch;
	--align-items: stretch;
	grid-template-rows: none !important;
	justify-items: stretch !important;
	align-items: stretch !important;
}

.elementor .values-applications.e-grid > .e-con {
	--align-self: stretch;
	align-self: stretch !important;
	width: 100%;
	min-height: 120px;
	justify-content: center;
	align-items: center;
	text-align: center;
}

.elementor .values-applications.e-grid > .e-con .elementor-widget-container,
.elementor .values-applications.e-grid > .e-con p {
	text-align: center;
}

@media (max-width: 767px) {
	.elementor .values-applications.e-grid > .e-con {
		min-height: 20px;
	}
}