/* ==========================================================================
   Stafford Bulldogs SVG Energy Button System — V2
   Loaded after page-specific CSS so artwork remains authoritative.
   ========================================================================== */

.sb-energy-button,
.sb-primary-nav .sb-menu-cta > a,
.sb-home-hero__button--primary,
.sb-home-hero__button--secondary {
	--sb-energy-button-width: 14rem;
	--sb-energy-button-height: 4.25rem;
	--sb-energy-button-text-size: 1rem;
	--sb-energy-button-normal: url("../images/energy-button-primary-normal.svg");
	--sb-energy-button-hover: url("../images/energy-button-primary-hover.svg");
	align-items: center !important;
	background:
		var(--sb-energy-button-normal)
		center / 100% 100%
		no-repeat !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	clip-path: none !important;
	color: var(--sb-color-white) !important;
	display: inline-flex !important;
	font-family: var(--sb-font-body) !important;
	font-size: var(--sb-energy-button-text-size) !important;
	font-weight: 800 !important;
	height: var(--sb-energy-button-height) !important;
	inline-size: var(--sb-energy-button-width) !important;
	justify-content: center !important;
	letter-spacing: 0.045em !important;
	line-height: 1 !important;
	min-block-size: var(--sb-energy-button-height) !important;
	min-height: var(--sb-energy-button-height) !important;
	min-inline-size: var(--sb-energy-button-width) !important;
	min-width: var(--sb-energy-button-width) !important;
	overflow: visible !important;
	padding: 0 2rem !important;
	position: relative !important;
	text-align: center !important;
	text-decoration: none !important;
	text-shadow:
		0 2px 0 rgb(0 0 0 / 72%),
		0 0 0.5rem rgb(255 255 255 / 16%) !important;
	text-transform: uppercase !important;
	transform: translateY(0);
	transition:
		color 180ms ease,
		text-shadow 180ms ease,
		transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
	width: var(--sb-energy-button-width) !important;
	isolation: isolate;
}

.sb-energy-button::before,
.sb-primary-nav .sb-menu-cta > a::before,
.sb-home-hero__button--primary::before,
.sb-home-hero__button--secondary::before {
	background:
		var(--sb-energy-button-hover)
		center / 100% 100%
		no-repeat !important;
	content: "" !important;
	inset: 0 !important;
	opacity: 0;
	pointer-events: none;
	position: absolute !important;
	transition:
		opacity 320ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
	z-index: -1;
}

.sb-energy-button::after,
.sb-primary-nav .sb-menu-cta > a::after,
.sb-home-hero__button--primary::after,
.sb-home-hero__button--secondary::after {
	background:
		linear-gradient(
			105deg,
			transparent 0 42%,
			rgb(255 255 255 / 0%) 46%,
			rgb(255 255 255 / 58%) 50%,
			rgb(255 255 255 / 0%) 54%,
			transparent 58% 100%
		) !important;
	content: "" !important;
	inset: 0 !important;
	opacity: 0;
	pointer-events: none;
	position: absolute !important;
	transform: translateX(-85%);
	transition:
		opacity 120ms ease,
		transform 520ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
	z-index: 0;
}

.sb-energy-button:hover,
.sb-energy-button:focus-visible,
.sb-primary-nav .sb-menu-cta > a:hover,
.sb-primary-nav .sb-menu-cta > a:focus-visible,
.sb-home-hero__button--primary:hover,
.sb-home-hero__button--primary:focus-visible,
.sb-home-hero__button--secondary:hover,
.sb-home-hero__button--secondary:focus-visible {
	color: var(--sb-color-white) !important;
	text-shadow:
		0 2px 0 rgb(0 0 0 / 78%),
		0 0 0.7rem rgb(255 255 255 / 32%) !important;
	transform: translateY(-2px) !important;
}

.sb-energy-button:hover::before,
.sb-energy-button:focus-visible::before,
.sb-primary-nav .sb-menu-cta > a:hover::before,
.sb-primary-nav .sb-menu-cta > a:focus-visible::before,
.sb-home-hero__button--primary:hover::before,
.sb-home-hero__button--primary:focus-visible::before,
.sb-home-hero__button--secondary:hover::before,
.sb-home-hero__button--secondary:focus-visible::before {
	opacity: 1;
}

.sb-energy-button:hover::after,
.sb-energy-button:focus-visible::after,
.sb-primary-nav .sb-menu-cta > a:hover::after,
.sb-primary-nav .sb-menu-cta > a:focus-visible::after,
.sb-home-hero__button--primary:hover::after,
.sb-home-hero__button--primary:focus-visible::after,
.sb-home-hero__button--secondary:hover::after,
.sb-home-hero__button--secondary:focus-visible::after {
	opacity: 1;
	transform: translateX(85%);
}

.sb-energy-button:active,
.sb-primary-nav .sb-menu-cta > a:active,
.sb-home-hero__button--primary:active,
.sb-home-hero__button--secondary:active {
	transform: translateY(0) !important;
	transition-duration: 80ms !important;
}

/* Primary header and hero buttons use identical artwork and proportions. */
.sb-primary-nav .sb-menu-cta > a,
.sb-home-hero__button--primary,
.sb-energy-button--primary {
	--sb-energy-button-normal: url("../images/energy-button-primary-normal.svg");
	--sb-energy-button-hover: url("../images/energy-button-primary-hover.svg");
	--sb-energy-button-width: 14rem;
	--sb-energy-button-height: 4.25rem;
	--sb-energy-button-text-size: 1rem;
}

/* Matching dark secondary version for Explore Programs and future CTAs. */
.sb-home-hero__button--secondary,
.sb-energy-button--secondary {
	--sb-energy-button-normal: url("../images/energy-button-secondary-normal.svg");
	--sb-energy-button-hover: url("../images/energy-button-secondary-hover.svg");
	--sb-energy-button-width: 14rem;
	--sb-energy-button-height: 4.25rem;
	--sb-energy-button-text-size: 1rem;
	color: #f4f7fb !important;
}

/* Remove older parent-generated decoration around the header CTA. */
.sb-primary-nav .sb-menu-cta::before,
.sb-primary-nav .sb-menu-cta::after {
	content: none !important;
}

.sb-energy-button--small {
	--sb-energy-button-width: 10.5rem;
	--sb-energy-button-height: 3.5rem;
	--sb-energy-button-text-size: 0.9rem;
}

.sb-energy-button--large {
	--sb-energy-button-width: 15.5rem;
	--sb-energy-button-height: 4.75rem;
	--sb-energy-button-text-size: 1.05rem;
}

@media (max-width: 78rem) and (min-width: 64.01rem) {
	.sb-primary-nav .sb-menu-cta > a {
		--sb-energy-button-width: 12.75rem;
		--sb-energy-button-height: 3.95rem;
		--sb-energy-button-text-size: 0.94rem;
	}
}

@media (max-width: 64rem) {
	.sb-primary-nav .sb-menu-cta > a {
		--sb-energy-button-width: 100%;
		--sb-energy-button-height: 3.75rem;
		min-inline-size: 0 !important;
		min-width: 0 !important;
	}

	.sb-primary-nav .sb-menu-cta > a,
	.sb-primary-nav .sb-menu-cta > a::before {
		background-size: 18rem 100% !important;
	}
}

@media (max-width: 48rem) {
	.sb-home-hero__button--primary,
	.sb-home-hero__button--secondary {
		--sb-energy-button-width: 100%;
		inline-size: 100% !important;
		min-inline-size: 0 !important;
		min-width: 0 !important;
		width: 100% !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sb-energy-button,
	.sb-primary-nav .sb-menu-cta > a,
	.sb-home-hero__button--primary,
	.sb-home-hero__button--secondary,
	.sb-energy-button::before,
	.sb-primary-nav .sb-menu-cta > a::before,
	.sb-home-hero__button--primary::before,
	.sb-home-hero__button--secondary::before,
	.sb-energy-button::after,
	.sb-primary-nav .sb-menu-cta > a::after,
	.sb-home-hero__button--primary::after,
	.sb-home-hero__button--secondary::after {
		transition-duration: 0.01ms !important;
	}
}

/* === ENERGY BUTTON STABILITY FIX START === */
/* ==========================================================================
   Stafford Bulldogs Energy Button — compositor stability fix
   ========================================================================== */

/*
 * The SVG artwork is intentionally filter-free. Multiple vector strokes and
 * radial gradients create the light effects without feGaussianBlur or
 * feDropShadow, avoiding intermittent Chrome compositor flashes.
 */

.sb-energy-button,
.sb-primary-nav .sb-menu-cta > a,
.sb-home-hero__button--primary,
.sb-home-hero__button--secondary {
	backface-visibility: hidden;
	contain: paint;
	isolation: isolate;
	overflow: hidden !important;
	position: relative !important;
	z-index: 0;
}

.sb-energy-button::before,
.sb-primary-nav .sb-menu-cta > a::before,
.sb-home-hero__button--primary::before,
.sb-home-hero__button--secondary::before {
	backface-visibility: hidden;
	inset: 0 !important;
	transform: none !important;
	z-index: -1 !important;
}

.sb-energy-button::after,
.sb-primary-nav .sb-menu-cta > a::after,
.sb-home-hero__button--primary::after,
.sb-home-hero__button--secondary::after {
	background:
		linear-gradient(
			105deg,
			transparent 0 42%,
			rgb(255 255 255 / 0%) 46%,
			rgb(255 255 255 / 48%) 50%,
			rgb(255 255 255 / 0%) 54%,
			transparent 58% 100%
		) !important;
	background-position: 150% 0 !important;
	background-repeat: no-repeat !important;
	background-size: 250% 100% !important;
	inset: 0 !important;
	opacity: 0;
	transform: none !important;
	transition:
		opacity 120ms ease,
		background-position 520ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
	z-index: 1 !important;
}

.sb-energy-button:hover::after,
.sb-energy-button:focus-visible::after,
.sb-primary-nav .sb-menu-cta > a:hover::after,
.sb-primary-nav .sb-menu-cta > a:focus-visible::after,
.sb-home-hero__button--primary:hover::after,
.sb-home-hero__button--primary:focus-visible::after,
.sb-home-hero__button--secondary:hover::after,
.sb-home-hero__button--secondary:focus-visible::after {
	background-position: -50% 0 !important;
	opacity: 1;
	transform: none !important;
}

/* Keep the artwork layer clipped to the button's own box at all times. */
.sb-primary-nav .sb-menu-cta,
.sb-home-hero__actions {
	isolation: isolate;
}
/* === ENERGY BUTTON STABILITY FIX END === */
