/* AuraSignal — homepage programs
   ≤1199: infinite horizontal marquee (replaces tall vertical / 2-col stack)
   ≥1200: Elementor 6-col grid, equal card + image heights
   Scope: .as-home-programs-grid only. */

/* —— Desktop: equal card heights, consistent image box —— */
@media (min-width: 1200px) {
	.as-home-programs-grid {
		align-items: stretch !important;
	}

	.as-home-programs-grid > .e-con,
	.as-home-programs-grid > .elementor-element {
		height: 100% !important;
		display: flex !important;
		flex-direction: column !important;
		align-self: stretch !important;
	}

	.as-home-programs-grid > .e-con > .e-con-inner,
	.as-home-programs-grid > .elementor-element > .e-con-inner {
		flex: 1 1 auto !important;
		display: flex !important;
		flex-direction: column !important;
		height: 100% !important;
		box-sizing: border-box;
	}

	.as-home-programs-grid .elementor-widget-image {
		flex: 0 0 auto;
	}

	.as-home-programs-grid .elementor-widget-image img {
		width: 100% !important;
		height: 168px !important;
		max-height: 168px !important;
		object-fit: cover !important;
		display: block !important;
	}

	.as-home-programs-grid .elementor-widget-heading,
	.as-home-programs-grid .elementor-widget-text-editor {
		flex: 0 0 auto;
	}
}

/* —— Mobile / tablet: continuous marquee (JS wraps .asw-programs-track) —— */
@media (max-width: 1199px) {
	.as-home-programs-grid.asw-programs-marquee {
		display: block !important;
		overflow: hidden !important;
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.as-home-programs-grid.asw-programs-marquee .asw-programs-track {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: stretch !important;
		gap: 1rem !important;
		width: max-content !important;
		will-change: transform;
		animation: asw-programs-marquee var(--asw-programs-marquee-duration, 48s) linear infinite;
	}

	.as-home-programs-grid.asw-programs-marquee:hover .asw-programs-track,
	.as-home-programs-grid.asw-programs-marquee:focus-within .asw-programs-track {
		animation-play-state: paused;
	}

	.as-home-programs-grid.asw-programs-marquee .asw-programs-track > .e-con,
	.as-home-programs-grid.asw-programs-marquee .asw-programs-track > .elementor-element {
		flex: 0 0 auto !important;
		width: min(78vw, 280px) !important;
		max-width: min(78vw, 280px) !important;
		min-width: 0 !important;
		margin: 0 !important;
		height: auto !important;
		display: flex !important;
		flex-direction: column !important;
	}

	.as-home-programs-grid.asw-programs-marquee .asw-programs-track > .e-con > .e-con-inner,
	.as-home-programs-grid.asw-programs-marquee .asw-programs-track > .elementor-element > .e-con-inner {
		display: flex !important;
		flex-direction: column !important;
		height: 100% !important;
		box-sizing: border-box;
	}

	.as-home-programs-grid.asw-programs-marquee .elementor-widget-image img {
		width: 100% !important;
		height: 160px !important;
		max-height: 160px !important;
		object-fit: cover !important;
		display: block !important;
	}

	@keyframes asw-programs-marquee {
		from {
			transform: translate3d(0, 0, 0);
		}
		to {
			/* --asw-programs-shift set in JS = exact original-set width (+ gap) */
			transform: translate3d(calc(-1 * var(--asw-programs-shift, 50%)), 0, 0);
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.as-home-programs-grid.asw-programs-marquee .asw-programs-track {
			animation: none !important;
			overflow-x: auto !important;
			max-width: 100%;
			width: 100% !important;
			padding-bottom: 0.35rem;
			-webkit-overflow-scrolling: touch;
			scroll-snap-type: x mandatory;
		}

		.as-home-programs-grid.asw-programs-marquee .asw-programs-track > .e-con,
		.as-home-programs-grid.asw-programs-marquee .asw-programs-track > .elementor-element {
			scroll-snap-align: start;
		}
	}
}
