/*
 * Behaviour for the V4 header (and later other V4 blocks) that Elementor's V4
 * classes cannot express: showing a dropdown when its menu item is hovered,
 * pseudo-elements and the mobile menu. Looks (colours, sizes, spacing) stay in
 * the V4 global classes so they can be edited in Elementor.
 *
 * Every selector starts at an hzd-* class, so V3 pages are unaffected.
 * V4 class rules are ".elementor .hzd-x"; these use at least the same weight.
 */

/*
 * The header follows the page as it scrolls, below the WordPress admin bar
 * when one is shown. Once the page has scrolled, or while the pointer is over
 * it, the whole bar (logo included) is frosted (Chris, 2026-10-29).
 */
.elementor .hzd-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	transition: background-color 0.3s, box-shadow 0.3s;
}

.elementor .hzd-header:hover,
.elementor .hzd-header.hzd-scrolled {
	background-color: rgba(255, 255, 255, 0.78);
	box-shadow: 5px 10px 30px 0 rgba(0, 0, 0, 0.25);
	-webkit-backdrop-filter: blur(30px);
	backdrop-filter: blur(30px);
}

/*
 * A sticky element only moves inside its parent. When the header sits in a
 * Theme Builder header template (live pages) or in a page wrapper (drafts and
 * the sandbox), that parent is exactly as tall as the header, so the wrapper
 * itself has to stick.
 */
.elementor-location-header:has(.hzd-header),
.elementor[data-elementor-type="wp-page"] > .e-con:has(.hzd-header) {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}

/* On narrow phones the admin bar scrolls away, so stick to the very top. */
@media (max-width: 600px) {
	.elementor .hzd-header,
	.elementor-location-header:has(.hzd-header),
	.elementor[data-elementor-type="wp-page"] > .e-con:has(.hzd-header) {
		top: 0;
	}
}

/* Desktop: open a mega panel on hover, keyboard focus or click. */
@media (min-width: 1025px) {
	.elementor .hzd-menu-item:hover > .hzd-mega,
	.elementor .hzd-menu-item:focus-within > .hzd-mega,
	.elementor .hzd-menu-item.hzd-item-open > .hzd-mega {
		display: flex;
	}
}

/*
 * Small laptops: tighter titles so the menu stays on one line, as the live
 * site's child theme does for the V3 menu (padding-inline 9px, 1025-1170px).
 */
@media (min-width: 1025px) and (max-width: 1170px) {
	.elementor .hzd-nav .hzd-menu-link {
		padding-left: 9px;
		padding-right: 9px;
	}
}

/* Chevron after a menu title that has a panel (10px, like the V3 menu). */
.elementor .hzd-has-mega::after {
	content: "";
	width: 5px;
	height: 5px;
	margin: -3px 1.5px 0 8.5px;
	border: solid currentColor;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
	transition: transform 0.3s ease;
}

.elementor .hzd-menu-item:hover > .hzd-has-mega::after,
.elementor .hzd-menu-item.hzd-item-open > .hzd-has-mega::after {
	margin-top: 3px;
	transform: rotate(-135deg);
}

/* Menu titles turn orange while their item is hovered, focused or open; the
   chevron follows through currentColor. */
.elementor .hzd-menu-link {
	transition: color 0.3s;
}

.elementor .hzd-menu-item:hover > .hzd-menu-link,
.elementor .hzd-menu-item:focus-within > .hzd-menu-link,
.elementor .hzd-menu-item.hzd-item-open > .hzd-menu-link {
	color: #E14D1E;
}

/* Links inside the mega panels, including linked column headings. */
.elementor .hzd-mega-link,
.elementor .hzd-mega-head {
	transition: color 0.3s;
}

.elementor .hzd-mega-link:hover,
.elementor .hzd-mega-link:focus-within,
.elementor .hzd-mega-head:has(a):hover,
.elementor .hzd-mega-head:has(a):focus-within {
	color: #E14D1E;
}

/* An arrow fades in to the left of a hovered panel link, inside the column's
   20px padding so the text does not move (the live child theme's ➔ effect). */
.elementor .hzd-mega-link {
	position: relative;
}

.elementor .hzd-mega-link::before {
	content: "➔";
	position: absolute;
	right: 100%;
	margin-right: 4px;
	font-size: 14px;
	opacity: 0;
	transform: translateX(-5px);
	transition: opacity 0.3s ease, transform 0.3s ease;
	pointer-events: none;
}

.elementor .hzd-mega-link:hover::before,
.elementor .hzd-mega-link:focus-within::before {
	opacity: 1;
	transform: translateX(0);
}

/* Gradient line under the first column's heading, drawn on hover. */
.elementor .hzd-mega-head::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 0;
	height: 2px;
	background: linear-gradient(90deg, #FFB272 0%, #FF4715 34%, #1649E2 67%, #263E73 100%);
	transition: width 0.4s ease;
}

.elementor .hzd-mega-col:first-child:hover .hzd-mega-head::after {
	width: 100%;
}

/* Hamburger icon, drawn in CSS so it needs no uploaded image. */
.elementor .hzd-burger {
	background:
		linear-gradient(currentColor, currentColor) 0 3px / 100% 2px no-repeat,
		linear-gradient(currentColor, currentColor) 0 9px / 100% 2px no-repeat,
		linear-gradient(currentColor, currentColor) 0 15px / 100% 2px no-repeat;
}

.elementor .hzd-header.hzd-open .hzd-burger {
	background:
		linear-gradient(45deg, transparent 45%, currentColor 45%, currentColor 55%, transparent 55%),
		linear-gradient(-45deg, transparent 45%, currentColor 45%, currentColor 55%, transparent 55%);
}

/* Tablet and phone: the menu opens below the header as a stacked list. */
@media (max-width: 1024px) {
	/* The list spans the whole header, not just the area right of the logo. */
	.elementor .hzd-header.hzd-open .hzd-header-right {
		position: static;
	}

	.elementor .hzd-header.hzd-open .hzd-nav {
		display: flex;
		flex-direction: column;
		flex-wrap: nowrap;
		justify-content: flex-start;
		align-items: stretch;
		position: absolute;
		/* Hangs from the bottom of the 20px toggle, as the V3 menu does. */
		top: calc(50% + 10px);
		left: -1px;
		right: -1px;
	}

	.elementor .hzd-header.hzd-open .hzd-menu-item {
		flex-direction: column;
		align-items: stretch;
	}

	.elementor .hzd-header.hzd-open .hzd-menu-link {
		justify-content: flex-end;
		padding: 8px 16px;
		background: #fff;
	}

	.elementor .hzd-header.hzd-open .hzd-menu-item.hzd-item-open > .hzd-mega {
		display: flex;
		position: static;
		flex-direction: column;
		width: 100%;
	}

	.elementor .hzd-header.hzd-open .hzd-mega-col {
		width: 100%;
	}
}

/*
 * Logo strip (home page): the logos scroll left without end, as on the V3
 * page (100s per loop). hzd-ui.js repeats the logos once and then adds
 * hzd-marquee-ready, so the loop has no gap; 36px is half the 72px gap.
 */
@keyframes hzd-marquee {
	to {
		transform: translateX(calc(-50% - 36px));
	}
}

.elementor .hzd-marquee-track.hzd-marquee-ready {
	animation: hzd-marquee 100s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
	.elementor .hzd-marquee-track.hzd-marquee-ready {
		animation: none;
	}
}

/*
 * Icons the V3 home page drew with Font Awesome (check and arrow in a circle,
 * plus and minus). The element's background colour (set in its V4 class)
 * fills the shape.
 */
.elementor .hzd-icon-check,
.elementor .hzd-list-icon {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.elementor .hzd-icon-arrow {
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* FAQ: an orange plus in a pale square, a minus while the answer is open. */
.elementor .hzd-faq-icon > * {
	display: none;
}

.elementor .hzd-faq-icon::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 12px;
	height: 14px;
	background-color: #E14D1E;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.elementor details[open] .hzd-faq-icon {
	transform: none;
}

.elementor details[open] .hzd-faq-icon::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z'/%3E%3C/svg%3E");
}

/*
 * Testimonial slider: hzd-ui.js moves the row of slides (every 3 seconds, as
 * on the V3 page) and underlines the active client's logo in that client's
 * colour (--hzd-accent, set on each logo).
 */
.elementor .hzd-slide {
	transform: translateX(calc(-100% * var(--hzd-index, 0)));
	transition: transform 0.3s ease;
}

.elementor .hzd-slider-tab.hzd-active {
	border-bottom-color: var(--hzd-accent);
}

.hzd-posts-dots button {
	width: 27px;
	height: 3px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: #FFFFFF;
	opacity: 0.5;
	cursor: pointer;
}

.hzd-posts-dots button.hzd-active {
	opacity: 1;
}

/*
 * Latest articles: six newest posts in "Latest article", printed by the
 * snippet in place of the #hzd-latest-posts marker. Three at a time (two on
 * tablets, one on phones), moving every 5 seconds, as on the V3 page. Unlike
 * V3, the cards are all the same height (Chris, 2026-10-29).
 */
.hzd-posts {
	overflow: hidden;
}

.hzd-posts-track {
	display: flex;
	gap: 10px;
	transition: transform 0.5s ease;
}

.hzd-post {
	display: flex;
	flex-direction: column;
	flex: 0 0 calc((100% - 20px) / 3);
	padding: 0 10px;
}

@media (max-width: 1024px) {
	.hzd-post {
		flex-basis: calc((100% - 10px) / 2);
	}
}

@media (max-width: 767px) {
	.hzd-post {
		flex-basis: 100%;
	}
}

.hzd-post-image img {
	display: block;
	width: 100%;
	height: 263px;
	object-fit: cover;
	border-radius: 8px 8px 0 0;
}

/* Every card is as tall as the tallest one; the title area fills the rest. */
.hzd-post-body {
	flex: 1;
	margin-top: -1px;
	padding: 30px;
	background: rgba(28, 41, 78, 0.03);
	border-radius: 0 0 8px 8px;
}

.hzd-post-title {
	margin: 0;
	font-family: Inter, sans-serif;
	font-size: 24px;
	line-height: 28.8px;
	font-weight: 500;
}

.hzd-post-title a {
	color: #1C294E;
}

@media (max-width: 767px) {
	.hzd-post-body {
		padding: 20px;
	}

	.hzd-post-title {
		font-size: 20px;
		line-height: 24px;
	}
}

.hzd-posts-dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 16px;
}

.hzd-posts-dots button {
	width: 30px;
	height: 2px;
	background: #000000;
	opacity: 0.2;
}

/*
 * Purple glow behind the starburst (the V3 [fountain_animation] glow). Kept
 * here because Elementor's style converter breaks radial gradients.
 */
.elementor .hzd-starburst-glow {
	background: radial-gradient(circle, #5435E385 40%, #5435E3EB 60%, #001AA300 120%);
}

/*
 * Stats row: a short divider between stats, as on the V3 page (1px, 40px
 * tall, white at 34%, 11px right of each stat). Not on phones, where the
 * stats stack.
 */
.elementor .hzd-stat-col:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -11px;
	width: 1px;
	height: 40px;
	margin-top: -20px;
	background: rgba(255, 255, 255, 0.34);
}

@media (max-width: 767px) {
	.elementor .hzd-stat-col:not(:last-child)::after {
		display: none;
	}
}

/*
 * Starburst colour themes, chosen with the picker that hzd-starburst.js adds.
 * The theme (data-hzd-theme, plus hzd-theme-light for the five light ones)
 * is set on the starburst band and on every .hzd-theme-scope block (the
 * stats band above), so the whole section changes together. Night is
 * today's navy look; the light themes use the brand palette: navy, orange,
 * blue #0048FC, amber and the purples of the ribbons.
 */
.elementor .hzd-starburst,
.elementor .hzd-theme-scope {
	--hzd-theme-accent: #1C294E;
	transition: background-color 0.4s ease;
}

.elementor .hzd-starburst .hzd-starburst-glow {
	transition: background 0.4s ease;
}

.elementor .hzd-starburst[data-hzd-theme="predawn"],
.elementor .hzd-theme-scope[data-hzd-theme="predawn"] {
	--hzd-theme-accent: #6C43B8;
	background-color: #F8F6FE;
}

.elementor .hzd-starburst[data-hzd-theme="predawn"] .hzd-starburst-glow {
	background: radial-gradient(circle, #B38AFFB3 30%, #B38AFF66 55%, #B38AFF00 85%);
}

.elementor .hzd-starburst[data-hzd-theme="sunrise"],
.elementor .hzd-theme-scope[data-hzd-theme="sunrise"] {
	--hzd-theme-accent: #1649E2;
	background-color: #FFF9F4;
}

.elementor .hzd-starburst[data-hzd-theme="sunrise"] .hzd-starburst-glow {
	background: radial-gradient(circle, #FF8800B3 25%, #FFB27266 55%, #FFB27200 85%);
}

.elementor .hzd-starburst[data-hzd-theme="daytime"],
.elementor .hzd-theme-scope[data-hzd-theme="daytime"] {
	--hzd-theme-accent: #0048FC;
	background-color: #F5F9FF;
}

.elementor .hzd-starburst[data-hzd-theme="daytime"] .hzd-starburst-glow {
	background: radial-gradient(circle, #0048FC80 25%, #6E9BFF4D 55%, #6E9BFF00 85%);
}

.elementor .hzd-starburst[data-hzd-theme="dusk"],
.elementor .hzd-theme-scope[data-hzd-theme="dusk"] {
	--hzd-theme-accent: #263E73;
	background-color: #F7F9FC;
}

.elementor .hzd-starburst[data-hzd-theme="dusk"] .hzd-starburst-glow {
	background: radial-gradient(circle, #FFB272CC 20%, #6E9BFF80 50%, #6E9BFF00 85%);
}

.elementor .hzd-starburst[data-hzd-theme="sunset"],
.elementor .hzd-theme-scope[data-hzd-theme="sunset"] {
	--hzd-theme-accent: #6C43B8;
	background-color: #FFF8F0;
}

.elementor .hzd-starburst[data-hzd-theme="sunset"] .hzd-starburst-glow {
	background: radial-gradient(circle, #FF4715B3 20%, #FF800080 50%, #FF800000 85%);
}

/*
 * Holiday palettes (Chris, 2026-10-29): one per month, chosen automatically
 * by hzd-starburst.js. Dark ones keep Night's white text; light ones use the
 * light-theme colours below.
 */
.elementor .hzd-starburst[data-hzd-theme="newyear"],
.elementor .hzd-theme-scope[data-hzd-theme="newyear"] {
	--hzd-theme-accent: #F5C542;
	background-color: #0B1330;
}

.elementor .hzd-starburst[data-hzd-theme="newyear"] .hzd-starburst-glow {
	background: radial-gradient(circle, #F5C542B3 20%, #C9A22766 50%, #C9A22700 85%);
}

.elementor .hzd-starburst[data-hzd-theme="valentines"],
.elementor .hzd-theme-scope[data-hzd-theme="valentines"] {
	--hzd-theme-accent: #C2185B;
	background-color: #FFF5F8;
}

.elementor .hzd-starburst[data-hzd-theme="valentines"] .hzd-starburst-glow {
	background: radial-gradient(circle, #FF4D7DB3 20%, #FFB3C780 50%, #FFB3C700 85%);
}

.elementor .hzd-starburst[data-hzd-theme="stpatricks"],
.elementor .hzd-theme-scope[data-hzd-theme="stpatricks"] {
	--hzd-theme-accent: #00752A;
	background-color: #F3FBF5;
}

.elementor .hzd-starburst[data-hzd-theme="stpatricks"] .hzd-starburst-glow {
	background: radial-gradient(circle, #24FF62A0 20%, #00962B66 50%, #00962B00 85%);
}

.elementor .hzd-starburst[data-hzd-theme="easter"],
.elementor .hzd-theme-scope[data-hzd-theme="easter"] {
	--hzd-theme-accent: #8A63D2;
	background-color: #FBF8FF;
}

.elementor .hzd-starburst[data-hzd-theme="easter"] .hzd-starburst-glow {
	background: radial-gradient(circle, #FFB3D1E6 20%, #C9B6FFB3 50%, #B8F2E600 85%);
}

.elementor .hzd-starburst[data-hzd-theme="memorial"],
.elementor .hzd-theme-scope[data-hzd-theme="memorial"] {
	--hzd-theme-accent: #FFFFFF;
	background-color: #1C294E;
}

.elementor .hzd-starburst[data-hzd-theme="memorial"] .hzd-starburst-glow {
	background: radial-gradient(circle, #C8102E80 20%, #3C5BD866 50%, #3C5BD800 85%);
}

.elementor .hzd-starburst[data-hzd-theme="summer"],
.elementor .hzd-theme-scope[data-hzd-theme="summer"] {
	--hzd-theme-accent: #0077A8;
	background-color: #FFFBEF;
}

.elementor .hzd-starburst[data-hzd-theme="summer"] .hzd-starburst-glow {
	background: radial-gradient(circle, #FFD23FCC 20%, #FF880080 45%, #48CAE433 70%, #48CAE400 90%);
}

.elementor .hzd-starburst[data-hzd-theme="july4"],
.elementor .hzd-theme-scope[data-hzd-theme="july4"] {
	--hzd-theme-accent: #FFFFFF;
	background-color: #0A1A3F;
}

.elementor .hzd-starburst[data-hzd-theme="july4"] .hzd-starburst-glow {
	background: radial-gradient(circle, #E0162B99 20%, #3C5BD880 50%, #3C5BD800 85%);
}

.elementor .hzd-starburst[data-hzd-theme="labor"],
.elementor .hzd-theme-scope[data-hzd-theme="labor"] {
	--hzd-theme-accent: #1C294E;
	background-color: #F7F9FC;
}

.elementor .hzd-starburst[data-hzd-theme="labor"] .hzd-starburst-glow {
	background: radial-gradient(circle, #FF8000A0 20%, #1649E266 50%, #1649E200 85%);
}

.elementor .hzd-starburst[data-hzd-theme="halloween"],
.elementor .hzd-theme-scope[data-hzd-theme="halloween"] {
	--hzd-theme-accent: #FF7518;
	background-color: #140C22;
}

.elementor .hzd-starburst[data-hzd-theme="halloween"] .hzd-starburst-glow {
	background: radial-gradient(circle, #FF7518B3 20%, #6C43B880 50%, #6C43B800 85%);
}

.elementor .hzd-starburst[data-hzd-theme="thanksgiving"],
.elementor .hzd-theme-scope[data-hzd-theme="thanksgiving"] {
	--hzd-theme-accent: #8B4513;
	background-color: #FFF7EC;
}

.elementor .hzd-starburst[data-hzd-theme="thanksgiving"] .hzd-starburst-glow {
	background: radial-gradient(circle, #E9A23BCC 20%, #D2691E80 50%, #D2691E00 85%);
}

.elementor .hzd-starburst[data-hzd-theme="christmas"],
.elementor .hzd-theme-scope[data-hzd-theme="christmas"] {
	--hzd-theme-accent: #FFFFFF;
	background-color: #0F2A1D;
}

.elementor .hzd-starburst[data-hzd-theme="christmas"] .hzd-starburst-glow {
	background: radial-gradient(circle, #C8102EB3 20%, #1F7A3E80 50%, #1F7A3E00 85%);
}

/* Light themes: the navy section's text, cards, lines and dividers turn to
   the site's light-section colours. Stat titles stay orange. */
.elementor .hzd-theme-light > .hzd-box {
	border-left-color: #E5EDF4;
	border-right-color: #E5EDF4;
}

.elementor .hzd-theme-light .hzd-h2,
.elementor .hzd-theme-light .hzd-card-title,
.elementor .hzd-theme-light .hzd-stat-col > :first-child {
	color: #1C294E;
	transition: color 0.4s ease;
}

.elementor .hzd-theme-light .hzd-lead,
.elementor .hzd-theme-light .hzd-body {
	color: #64748D;
	transition: color 0.4s ease;
}

.elementor .hzd-theme-light div:has(> .hzd-feature-icon) {
	background-color: rgba(255, 255, 255, 0.7);
	border-color: rgba(28, 41, 78, 0.1);
}

.elementor .hzd-theme-light div:has(> .hzd-stat-col) {
	border-top-color: rgba(28, 41, 78, 0.1);
	border-bottom-color: rgba(28, 41, 78, 0.1);
}

.elementor .hzd-theme-light .hzd-stat-col:not(:last-child)::after {
	background: rgba(28, 41, 78, 0.2);
}

/* The picker: a small square button; the list opens below it. */
.hzd-theme-picker {
	position: absolute;
	top: 30px;
	right: 30px;
	z-index: 2;
	pointer-events: auto;
	font-family: Inter, sans-serif;
}

/* Selectors start at .hzd-theme-picker so the theme's button:hover pink loses. */
.hzd-theme-picker .hzd-theme-toggle,
.hzd-theme-picker .hzd-theme-toggle:hover,
.hzd-theme-picker .hzd-theme-toggle:focus {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 1px solid rgba(28, 41, 78, 0.12);
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.7);
	color: var(--hzd-theme-accent);
	cursor: pointer;
}

.hzd-theme-menu {
	display: none;
	position: absolute;
	top: 40px;
	right: 0;
	min-width: 124px;
	padding: 6px;
	border: 1px solid rgba(28, 41, 78, 0.12);
	border-radius: 8px;
	background: #FFFFFF;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
}

.hzd-theme-picker.hzd-open .hzd-theme-menu {
	display: block;
}

/* Long lists (with the holiday preview) scroll inside the starburst band. */
.hzd-theme-menu {
	max-height: 400px;
	overflow-y: auto;
}

.hzd-theme-picker .hzd-theme-menu-heading {
	margin: 6px 0 2px;
	padding: 6px 8px 2px;
	border-top: 1px solid rgba(28, 41, 78, 0.12);
	color: var(--hzd-theme-accent);
	font: 600 11px/16px Inter, sans-serif;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	opacity: 0.7;
}

.hzd-starburst.hzd-theme-dark .hzd-theme-picker .hzd-theme-menu-heading {
	border-top-color: rgba(255, 255, 255, 0.2);
	color: #FFFFFF;
}

.hzd-theme-picker .hzd-theme-menu button,
.hzd-theme-picker .hzd-theme-menu button:hover,
.hzd-theme-picker .hzd-theme-menu button:focus {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	padding: 6px 8px;
	border: 0;
	border-radius: 4px;
	background: transparent;
	color: var(--hzd-theme-accent);
	font: 500 14px/20px Inter, sans-serif;
	text-align: left;
	white-space: nowrap;
	cursor: pointer;
}

.hzd-theme-picker .hzd-theme-menu button:hover,
.hzd-theme-picker .hzd-theme-menu button:focus-visible,
.hzd-theme-picker .hzd-theme-menu button[aria-checked="true"] {
	background: rgba(28, 41, 78, 0.06);
}

/* Night and the dark holidays: the button and list are translucent white. */
.hzd-starburst.hzd-theme-dark .hzd-theme-picker .hzd-theme-toggle,
.hzd-starburst.hzd-theme-dark .hzd-theme-picker .hzd-theme-toggle:hover,
.hzd-starburst.hzd-theme-dark .hzd-theme-picker .hzd-theme-toggle:focus {
	border-color: rgba(255, 255, 255, 0.25);
	background: rgba(255, 255, 255, 0.08);
	color: #FFFFFF;
}

.hzd-starburst[data-hzd-theme="night"] .hzd-theme-menu {
	border-color: rgba(255, 255, 255, 0.2);
	background: rgba(28, 41, 78, 0.85);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

.hzd-starburst.hzd-theme-dark .hzd-theme-picker .hzd-theme-menu button {
	color: #FFFFFF;
}

.hzd-starburst.hzd-theme-dark .hzd-theme-picker .hzd-theme-menu button:hover,
.hzd-starburst.hzd-theme-dark .hzd-theme-picker .hzd-theme-menu button:focus-visible,
.hzd-starburst.hzd-theme-dark .hzd-theme-picker .hzd-theme-menu button[aria-checked="true"] {
	background: rgba(255, 255, 255, 0.12);
}

@media (max-width: 767px) {
	.hzd-theme-picker {
		top: 15px;
		right: 15px;
	}
}
