/* Engage seasonal themes */

body.ew-seasonal-theme {
	--ew-seasonal-primary: var(--bs-primary);
	--ew-seasonal-secondary: var(--bs-secondary);
	--ew-seasonal-dark: var(--bs-dark);
	--ew-seasonal-primary-rgb: var(--bs-primary-rgb);
	--ew-seasonal-secondary-rgb: var(--bs-secondary-rgb);
	--ew-seasonal-font: inherit;

	--bs-primary: var(--ew-seasonal-primary);
	--bs-primary-rgb: var(--ew-seasonal-primary-rgb);
	--bs-secondary: var(--ew-seasonal-secondary);
	--bs-secondary-rgb: var(--ew-seasonal-secondary-rgb);
	--bs-dark: var(--ew-seasonal-dark);
	--bs-link-color: var(--ew-seasonal-primary);
	--bs-link-hover-color: var(--ew-seasonal-secondary);
}

body.ew-theme-halloween {
	--ew-seasonal-primary: #a32e16;
	--ew-seasonal-primary-rgb: 163, 46, 22;
	--ew-seasonal-secondary: #321017;
	--ew-seasonal-secondary-rgb: 50, 16, 23;
	--ew-seasonal-dark: #160d11;
	--ew-seasonal-font: "EW Halloween", sans-serif;
}

body.ew-theme-fireworks {
	--ew-seasonal-primary: #44308b;
	--ew-seasonal-primary-rgb: 68, 48, 139;
	--ew-seasonal-secondary: #bc4775;
	--ew-seasonal-secondary-rgb: 188, 71, 117;
	--ew-seasonal-dark: #110e27;
	--ew-seasonal-font: inherit;
}

body.ew-theme-christmas {
	--ew-seasonal-primary: #b11226;
	--ew-seasonal-primary-rgb: 177, 18, 38;
	--ew-seasonal-secondary: #146b3a;
	--ew-seasonal-secondary-rgb: 20, 107, 58;
	--ew-seasonal-dark: #10291b;
	--ew-seasonal-font: "EW Christmas", sans-serif;
}

body.ew-theme-valentines {
	--ew-seasonal-primary: #c2185b;
	--ew-seasonal-primary-rgb: 194, 24, 91;
	--ew-seasonal-secondary: #e83e8c;
	--ew-seasonal-secondary-rgb: 232, 62, 140;
	--ew-seasonal-dark: #471126;
	--ew-seasonal-font: "EW Valentines", sans-serif;
}

body.ew-seasonal-theme .display-1,
body.ew-seasonal-theme .display-2,
body.ew-seasonal-theme .display-3,
body.ew-seasonal-theme .display-4,
body.ew-seasonal-theme .display-5,
body.ew-seasonal-theme .display-6 {
	font-family: var(--ew-seasonal-font) !important;
	font-style: normal;
	line-height: 1.8 !important;
}

body.ew-theme-halloween .display-1,
body.ew-theme-halloween .display-2,
body.ew-theme-halloween .display-3,
body.ew-theme-halloween .display-4,
body.ew-theme-halloween .display-5,
body.ew-theme-halloween .display-6 {
	text-transform: uppercase !important;
}

body.ew-theme-christmas .display-1,
body.ew-theme-christmas .display-2,
body.ew-theme-christmas .display-3,
body.ew-theme-christmas .display-4,
body.ew-theme-christmas .display-5,
body.ew-theme-christmas .display-6,
body.ew-theme-valentines .display-1,
body.ew-theme-valentines .display-2,
body.ew-theme-valentines .display-3,
body.ew-theme-valentines .display-4,
body.ew-theme-valentines .display-5,
body.ew-theme-valentines .display-6 {
	text-transform: none !important;
}

body.home.ew-seasonal-theme .ew-home {
	font-family: var(--ew-seasonal-font) !important;
}

body.home.ew-seasonal-theme .ew-home-title,
body.home.ew-seasonal-theme .ew-home-subtitle h2,
body.home.ew-seasonal-theme .ew-home-menu-cta-title,
body.home.ew-seasonal-theme .ew-home-nav a,
body.home.ew-seasonal-theme .ew-home-marquee span,
body.home.ew-seasonal-theme .ew-home-client,
body.home.ew-seasonal-theme .ew-home-mobile-menu,
body.home.ew-seasonal-theme .ew-home button {
	font-family: var(--ew-seasonal-font) !important;
}

body.home.ew-seasonal-theme .ew-home-title {
	line-height: 1.8 !important;
}

body.home.ew-seasonal-theme .ew-home-subtitle h2,
body.home.ew-seasonal-theme .ew-home-menu-cta-title,
body.home.ew-seasonal-theme .ew-home-client {
	line-height: 1.8 !important;
}

body.home.ew-seasonal-theme .ew-home-marquee span {
	line-height: 1.8 !important;
}


/* Halloween homepage typography */
body.home.ew-theme-halloween .ew-home-title {
	font-size: clamp(1.7rem, 2.8vw, 3.25rem) !important;
}

body.home.ew-theme-halloween .ew-home-subtitle h2 {
	font-size: clamp(1rem, 1.35vw, 1.45rem) !important;
}

body.home.ew-theme-halloween .ew-home-menu-cta-title {
	font-size: clamp(1rem, 1.2vw, 1.35rem) !important;
}

body.home.ew-theme-halloween .ew-home-nav a {
	font-size: .72rem !important;
}

body.home.ew-theme-halloween .ew-home-marquee span {
	font-size: clamp(1.8rem, 3.5vw, 4rem) !important;
}

body.home.ew-theme-halloween .ew-home-client {
	font-size: clamp(.9rem, 1.1vw, 1.1rem) !important;
}

body.home.ew-theme-halloween .ew-home-mobile-menu {
	font-size: .7rem !important;
}

@media (max-width: 991.98px) {
	body.home.ew-theme-halloween .ew-home-title {
		font-size: clamp(1.45rem, 4.2vw, 2.2rem) !important;
	}

	body.home.ew-theme-halloween .ew-home-marquee span {
		font-size: clamp(1.65rem, 5.5vw, 2.8rem) !important;
	}
}

@media (max-width: 575.98px) {
	body.home.ew-theme-halloween .ew-home-title {
		font-size: clamp(1.25rem, 6vw, 1.8rem) !important;
	}

	body.home.ew-theme-halloween .ew-home-marquee span {
		font-size: clamp(1.5rem, 7vw, 2.25rem) !important;
	}
}

body.ew-seasonal-theme .bg-gradient-primary,
body.ew-seasonal-theme .ew-ai-popup,
body.ew-seasonal-theme .ew-audit-angle-top,
body.ew-seasonal-theme .ew-audit-angle-bottom {
	background: linear-gradient(135deg, var(--ew-seasonal-primary), var(--ew-seasonal-secondary)) !important;
}

body.ew-seasonal-theme .bg-primary {
	background-color: var(--ew-seasonal-primary) !important;
}

body.ew-seasonal-theme .bg-secondary {
	background-color: var(--ew-seasonal-secondary) !important;
}

body.ew-seasonal-theme .text-primary {
	color: var(--ew-seasonal-primary) !important;
}

body.ew-seasonal-theme .text-secondary {
	color: var(--ew-seasonal-secondary) !important;
}

body.ew-seasonal-theme .border-primary {
	border-color: var(--ew-seasonal-primary) !important;
}

body.ew-seasonal-theme .btn-primary {
	--bs-btn-bg: var(--ew-seasonal-primary);
	--bs-btn-border-color: var(--ew-seasonal-primary);
	--bs-btn-hover-bg: var(--ew-seasonal-secondary);
	--bs-btn-hover-border-color: var(--ew-seasonal-secondary);
	--bs-btn-active-bg: var(--ew-seasonal-secondary);
	--bs-btn-active-border-color: var(--ew-seasonal-secondary);
}

body.ew-seasonal-theme .btn-secondary {
	--bs-btn-bg: var(--ew-seasonal-secondary);
	--bs-btn-border-color: var(--ew-seasonal-secondary);
	--bs-btn-hover-bg: var(--ew-seasonal-primary);
	--bs-btn-hover-border-color: var(--ew-seasonal-primary);
	--bs-btn-active-bg: var(--ew-seasonal-primary);
	--bs-btn-active-border-color: var(--ew-seasonal-primary);
}

body.ew-seasonal-theme .ew-overlay-menu {
	background: var(--ew-seasonal-primary) !important;
}

body.ew-seasonal-theme .ew-overlay-testimonial-overlay {
	background: linear-gradient(135deg, rgba(var(--ew-seasonal-primary-rgb), .82), rgba(var(--ew-seasonal-secondary-rgb), .82)) !important;
}

body.ew-seasonal-theme .ew-home-copy,
body.ew-seasonal-theme .ew-home,
body.ew-seasonal-theme.home {
	background: var(--ew-seasonal-primary) !important;
}

body.ew-seasonal-theme .ew-home-mark .st0 {
	fill: var(--ew-seasonal-primary) !important;
	stroke: var(--ew-seasonal-primary) !important;
}

.ew-seasonal-controls {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 100000;
	display: flex;
	align-items: center;
	gap: .5rem;
	font-family: var(--bs-body-font-family);
}

.ew-seasonal-controls a,
.ew-seasonal-controls button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: .6rem 1rem;
	border: 2px solid #fff;
	border-radius: 50rem;
	background: var(--ew-seasonal-primary, var(--bs-primary));
	color: #fff !important;
	font-size: .85rem;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
	box-shadow: 0 .4rem 1rem rgba(0, 0, 0, .2);
	cursor: pointer;
}

.ew-seasonal-controls a:hover,
.ew-seasonal-controls button:hover {
	background: #fff;
	color: var(--ew-seasonal-primary, var(--bs-primary)) !important;
}

#halloween-video {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: none;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	pointer-events: none;
	background: #000;
}

@media (max-width: 575.98px) {
	.ew-seasonal-controls {
		right: .65rem;
		bottom: .65rem;
		flex-direction: column;
		align-items: flex-end;
	}

	.ew-seasonal-controls a,
	.ew-seasonal-controls button {
		min-height: 38px;
		padding: .5rem .8rem;
		font-size: .78rem;
	}
}

/* Halloween: rich ember / dark-red / charcoal gradients instead of flat orange blocks. */
body.ew-theme-halloween {
	--ew-halloween-gradient: linear-gradient(135deg, #a83a17 0%, #6b201c 42%, #291219 76%, #130f13 100%);
	--ew-halloween-gradient-soft: linear-gradient(135deg, #9f3918 0%, #5b1c20 58%, #211218 100%);
}
body.ew-theme-halloween .bg-primary,
body.ew-theme-halloween .bg-gradient-primary,
body.ew-theme-halloween .ew-ai-popup,
body.ew-theme-halloween .ew-audit-angle-top,
body.ew-theme-halloween .ew-audit-angle-bottom,
body.ew-theme-halloween .ew-overlay-menu,
body.ew-theme-halloween .ew-home-copy,
body.ew-theme-halloween .ew-home,
body.ew-theme-halloween.home {
	background: var(--ew-halloween-gradient) !important;
}
body.ew-theme-halloween .ew-overlay-testimonial-overlay {
	background: linear-gradient(135deg, rgba(110, 30, 23, .88), rgba(21, 13, 20, .88)) !important;
}
body.ew-theme-halloween .ew-seasonal-controls button {
	background: #552027;
	border-color: #f4ba82;
	color: #fff !important;
}
body.ew-theme-halloween .ew-seasonal-controls button:hover {
	background: #fff;
	color: #552027 !important;
}
/* Decorative only; doesn't intercept clicks, and appears only with Halloween enabled. */
.ew-halloween-pumpkin {
	position: fixed;
	left: 12px;
	bottom: 8px;
	z-index: 9999;
	width: clamp(95px, 12vw, 168px);
	pointer-events: none;
	user-select: none;
	filter: drop-shadow(0 6px 12px rgba(0, 0, 0, .23));
}
.ew-halloween-pumpkin img {
	display: block;
	width: 100%;
	height: auto;
}
@media (max-width: 575.98px) {
	.ew-halloween-pumpkin {
		left: 4px;
		bottom: 4px;
		width: 66px;
		opacity: .77;
	}
}
