/* ========== Title & header (keep) ========== */
.page .entry-title {
	font-size: 24px;
	font-weight: 600;
	margin-bottom: 15px;
}

.site-header {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

/* ========== Sticky top header & primary menu ========== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 9999;
	background: inherit;
}

/* For block-based navigation (WordPress menus) */
.wp-site-blocks > header,
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 9999;
}

/* ========== Sticky header: prevent overlap with content ========== */
/* 1) Make the sticky bar opaque (no see-through overlap) */
.site-header,
.wp-site-blocks > header,
header.wp-block-template-part {
	background-color: #d7e8e5 !important;
/* match your page tint */
	box-shadow: 0 2px 0 rgba(0,0,0,.08);
}

/* 2) Push the page content down so it never sits under the sticky bar */
.site-content,
#content,
main {
	padding-top: 64px;
/* adjust: 56 / 64 / 72 depending on your header height */
}

/* ========== Anchor offset for sticky header ========== */
:target {
	scroll-margin-top: 72px;
/* must be >= sticky header height */
}

/* ========== Right-side menu: fix overflow, pin, and scroll ========== */
@media (min-width:782px) {
	/* Catch ALL common navigation overlay wrappers */
	body .wp-block-navigation__responsive-container.is-menu-open,
					  body .wp-block-navigation__responsive-container-open,
					  body .wp-block-navigation__responsive-container-content,
					  body .wp-block-navigation__responsive-dialog,
					  body .main-navigation.toggled-on > ul,
					  body #site-navigation.toggled-on > ul,
					  body .navigation-top.toggled-on > ul {
		width: 520px !important;
		max-width: 520px !important;
		position: fixed !important;
	/* pin to viewport */
		top: 20px !important;
		right: 20px !important;
		left: auto !important;
		bottom: auto !important;
		max-height: calc(100vh - 40px) !important;
	/* keep on-screen */
		overflow-y: auto !important;
	/* scroll long menus */
		z-index: 99999 !important;
		background: #fff !important;
	/* ensure solid background */
		box-shadow: 0 12px 40px rgba(0,0,0,.18);
	/* (visual cue) */
	}
	
	/* Inner containers that sometimes hold the scrollable content */
	body .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content,
					  body .wp-block-navigation__responsive-dialog .wp-block-navigation__container,
					  body .wp-block-navigation__responsive-container .wp-block-navigation__container {
		max-height: inherit !important;
		overflow-y: auto !important;
	}
	
	/* Menu item spacing (slightly tighter) */
	body .wp-block-navigation__responsive-container .wp-block-navigation__container a,
					  body .main-navigation.toggled-on a,
					  body #site-navigation.toggled-on a,
					  body .navigation-top.toggled-on a {
		line-height: 1.25 !important;
		padding: 8px 16px !important;
		font-size: 15px !important;
	/* drop to 14px if items still wrap */
		white-space: normal !important;
	}
	
	/* Remove gaps between items */
	body .wp-block-navigation__responsive-container .wp-block-navigation__container li,
					  body .main-navigation.toggled-on li,
					  body #site-navigation.toggled-on li,
					  body .navigation-top.toggled-on li {
		margin: 0 !important;
	}
}

/* Optional: nicer scrollbar for long lists (WebKit) */
.wp-block-navigation__responsive-container-content::-webkit-scrollbar,
.wp-block-navigation__responsive-dialog::-webkit-scrollbar,
.main-navigation.toggled-on > ul::-webkit-scrollbar {
	width: 8px;
}

.wp-block-navigation__responsive-container-content::-webkit-scrollbar-thumb,
.wp-block-navigation__responsive-dialog::-webkit-scrollbar-thumb,
.main-navigation.toggled-on > ul::-webkit-scrollbar-thumb {
	border-radius: 8px;
	background: rgba(0,0,0,.25);
}

/* ========== Menu hierarchy: bold submenu category headings ========== */

/* Block-based WordPress navigation */
.wp-block-navigation__submenu-container > .wp-block-navigation-item.has-child > .wp-block-navigation-item__content,
.wp-block-navigation__submenu-container > .wp-block-navigation-submenu > .wp-block-navigation-item__content {
	font-weight: 700 !important;
}

/* Classic WordPress navigation fallback */
.main-navigation .sub-menu > .menu-item-has-children > a,
#site-navigation .sub-menu > .menu-item-has-children > a,
.navigation-top .sub-menu > .menu-item-has-children > a {
	font-weight: 700 !important;
}

/* Keep the actual sub-submenu links at normal weight */
.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.main-navigation .sub-menu .sub-menu a,
#site-navigation .sub-menu .sub-menu a,
.navigation-top .sub-menu .sub-menu a {
	font-weight: 400 !important;
}

/* ========== SLANG: compact desktop fly-out groups ========== */
@media (min-width: 782px) {

	/* Only the three grouped children inside the SLANG menu */
	#menu-item-7903,
	#menu-item-6881,
	#menu-item-6971 {
		position: relative !important;
	}

	/* Hide their child menus until hover/focus */
	#menu-item-7903 > .sub-menu,
	#menu-item-6881 > .sub-menu,
	#menu-item-6971 > .sub-menu {
		display: block !important;
		position: absolute !important;
		top: 0 !important;
		left: 100% !important;
		right: auto !important;

		min-width: 240px !important;
		width: max-content !important;
		max-width: 340px !important;

		margin: 0 !important;
		padding: 8px 0 !important;

		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;

		background-color: #d7e8e5 !important;
		border: 1px solid rgba(0,0,0,.45) !important;
		box-shadow: 0 8px 22px rgba(0,0,0,.12) !important;

		z-index: 100000 !important;
	}

	/* Show the relevant fly-out */
	#menu-item-7903:hover > .sub-menu,
	#menu-item-7903:focus-within > .sub-menu,
	#menu-item-6881:hover > .sub-menu,
	#menu-item-6881:focus-within > .sub-menu,
	#menu-item-6971:hover > .sub-menu,
	#menu-item-6971:focus-within > .sub-menu {
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	/* Comfortable child-link spacing */
	#menu-item-7903 > .sub-menu > li > a,
	#menu-item-6881 > .sub-menu > li > a,
	#menu-item-6971 > .sub-menu > li > a {
		display: block !important;
		padding: 9px 14px !important;
		line-height: 1.25 !important;
		white-space: nowrap !important;
		font-weight: 400 !important;
	}

	/* Small visual cue that these three items open another level */
	#menu-item-7903 > a::after,
	#menu-item-6881 > a::after,
	#menu-item-6971 > a::after {
		content: "›";
		float: right;
		margin-left: 14px;
		font-weight: 700;
	}
}

/* ========== Shunyaya: compact desktop fly-out groups ========== */
@media (min-width: 782px) {

	/* FLAGSHIP SYSTEMS, TIME & TIMELESS COMPUTATION, SNOW FORECASTING */
	#menu-item-8128,
	#menu-item-8187,
	#menu-item-8496 {
		position: relative !important;
	}

	/* Hide their child menus until hover/focus */
	#menu-item-8128 > .sub-menu,
	#menu-item-8187 > .sub-menu,
	#menu-item-8496 > .sub-menu {
		display: block !important;
		position: absolute !important;
		top: 0 !important;
		left: 100% !important;
		right: auto !important;

		min-width: 340px !important;
		width: max-content !important;
		max-width: 430px !important;
		max-height: calc(100vh - 110px) !important;

		margin: 0 !important;
		padding: 8px 0 !important;

		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;

		overflow-y: auto !important;
		overflow-x: hidden !important;

		background-color: #d7e8e5 !important;
		border: 1px solid rgba(0,0,0,.45) !important;
		box-shadow: 0 8px 22px rgba(0,0,0,.12) !important;

		z-index: 100000 !important;
	}

	/* Show the relevant fly-out */
	#menu-item-8128:hover > .sub-menu,
	#menu-item-8128:focus-within > .sub-menu,
	#menu-item-8187:hover > .sub-menu,
	#menu-item-8187:focus-within > .sub-menu,
	#menu-item-8496:hover > .sub-menu,
	#menu-item-8496:focus-within > .sub-menu {
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	/* Child links */
	#menu-item-8128 > .sub-menu > li > a,
	#menu-item-8187 > .sub-menu > li > a,
	#menu-item-8496 > .sub-menu > li > a {
		display: block !important;
		padding: 8px 14px !important;
		line-height: 1.25 !important;
		white-space: normal !important;
		font-weight: 400 !important;
	}

	/* Fly-out indicator */
	#menu-item-8128 > a::after,
	#menu-item-8187 > a::after,
	#menu-item-8496 > a::after {
		content: "›";
		float: right;
		margin-left: 14px;
		font-weight: 700;
	}
}

/* ========== Atlas: compact desktop fly-out groups ========== */
@media (min-width: 782px) {

	/* Robotics, Assurance & Resolution, Admissibility & Capability */
	#menu-item-8137,
	#menu-item-8142,
	#menu-item-8138 {
		position: relative !important;
	}

	/* Hide child menus until hover/focus */
	#menu-item-8137 > .sub-menu,
	#menu-item-8142 > .sub-menu,
	#menu-item-8138 > .sub-menu {
		display: block !important;
		position: absolute !important;
		top: 0 !important;

		/* Atlas is near the right edge, so open LEFT */
		left: auto !important;
		right: 100% !important;

		min-width: 260px !important;
		width: max-content !important;
		max-width: 380px !important;
		max-height: calc(100vh - 110px) !important;

		margin: 0 !important;
		padding: 8px 0 !important;

		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;

		overflow-y: auto !important;
		overflow-x: hidden !important;

		background-color: #d7e8e5 !important;
		border: 1px solid rgba(0,0,0,.45) !important;
		box-shadow: 0 8px 22px rgba(0,0,0,.12) !important;

		z-index: 100000 !important;
	}

	/* Show the relevant fly-out */
	#menu-item-8137:hover > .sub-menu,
	#menu-item-8137:focus-within > .sub-menu,
	#menu-item-8142:hover > .sub-menu,
	#menu-item-8142:focus-within > .sub-menu,
	#menu-item-8138:hover > .sub-menu,
	#menu-item-8138:focus-within > .sub-menu {
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	/* Child links */
	#menu-item-8137 > .sub-menu > li > a,
	#menu-item-8142 > .sub-menu > li > a,
	#menu-item-8138 > .sub-menu > li > a {
		display: block !important;
		padding: 8px 14px !important;
		line-height: 1.25 !important;
		white-space: normal !important;
		font-weight: 400 !important;
	}

	/* Visual cue: Atlas fly-outs open to the left */
	#menu-item-8137 > a::before,
	#menu-item-8142 > a::before,
	#menu-item-8138 > a::before {
		content: "‹";
		margin-right: 10px;
		font-weight: 700;
	}
}

/* ========== Story: compact desktop fly-out groups ========== */
@media (min-width: 782px) {

	/* Journey, Concept & Philosophy, Techno-Thrillers */
	#menu-item-7904,
	#menu-item-8246,
	#menu-item-8247 {
		position: relative !important;
	}

	/* Hide child menus until hover/focus */
	#menu-item-7904 > .sub-menu,
	#menu-item-8246 > .sub-menu,
	#menu-item-8247 > .sub-menu {
		display: block !important;
		position: absolute !important;
		top: 0 !important;

		/* Story is at the far right, so open LEFT */
		left: auto !important;
		right: 100% !important;

		min-width: 300px !important;
		width: max-content !important;
		max-width: 440px !important;
		max-height: calc(100vh - 110px) !important;

		margin: 0 !important;
		padding: 8px 0 !important;

		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;

		overflow-y: auto !important;
		overflow-x: hidden !important;

		background-color: #d7e8e5 !important;
		border: 1px solid rgba(0,0,0,.45) !important;
		box-shadow: 0 8px 22px rgba(0,0,0,.12) !important;

		z-index: 100000 !important;
	}

	/* Show the relevant fly-out */
	#menu-item-7904:hover > .sub-menu,
	#menu-item-7904:focus-within > .sub-menu,
	#menu-item-8246:hover > .sub-menu,
	#menu-item-8246:focus-within > .sub-menu,
	#menu-item-8247:hover > .sub-menu,
	#menu-item-8247:focus-within > .sub-menu {
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	/* Child links */
	#menu-item-7904 > .sub-menu > li > a,
	#menu-item-8246 > .sub-menu > li > a,
	#menu-item-8247 > .sub-menu > li > a {
		display: block !important;
		padding: 8px 14px !important;
		line-height: 1.25 !important;
		white-space: normal !important;
		font-weight: 400 !important;
	}

	/* Visual cue: Story fly-outs open to the left */
	#menu-item-7904 > a::before,
	#menu-item-8246 > a::before,
	#menu-item-8247 > a::before {
		content: "‹";
		margin-right: 10px;
		font-weight: 700;
	}
}

/* ========== FLOW: STRUMER expandable media family ========== */
@media (min-width: 782px) {

	/* STRUMER family parent */
	#menu-item-8188 {
		position: relative !important;
	}

	/* Hide STRUMER projects until hover/focus */
	#menu-item-8188 > .sub-menu {
		display: block !important;
		position: absolute !important;
		top: 0 !important;
		left: 100% !important;
		right: auto !important;

		min-width: 230px !important;
		width: max-content !important;
		max-width: 360px !important;
		max-height: calc(100vh - 110px) !important;

		margin: 0 !important;
		padding: 8px 0 !important;

		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;

		overflow-y: auto !important;
		overflow-x: hidden !important;

		background-color: #d7e8e5 !important;
		border: 1px solid rgba(0,0,0,.45) !important;
		box-shadow: 0 8px 22px rgba(0,0,0,.12) !important;

		z-index: 100000 !important;
	}

	/* Show STRUMER projects */
	#menu-item-8188:hover > .sub-menu,
	#menu-item-8188:focus-within > .sub-menu {
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	/* Individual STRUMER project links */
	#menu-item-8188 > .sub-menu > li > a {
		display: block !important;
		padding: 8px 14px !important;
		line-height: 1.25 !important;
		white-space: nowrap !important;
		font-weight: 400 !important;
	}

	/* Visual cue that STRUMER contains another level */
	#menu-item-8188 > a::after {
		content: "›";
		float: right;
		margin-left: 14px;
		font-weight: 700;
	}
}

/* Remove extra left-arrow cue from The Shunyaya Journey */
#menu-item-7904 > a::before {
	content: none !important;
	margin-right: 0 !important;
}

/* ========== Homepage: compact spacing on desktop only ========== */
@media (min-width: 782px) {
	.home .site-content,
	.home #content,
	.home main {
		padding-top: 16px !important;
	}

	.home .wp-site-blocks > main {
		margin-block-start: 0 !important;
	}
}

/* ========== Mobile: preserve sticky-header clearance ========== */
@media (max-width: 781px) {
	.home .site-content,
	.home #content,
	.home main {
		padding-top: 64px !important;
	}

	.site-header,
	.wp-site-blocks > header,
	header.wp-block-template-part {
		z-index: 99999 !important;
	}
}