:root {
	--halo-red: #b91e3f;
	--halo-red-deep: #92152f;
	--halo-gold: #f8c03a;
	--halo-cream: #fff0c9;
	--halo-ink: #111;
	--halo-muted: #544e5f;
	--halo-white: #fff;
}

body.di-menu-open { overflow: hidden; }

.di-header,
.di-header * { box-sizing: border-box; }

.di-header a:focus,
.di-header button:focus {
	outline: 0;
	box-shadow: none;
}

@media (min-width: 1101px) {
	.di-header a.di-header__menu-link:focus,
	.di-header a.di-header__menu-link:focus-visible,
	.di-header button.di-header__submenu-toggle:focus,
	.di-header button.di-header__submenu-toggle:focus-visible {
		outline: 0 !important;
		box-shadow: none !important;
	}
}

.di-header .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.di-header .screen-reader-text:focus {
	z-index: 100000;
	top: 8px;
	left: 8px;
	width: auto;
	height: auto;
	padding: 12px 16px;
	clip: auto;
	color: var(--halo-ink);
	background: var(--halo-white);
}

.di-header {
	position: relative;
	z-index: 1000;
	width: 100%;
	background: var(--halo-white);
	border-bottom: 4px solid var(--halo-gold);
	box-shadow: 0 5px 18px rgb(48 28 34 / 10%);
}

.di-header.has-feature-banner { border-bottom: 0; }

.di-header__inner {
	display: grid;
	grid-template-columns: 136px minmax(0, 1fr) 136px;
	align-items: center;
	column-gap: clamp(14px, 1.6vw, 26px);
	width: min(calc(100% - 36px), 1420px);
	min-height: 122px;
	margin-inline: auto;
	padding: 9px 0;
}

.di-header__logo {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	min-width: 0;
	color: var(--halo-red);
	text-decoration: none;
}

.di-header__logo-image {
	display: block;
	width: auto;
	height: auto;
	max-width: 136px;
	max-height: 100px;
}

.di-header__site-name { font: 400 28px/1 "Patrick Hand", cursive; }

.di-header__navigation {
	position: relative;
	min-width: 0;
}

.di-header__menu,
.di-header__menu .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.di-header__menu {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: nowrap;
	gap: 0;
}

.di-header__menu > li {
	position: relative;
	display: flex;
	align-items: center;
	min-width: 0;
}

.di-header a.di-header__menu-link {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 46px;
	padding: 8px 6px;
	color: var(--halo-ink);
	font: 600 clamp(18px, 2.42vw, 21px)/1.05 "Patrick Hand", cursive;
	letter-spacing: .008em;
	text-decoration: none;
	white-space: nowrap;
	transition: color .18s ease, background-color .18s ease;
}

.di-header__menu > li > .di-header__menu-link::after {
	position: absolute;
	z-index: 6;
	bottom: 4px;
	left: 0;
	width: calc(100% - 6px);
	height: 3px;
	content: "";
	background: var(--halo-red);
	border-radius: 2px;
	transform: scaleX(0);
	transform-origin: left center;
	transition: bottom .2s ease, height .2s ease, transform .18s ease;
}

.di-header__menu > li.current-menu-item > a.di-header__menu-link,
.di-header__menu > li.current-menu-ancestor > a.di-header__menu-link,
.di-header a.di-header__menu-link:hover { color: var(--halo-ink); }

.di-header__menu > li.current-menu-item > .di-header__menu-link::after,
.di-header__menu > li.current-menu-ancestor > .di-header__menu-link::after,
.di-header__menu > li:hover > .di-header__menu-link::after { transform: scaleX(1); }

.di-header__menu > li.menu-item-has-children:hover > .di-header__menu-link::after {
	bottom: -11px;
	height: 18px;
	border-radius: 2px 2px 0 0;
	transform: scaleX(1);
	animation: halo-nav-connect .3s ease-out forwards;
}

@keyframes halo-nav-connect {
	0% {
		bottom: 4px;
		height: 3px;
		transform: scaleX(.08);
	}

	50% {
		bottom: -11px;
		height: 18px;
		transform: scaleX(.08);
	}

	100% {
		bottom: -11px;
		height: 18px;
		transform: scaleX(1);
	}
}

.di-header__menu > li.menu-item-has-children.is-submenu-closing > .di-header__menu-link::after {
	animation: halo-nav-disconnect .15s ease-in forwards;
}

@keyframes halo-nav-disconnect {
	0% {
		bottom: -11px;
		height: 18px;
		transform: scaleX(1);
	}

	65% {
		bottom: -11px;
		height: 18px;
		transform: scaleX(.08);
	}

	100% {
		bottom: 4px;
		height: 3px;
		transform: scaleX(0);
	}
}

/* Elementor applies broad button styles; fully reset navigation controls here. */
.di-header button.di-header__submenu-toggle {
	appearance: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 22px !important;
	width: 22px !important;
	min-width: 0 !important;
	max-width: 22px !important;
	height: 40px !important;
	min-height: 0 !important;
	margin: 0 0 0 -5px !important;
	padding: 0 !important;
	color: var(--halo-ink) !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	line-height: 1 !important;
	transform: none !important;
	cursor: pointer;
}

.di-header__submenu-toggle span {
	display: block;
	width: 7px;
	height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform .18s ease;
}

.di-header__submenu-toggle[aria-expanded="true"] span { transform: translateY(2px) rotate(225deg); }

.di-header button.di-header__submenu-toggle:focus-visible { color: var(--halo-red) !important; }

.di-header__menu .sub-menu {
	position: absolute;
	top: calc(100% + 7px);
	left: 0;
	z-index: 5;
	min-width: 230px;
	padding: 7px;
	visibility: hidden;
	opacity: 0;
	background: var(--halo-white);
	border-top: 4px solid var(--halo-red);
	border-radius: 0 0 8px 8px;
	box-shadow: 0 14px 28px rgb(55 27 35 / 18%);
	transform: translateY(7px);
	transition: opacity .12s ease, visibility 0s linear .12s, transform .12s ease;
}

.di-header__menu .sub-menu::before {
	position: absolute;
	top: -11px;
	right: 0;
	left: 0;
	height: 11px;
	content: "";
}

.di-header__menu .sub-menu li {
	position: relative;
	display: flex;
	align-items: center;
	opacity: 0;
	border-bottom: 1px solid rgb(185 30 63 / 14%);
	transform: translateX(-9px);
}

.di-header__menu .sub-menu li:last-child { border-bottom: 0; }

.di-header__menu .sub-menu .di-header__menu-link {
	flex: 1;
	min-height: 42px;
	padding: 8px 11px;
	font-size: 18px;
	white-space: normal;
}

.di-header__menu .sub-menu .di-header__menu-link:hover,
.di-header__menu .sub-menu .di-header__menu-link:focus-visible {
	background: var(--halo-cream);
	border-radius: 4px;
}

.di-header__menu .sub-menu .sub-menu {
	top: -11px;
	left: calc(100% + 8px);
}

.di-header__menu li:hover > .sub-menu {
	visibility: visible;
	opacity: 1;
	transform: translateY(0);
	transition: opacity .14s ease .14s, visibility 0s linear, transform .18s ease .14s;
}

.di-header__menu li:hover > .sub-menu > li {
	animation: halo-submenu-item-in .2s ease-out both;
}

.di-header__menu li:hover > .sub-menu > li:nth-child(1) { animation-delay: .23s; }

.di-header__menu li:hover > .sub-menu > li:nth-child(2) { animation-delay: .26s; }

.di-header__menu li:hover > .sub-menu > li:nth-child(3) { animation-delay: .29s; }

.di-header__menu li:hover > .sub-menu > li:nth-child(4) { animation-delay: .32s; }

.di-header__menu li:hover > .sub-menu > li:nth-child(5) { animation-delay: .35s; }

.di-header__menu li:hover > .sub-menu > li:nth-child(6) { animation-delay: .38s; }

.di-header__menu li:hover > .sub-menu > li:nth-child(7) { animation-delay: .41s; }

.di-header__menu li:hover > .sub-menu > li:nth-child(8) { animation-delay: .44s; }

.di-header__menu li:hover > .sub-menu > li:nth-child(9) { animation-delay: .47s; }

@keyframes halo-submenu-item-in {
	from {
		opacity: 0;
		transform: translateX(-9px);
	}

	to {
		opacity: 1;
		transform: translateX(0);
	}
}

.di-header__actions {
	display: grid;
	gap: 8px;
	width: 136px;
}

.di-header a.di-header__cta {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	min-height: 40px;
	padding: 7px 12px;
	color: var(--halo-white);
	background: var(--halo-red);
	border: 2px solid var(--halo-red);
	border-radius: 8px;
	box-shadow: none;
	font: 400 18px/1 "Patrick Hand", cursive;
	letter-spacing: .01em;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transform: none;
	transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.di-header a.di-header__cta--secondary {
	color: var(--halo-red);
	background: var(--halo-white);
	border-color: var(--halo-red);
}

.di-header a.di-header__cta:hover,
.di-header a.di-header__cta:focus-visible {
	color: var(--halo-ink);
	background: var(--halo-gold);
	border-color: var(--halo-gold);
	box-shadow: none;
	transform: translateY(-1px);
}

.di-header__menu-toggle,
.di-header__mobile-actions { display: none; }

.di-header__feature-strip {
	background: var(--halo-red-deep);
	border-bottom: 4px solid var(--halo-gold);
}

.di-header a.di-header__feature-banner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: min(calc(100% - 36px), 1420px);
	min-height: 44px;
	margin-inline: auto;
	padding: 7px 18px 8px;
	color: var(--halo-white);
	text-decoration: none;
}

.di-header__feature-kicker {
	padding: 4px 9px 3px;
	color: var(--halo-red-deep);
	background: var(--halo-gold);
	border-radius: 999px;
	font: 700 11px/1.2 Preahvihear, sans-serif;
	letter-spacing: .055em;
	text-transform: uppercase;
}

.di-header__feature-message {
	font: 600 19px/1.1 "Patrick Hand", cursive;
	letter-spacing: .01em;
}

.di-header__feature-arrow {
	color: var(--halo-gold);
	font: 700 23px/1 "Patrick Hand", cursive;
	transition: transform .18s ease;
}

.di-header a.di-header__feature-banner:hover,
.di-header a.di-header__feature-banner:focus-visible {
	color: var(--halo-white);
	background: rgb(0 0 0 / 8%);
}

.di-header a.di-header__feature-banner:hover .di-header__feature-arrow,
.di-header a.di-header__feature-banner:focus-visible .di-header__feature-arrow {
	transform: translateX(4px);
}

.di-header__menu-notice {
	margin: 0;
	padding: 16px;
	font-family: Preahvihear, sans-serif;
	text-align: center;
}

@media (max-width: 1260px) and (min-width: 1101px) {
	.di-header__inner {
		grid-template-columns: 120px minmax(0, 1fr) 126px;
		column-gap: 12px;
		width: calc(100% - 24px);
	}

	.di-header__logo-image {
		max-width: 120px;
		max-height: 92px;
	}

	.di-header a.di-header__menu-link {
		padding-inline: 4px;
		font-size: 18px;
	}

	.di-header button.di-header__submenu-toggle {
		flex-basis: 18px !important;
		width: 18px !important;
		max-width: 18px !important;
		margin-left: -4px !important;
	}

	.di-header__actions { width: 126px; }
}

@media (max-width: 1100px) {
	.di-header.has-feature-banner {
		display: flex;
		flex-direction: column;
	}

	.di-header.has-feature-banner .di-header__feature-strip { order: 1; }
	.di-header.has-feature-banner .di-header__inner { order: 2; }

	.di-header__inner {
		display: grid;
		grid-template-columns: minmax(110px, 1fr) 104px auto;
		column-gap: 12px;
		width: 100%;
		min-height: 94px;
		padding: 9px 18px;
	}

	.di-header__logo-image {
		max-width: 145px;
		max-height: 76px;
	}

	.di-header__site-name { font-size: 25px; }
	.di-header__actions {
		display: grid;
		gap: 5px;
		width: 104px;
	}

	.di-header__actions a.di-header__cta {
		min-height: 31px;
		padding: 3px 8px;
		border-width: 2px;
		border-radius: 6px;
		font-size: 15px;
	}

	.di-header button.di-header__menu-toggle {
		appearance: none !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 50px !important;
		min-width: 50px !important;
		height: 50px !important;
		min-height: 50px !important;
		margin: 0 !important;
		padding: 0 !important;
		color: var(--halo-white) !important;
		background: var(--halo-red) !important;
		border: 0 !important;
		border-radius: 8px !important;
		box-shadow: none !important;
		transform: none !important;
		cursor: pointer;
	}

	.di-header__menu-icon,
	.di-header__menu-icon span { display: block; }

	.di-header__menu-icon {
		position: relative;
		width: 25px;
		height: 20px;
	}

	.di-header__menu-icon span {
		position: absolute;
		left: 0;
		width: 100%;
		height: 3px;
		background: currentColor;
		border-radius: 2px;
		transition: transform .2s ease, opacity .2s ease, top .2s ease;
	}

	.di-header__menu-icon span:nth-child(1) { top: 0; }
	.di-header__menu-icon span:nth-child(2) { top: 8px; }
	.di-header__menu-icon span:nth-child(3) { top: 16px; }
	.di-header.is-menu-open .di-header__menu-icon span:nth-child(1) { top: 8px; transform: rotate(45deg); }
	.di-header.is-menu-open .di-header__menu-icon span:nth-child(2) { opacity: 0; }
	.di-header.is-menu-open .di-header__menu-icon span:nth-child(3) { top: 8px; transform: rotate(-45deg); }

	.di-header button.di-header__menu-toggle:focus-visible { filter: brightness(.88); }

	.di-header__navigation {
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		max-height: calc(100vh - 94px);
		overflow-y: auto;
		visibility: hidden;
		opacity: 0;
		background: var(--halo-cream);
		border-top: 4px solid var(--halo-gold);
		box-shadow: 0 14px 28px rgb(0 0 0 / 20%);
		transform: translateY(-8px);
		transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
	}

	.di-header.is-menu-open .di-header__navigation {
		visibility: visible;
		opacity: 1;
		transform: translateY(0);
	}

	.di-header__mobile-actions { display: none; }

	.di-header__menu { display: block; }

	.di-header__menu > li,
	.di-header__menu .sub-menu li {
		display: grid;
		grid-template-columns: 1fr auto;
		border-bottom: 2px solid rgb(185 30 63 / 65%);
	}

	.di-header a.di-header__menu-link {
		min-height: 56px;
		padding: 10px 18px;
		font-size: 23px;
		white-space: normal;
	}

	.di-header__menu > li > .di-header__menu-link::after { display: none; }

	.di-header button.di-header__submenu-toggle {
		flex-basis: 56px !important;
		width: 56px !important;
		max-width: 56px !important;
		height: 56px !important;
		margin: 0 !important;
	}

	.di-header__menu .sub-menu,
	.di-header__menu .sub-menu .sub-menu {
		position: static;
		grid-column: 1 / -1;
		display: none;
		min-width: 0;
		padding: 0 0 0 20px;
		visibility: visible;
		opacity: 1;
		background: rgb(255 255 255 / 28%);
		border: 0;
		border-radius: 0;
		box-shadow: none;
		transform: none;
	}

	.di-header__menu .sub-menu li {
		opacity: 1;
		transform: none;
		animation: none !important;
	}

	.di-header__menu .sub-menu::before { display: none; }
	.di-header__menu li.is-submenu-open > .sub-menu { display: block; }

	.di-header__menu .sub-menu .di-header__menu-link {
		min-height: 50px;
		padding-inline: 16px;
		font-size: 20px;
	}

	.di-header a.di-header__feature-banner {
		width: 100%;
		min-height: 48px;
		padding-inline: 18px;
	}

	.di-header__feature-message { font-size: 18px; }
}

@media (max-width: 440px) {
	.di-header__inner {
		min-height: 84px;
		grid-template-columns: minmax(96px, 1fr) 92px auto;
		column-gap: 7px;
		padding-inline: 10px;
	}

	.di-header__logo-image {
		max-width: 120px;
		max-height: 66px;
	}

	.di-header__site-name { font-size: 22px; }

	.di-header button.di-header__menu-toggle {
		width: 46px !important;
		min-width: 46px !important;
		height: 46px !important;
		min-height: 46px !important;
	}

	.di-header__actions {
		gap: 4px;
		width: 92px;
	}

	.di-header__actions a.di-header__cta {
		min-height: 29px;
		padding-inline: 5px;
		font-size: 14px;
	}

	.di-header a.di-header__feature-banner {
		gap: 8px;
		min-height: 46px;
		padding: 7px 10px;
	}

	.di-header__feature-kicker {
		padding-inline: 7px;
		font-size: 10px;
	}

	.di-header__feature-message {
		font-size: 16px;
		text-align: center;
	}

	.di-header__feature-arrow { font-size: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.di-header *,
	.di-header *::before,
	.di-header *::after {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		transition-duration: .01ms !important;
	}
}
