.aps-demo-hero {
	position: relative !important;
	isolation: isolate;
	--aps-grain-accent: 255, 255, 255;
	--aps-grain-accent2: 160, 160, 160;
	--aps-grain-deep: 0, 0, 0;
}

.aps-hero-dark {
	background-color: #050505 !important;
	background-image: none !important;
	color: #fff !important;
}

.aps-demo-hero.elementor-element-635b462 {
	background-color: #0a0b0f !important;
	background-image: none !important;
}

.aps-demo-hero:is(
	.aps-brand-clean-cast,
	.elementor-element-cc200010,
	.elementor-element-1c776fa2,
	.elementor-element-3ca35fdd,
	.elementor-element-d185f08b
) {
	--aps-grain-accent: 110, 162, 255;
	--aps-grain-accent2: 22, 93, 255;
	--aps-grain-deep: 7, 20, 45;
}

.aps-demo-hero:is(
	.aps-brand-midnight-cinema,
	.elementor-element-mg200001,
	.elementor-element-fe101eaa,
	.elementor-element-4704505b,
	.elementor-element-8285b0e0
) {
	--aps-grain-accent: 215, 168, 75;
	--aps-grain-accent2: 92, 75, 51;
	--aps-grain-deep: 11, 9, 7;
}

.aps-demo-hero:is(.aps-brand-superman-streamz, .elementor-element-635b462) {
	--aps-grain-accent: 230, 40, 46;
	--aps-grain-accent2: 240, 68, 68;
	--aps-grain-deep: 10, 11, 15;
}

.aps-demo-hero:is(
	.aps-brand-neon-rush,
	.elementor-element-nr200001,
	.elementor-element-7c0c21c1,
	.elementor-element-96b102d5,
	.elementor-element-cf253312
) {
	--aps-grain-accent: 255, 47, 179;
	--aps-grain-accent2: 23, 107, 255;
	--aps-grain-deep: 8, 13, 45;
}

.aps-demo-hero:is(
	.aps-brand-the-vault,
	.elementor-element-tv200001,
	.elementor-element-3022a5fd,
	.elementor-element-ed12fd4d,
	.elementor-element-e6887af2
) {
	--aps-grain-accent: 158, 216, 199;
	--aps-grain-accent2: 15, 107, 85;
	--aps-grain-deep: 4, 18, 15;
}

.aps-demo-hero:is(
	.aps-brand-niro-black,
	.elementor-element-nbr20001,
	.elementor-element-56c94cdc,
	.elementor-element-4a3f7bdc,
	.elementor-element-898bd794
) {
	--aps-grain-accent: 184, 138, 24;
	--aps-grain-accent2: 90, 90, 90;
	--aps-grain-deep: 5, 5, 5;
}

.aps-hero-grain {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	pointer-events: none;
	z-index: 1;
	opacity: 0.78;
	background-color: rgb(var(--aps-grain-deep));
	background-image:
		linear-gradient(
			135deg,
			rgba(var(--aps-grain-deep), 0.62) 0%,
			rgba(var(--aps-grain-accent2), 0.2) 58%,
			rgba(var(--aps-grain-accent), 0.24) 100%
		),
		repeating-linear-gradient(
			90deg,
			rgba(var(--aps-grain-accent), 0.055) 0 1px,
			transparent 1px 6px
		),
		repeating-linear-gradient(
			0deg,
			rgba(var(--aps-grain-accent2), 0.04) 0 1px,
			transparent 1px 8px
		),
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.72'/></svg>");
	background-size: 100% 100%, 6px 6px, 8px 8px, 160px 160px;
	background-blend-mode: multiply, screen, screen, overlay;
	mix-blend-mode: overlay;
	filter: contrast(1.5) brightness(0.64) saturate(1.18);
}

.aps-hero-dark .aps-hero-grain {
	opacity: 0.72;
	mix-blend-mode: soft-light;
	filter: contrast(1.65) brightness(0.68) saturate(1.35);
}

.aps-demo-hero > .e-con-inner {
	position: relative;
	z-index: 2;
}

/* This layout uses a div-based header, so keep its four navigation tabs in
 * the same single-row mobile layout used by the other APS brand headers. */
@media (max-width: 900px) {
	.elementor-element-635b462 .elementor-element-b4bf89c {
		--flex-wrap-mobile: nowrap;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: 6px !important;
		width: 100%;
	}

	.elementor-element-635b462 .elementor-element-b4bf89c > .elementor-widget-button {
		flex: 1 1 0 !important;
		min-width: 0 !important;
	}

	.elementor-element-635b462 .elementor-element-b4bf89c .elementor-button {
		width: 100% !important;
		justify-content: center !important;
		padding: 8px 2px !important;
		font-size: 12px !important;
		white-space: nowrap;
	}
}

/* Shared presentation rules formerly embedded in page-level HTML widgets. */
:root {
	--aps-accent: #e6282e;
	--aps-accent-soft: rgba(230, 40, 46, 0.18);
	--aps-img-brightness: 1;
	--aps-img-contrast: 1;
}

html,
body {
	overflow-x: hidden !important;
	max-width: 100%;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

.elementor {
	position: relative;
	max-width: 100% !important;
}

.elementor::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 20;
	pointer-events: none;
	background-image: radial-gradient(circle, var(--aps-accent) 0.45px, transparent 0.65px);
	background-size: 18px 18px;
	opacity: 0.025;
}

.elementor-section,
.e-con,
.e-con-inner,
.elementor-widget,
.elementor-widget-wrap,
.elementor-container {
	max-width: 100% !important;
}

.elementor img,
.elementor video,
.elementor svg,
.elementor iframe {
	max-width: 100% !important;
	height: auto;
}

.elementor .aps-plan-card,
.elementor .aps-plan-card > .e-con-inner {
	height: 100%;
}

.elementor .aps-plan-card {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.elementor .aps-plan-card .elementor-widget-button {
	margin-top: auto;
}

.elementor .aps-plan-card .elementor-button-wrapper,
.elementor .aps-plan-card .elementor-button {
	width: 100%;
}

.elementor .aps-plan-featured {
	transform: translateY(-5px);
	box-shadow: 0 0 0 1px var(--aps-accent), 0 18px 45px -28px var(--aps-accent) !important;
}

.elementor .elementor-button {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.elementor a:focus-visible {
	outline: 3px solid var(--aps-accent) !important;
	outline-offset: 3px;
}

.elementor .elementor-heading-title {
	text-wrap: balance;
}

.elementor .elementor-widget-text-editor {
	text-wrap: pretty;
}

.elementor .elementor-heading-title,
.elementor h1,
.elementor h2,
.elementor h3 {
	overflow-wrap: anywhere;
	word-break: break-word;
	max-width: 100%;
}

.elementor-widget-image img {
	filter: brightness(var(--aps-img-brightness)) contrast(var(--aps-img-contrast));
	transition: transform 0.45s ease, filter 0.45s ease;
}

@media (hover: hover) {
	.elementor-widget-image:hover img {
		transform: translateY(-3px) scale(1.01);
	}

	.elementor .aps-plan-card:hover {
		transform: translateY(-4px);
	}

	.elementor .aps-plan-featured:hover {
		transform: translateY(-8px);
	}

	.elementor .elementor-button:hover {
		transform: translateY(-2px);
	}
}

@media (max-width: 767px) {
	.elementor-element {
		max-width: 100% !important;
	}

	/* Keep the two-part customer wordmark on one line like the secondary
	 * pages, even though the general mobile heading rule is larger. */
	.elementor-element-635b462 .elementor-element-2d98791 {
		flex-direction: row !important;
		flex-wrap: nowrap !important;
	}

	.elementor-element-635b462 .elementor-element-43d9188 .elementor-heading-title,
	.elementor-element-635b462 .elementor-element-fda3dcc .elementor-heading-title {
		font-size: 20px !important;
		line-height: 1 !important;
		white-space: nowrap !important;
	}

	.elementor .aps-plan-featured,
	.elementor .aps-plan-featured:hover {
		transform: none;
	}

	.elementor .aps-plan-card {
		min-height: auto;
	}

	.elementor .elementor-heading-title {
		font-size: clamp(1.35rem, 7vw, 2.1rem) !important;
		line-height: 1.12 !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.elementor * {
		transition: none !important;
		animation: none !important;
	}
}
