/* Background video for hero banner */
/* Keep viewport height on root but only hide overflow on body to avoid double scrollbars */
html { height: 100%; }
body { min-height: 100%; margin: 0; overflow-x: hidden; }
#ed-843900774 { min-height: 100vh; height: 100vh; position: relative; display: flex; flex-direction: column; margin: 0; }
#ed-843900774 .background { position: absolute; inset: 0; overflow: hidden; z-index: 1; }
#ed-843900774 .background .bg-video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
/* Letterbox fallback ensures tall videos keep their subtitles visible */
#ed-843900774.hero-video-letterbox .background { background-color: #000; }
#ed-843900774.hero-video-letterbox .background .bg-video { object-fit: contain; object-position: center center; background-color: #000; }
/* Speaker icon toggle mirrors left logo placement */
.hero-audio-control { position: fixed; top: 16px; right: 50px; z-index: 2000; pointer-events: auto; }
#hero-audio-toggle { background: transparent; border: none; padding: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; pointer-events: auto; }
#hero-audio-toggle img { width: 75px; height: 75px; border-radius: 100%; display: block; transition: opacity 0.3s ease, transform 0.3s ease, filter 0.3s ease; }
#hero-audio-toggle[data-muted="true"] img { opacity: 0.55; filter: grayscale(1); transform: scale(0.95); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
/* Ensure content shows without inline styles under strict CSP */
.animation-initial { opacity: 1 !important; }

/* Hide unintended duplicate hero to prevent extra scroll height */
.banner + .banner { display: none !important; }

/* Hide any image background inside the hero; video should be sole background */
#ed-843900774 .wv-bg { display: none !important; }

/* Simple static menu bar (no JS, no jQuery) */
.menu-wrapper { position: fixed; top: 0; left: 0; right: 0; z-index: 3; background: rgba(0,0,0,0.4); padding: 0.5rem 0; }
.menu-wrapper .inner { display: flex; align-items: center; justify-content: center; gap: 3rem; }
.ed-menu ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.5rem; }
.ed-menu a { color: #ffffff; text-decoration: none; font-weight: 600; }
.ed-menu a:hover, .ed-menu a:focus { text-decoration: underline; }

/* Ensure banner text doesn't hide under fixed menu */
#ed-843900774 header.inner {
	flex: 1;
	display: flex;
	flex-direction: column;
}

#ed-843900774 .banner-content {
	padding-top: 5rem;
	position: relative;
	z-index: 2;
	margin-top: auto;
	padding-bottom: clamp(8vh, 14vh, 18vh);
}

@media (max-width: 640px) {
	#ed-843900774 .banner-content {
		padding-bottom: clamp(6vh, 10vh, 12vh);
	}
}

/* Keep CCS badge visible on video background */
.hero-ccs-badge {
	position: fixed;
	top: 16px;
	left: clamp(110px, 12vw, 240px); /* sits between logo (50px) and centered menu */
	z-index: 4;
	display: flex;
	justify-content: center;
}
.hero-ccs-badge img {
	width: min(172px, 28vw); /* roughly half of the image's native 344px width */
	height: auto;
	display: block;
}

@media (max-width: 640px) {
	.hero-ccs-badge {
		position: fixed;
		top: 16px;
		left: 50%;
		transform: translateX(-50%);
		justify-content: center;
		margin: 0;
		z-index: 4;
	}
}

/* Responsive tweaks for smaller screens */
@media (max-width: 768px) {
	.menu-wrapper .inner { flex-direction: column; align-items: center; gap: 0.5rem; }
	.ed-menu ul { flex-wrap: wrap; justify-content: center; }
}

/* Position the animated logo 50px from the left */
#ed-843900783 { position: fixed; top: 16px; left: 50px; z-index: 4; }
#ed-843900783 h1, #ed-843900783 img { margin: 0; padding: 0; display: block; }
#ed-843900783 img {
	width: clamp(68px, 7vw, 90px);
	height: auto;
	max-width: 100%;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.35);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
	background: #000;
	object-fit: cover;
}
