/* Mega menu (3.3.0). Loaded only when Site Options → Header → Mega Menu is On. CUSTOM-TEMPLATE.md Part P1. */
.ct-mega-nav {
	--ct-mega-bg: var(--color-white, #fff);
	--ct-mega-text: var(--color-body, #333);
	--ct-mega-heading: var(--color-headings, #111);
	--ct-mega-link: var(--color-main, #111);
	--ct-mega-link-hover: var(--color-headings, #111);
	--ct-mega-rule: color-mix(in srgb, var(--ct-mega-text) 14%, transparent);
	--ct-mega-accent: var(--ct-mega-rule);
	--ct-mega-gap: 48px;
	--ct-mega-pad: 48px;
	--ct-mega-width: var(--section-width, 1240px);
	--ct-mega-card-width: 320px;
	--ct-mega-font-title: var(--font-titles);
	--ct-mega-shadow: 0 24px 48px -24px rgba(0,0,0,.28);
	--ct-mega-radius: 0;
}
html[data-cm-page="alt"] .ct-mega-nav {
	--ct-mega-bg: var(--cma-surface);
	--ct-mega-text: var(--cma-copy);
	--ct-mega-heading: var(--cma-title);
	--ct-mega-link: var(--cma-main);
	--ct-mega-rule: var(--cma-line);
}

.main-nav.ct-mega-nav > li.ct-mega-item { position: static; background-image: none !important; padding-right: 0 !important; }

.ct-mega-toggle {
	background: none; border: 0; padding: 0; margin: 0;
	font: inherit; letter-spacing: inherit; text-transform: inherit;
	color: var(--color-menu) !important;
	height: 40px; line-height: 40px;
	display: inline-flex; align-items: center; gap: 8px;
	cursor: pointer;
}
.ct-mega-toggle:hover,
.ct-mega-item.is-open > .ct-mega-toggle,
.ct-mega-item.current-menu-ancestor > .ct-mega-toggle,
.ct-mega-item.current-menu-parent > .ct-mega-toggle { color: var(--color-menu-hover) !important; }
.ct-mega-toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.ct-mega-chev {
	display: inline-block; width: 7px; height: 7px; flex: none;
	border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg); position: relative; top: -2px;
}
.ct-mega-item.is-open > .ct-mega-toggle .ct-mega-chev { transform: rotate(225deg); top: 1px; }

.ct-mega-panel {
	position: fixed; top: var(--ct-mega-top, 100px); left: var(--ct-mega-left, 0px);
	width: var(--ct-mega-vw, 100vw);
	max-height: var(--ct-mega-max, calc(100vh - var(--ct-mega-top, 100px))); overflow-y: auto;
	z-index: 1000;
	background: var(--ct-mega-bg); color: var(--ct-mega-text);
	border-top: 1px solid var(--ct-mega-accent); box-shadow: var(--ct-mega-shadow);
	text-align: left;
	visibility: hidden; opacity: 0; transform: translateY(8px); pointer-events: none;
}
.ct-mega-item.is-open > .ct-mega-panel { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }

@media (prefers-reduced-motion: no-preference) {
	.ct-mega-panel { transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
	.ct-mega-item.is-open > .ct-mega-panel { transition: opacity .2s ease, transform .2s ease, visibility 0s; }
	.ct-mega-chev { transition: transform .2s ease, top .2s ease; }
}
@media (prefers-reduced-motion: reduce) {
	.ct-mega-panel, .ct-mega-chev { transition: none; transform: none; }
	.ct-mega-chev { transform: rotate(45deg); }
	.ct-mega-item.is-open > .ct-mega-toggle .ct-mega-chev { transform: rotate(225deg); }
}

.ct-mega-inner {
	max-width: var(--ct-mega-width); margin: 0 auto; padding: var(--ct-mega-pad) 40px;
	display: grid; grid-template-columns: minmax(0,1fr); gap: var(--ct-mega-gap);
}
.ct-mega-inner.has-card { grid-template-columns: minmax(0,1fr) var(--ct-mega-card-width); }
.ct-mega-cols, .ct-mega-links--flat {
	display: grid; grid-template-columns: repeat(var(--ct-mega-cols), minmax(0,1fr)); gap: 28px var(--ct-mega-gap);
}
.ct-mega-links { list-style: none; margin: 0; padding: 0; }

.main-nav.ct-mega-nav .ct-mega-panel li {
	display: block; float: none; margin: 0 !important; padding: 0; font-size: 16px !important;
	text-transform: none !important; letter-spacing: 0 !important; text-align: left; position: static;
	background: none !important; border: 0 !important;
}
.main-nav.ct-mega-nav .ct-mega-panel a {
	height: auto !important; line-height: 1.35 !important; text-shadow: none !important; padding: 0;
	background: none !important; display: block;
}

.main-nav.ct-mega-nav.ct-mega-nav .ct-mega-panel li .ct-mega-heading {
	font-family: var(--ct-mega-font-title); font-size: 18px; font-weight: 600 !important;
	color: var(--ct-mega-heading) !important;
	padding-bottom: 12px; margin-bottom: 14px; border-bottom: 1px solid var(--ct-mega-rule);
	display: block;
}
.main-nav.ct-mega-nav.ct-mega-nav .ct-mega-panel li .ct-mega-heading + .ct-mega-desc { margin-top: -6px; margin-bottom: 10px; }
/* Specificity beats the header's `.main-nav li a` color rules (also current-item and :hover variants) on every header option. */
.main-nav.ct-mega-nav.ct-mega-nav .ct-mega-panel li .ct-mega-link { color: var(--ct-mega-link) !important; padding: 6px 0 !important; }
.main-nav.ct-mega-nav.ct-mega-nav .ct-mega-panel li .ct-mega-link:hover, .main-nav.ct-mega-nav.ct-mega-nav .ct-mega-panel li .ct-mega-link:focus-visible { color: var(--ct-mega-link-hover) !important; text-decoration: underline; text-underline-offset: 4px; }
.ct-mega-link:focus-visible, .ct-mega-heading:focus-visible, .ct-mega-overview:focus-visible, .ct-mega-card:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.ct-mega-label { display: block; }
.ct-mega-desc {
	display: block; font-size: 14px; line-height: 1.4;
	color: color-mix(in srgb, var(--ct-mega-text) 78%, transparent); margin-top: 2px;
}
.main-nav.ct-mega-nav.ct-mega-nav .ct-mega-panel li .ct-mega-overview {
	font-family: var(--ct-mega-font-title); font-size: 15px; font-weight: 600 !important; margin-bottom: 24px;
	color: var(--ct-mega-link) !important;
}
.main-nav.ct-mega-nav.ct-mega-nav .ct-mega-panel li .ct-mega-overview:hover { color: var(--ct-mega-link-hover) !important; }

.main-nav.ct-mega-nav.ct-mega-nav .ct-mega-panel li .ct-mega-card { display: flex; flex-direction: column; gap: 10px; color: var(--ct-mega-text) !important; text-decoration: none; }
.ct-mega-card-media { display: block; aspect-ratio: 4/3; overflow: hidden; border-radius: var(--ct-mega-radius); }
.ct-mega-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ct-mega-card-title { display: block; font-family: var(--ct-mega-font-title); font-size: 20px; line-height: 1.25; color: var(--ct-mega-heading); }
.ct-mega-card-text { display: block; font-size: 15px; line-height: 1.4; }
.ct-mega-card-cta { display: block; font-size: 15px; font-weight: 600; color: var(--ct-mega-link); }

@media (max-width: 1100px) {
	.ct-mega-inner.has-card { grid-template-columns: minmax(0,1fr) 260px; }
	.ct-mega-cols, .ct-mega-links--flat { grid-template-columns: repeat(min(var(--ct-mega-cols), 3), minmax(0,1fr)); }
}
@media (max-width: 880px) {
	.ct-mega-panel { display: none !important; }
}

/* No-JS fallback: hover and focus open a smaller panel under the item. */
html:not(.ct-mega-ready) .main-nav.ct-mega-nav > li.ct-mega-item { position: relative; }
html:not(.ct-mega-ready) .ct-mega-item:hover > .ct-mega-panel,
html:not(.ct-mega-ready) .ct-mega-item:focus-within > .ct-mega-panel {
	visibility: visible; opacity: 1; transform: none; pointer-events: auto;
	position: absolute; top: 100%; left: 0; width: min(900px, 90vw);
}
