/* ========== Title & header ========== */
.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 */
.wp-site-blocks > header,
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 9999;
}


/* ========== Sticky header: prevent overlap with content ========== */
.site-header,
.wp-site-blocks > header,
header.wp-block-template-part {
	background-color: #d7e8e5 !important;
	box-shadow: 0 2px 0 rgba(0,0,0,.08);
}

.site-content,
#content,
main {
	padding-top: 64px;
}


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


/* ========== Right-side menu: fix overflow, pin, and scroll ========== */
@media (min-width: 782px) {

	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;
		top: 20px !important;
		right: 20px !important;
		left: auto !important;
		bottom: auto !important;
		max-height: calc(100vh - 40px) !important;
		overflow-y: auto !important;
		z-index: 99999 !important;
		background: #fff !important;
		box-shadow: 0 12px 40px rgba(0,0,0,.18);
	}

	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;
	}

	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;
		white-space: normal !important;
	}

	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;
	}
}


/* ========== Scrollbars for long menus ========== */
.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 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 navigation */
.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;
}

/* Actual sub-submenu links remain normal */
.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) {

	#menu-item-7903,
	#menu-item-6881,
	#menu-item-6971 {
		position: relative !important;
	}

	#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;
	}

	#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;
	}

	#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;
	}

	#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: primary 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;
	}

	/* First fly-out level */
	#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;

		width: max-content !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;
	}

	/* FLAGSHIP SYSTEMS is now only a compact category panel */
	#menu-item-8128 > .sub-menu {
		min-width: 260px !important;
		max-width: 330px !important;
		max-height: none !important;

		/*
		 * Must remain visible so the third-level category
		 * fly-outs are not clipped by their parent.
		 */
		overflow: visible !important;
	}

	/* TIME and SNOW retain their existing scrollable behavior */
	#menu-item-8187 > .sub-menu,
	#menu-item-8496 > .sub-menu {
		min-width: 340px !important;
		max-width: 430px !important;
		max-height: calc(100vh - 110px) !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
	}

	/* Show primary fly-outs */
	#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;
	}

	/* Direct children */
	#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;
	}

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


	/* ===== FLAGSHIP SYSTEMS: grouped third-level fly-outs ===== */

	/* Any direct FLAGSHIP child that itself contains projects */
	#menu-item-8128 > .sub-menu > .menu-item-has-children {
		position: relative !important;
	}

	/* Category headings */
	#menu-item-8128 > .sub-menu > .menu-item-has-children > a {
		display: block !important;
		padding: 9px 14px !important;
		line-height: 1.25 !important;
		white-space: nowrap !important;
		font-weight: 700 !important;
	}

	/* Third-level project panels */
	#menu-item-8128 > .sub-menu > .menu-item-has-children > .sub-menu {
		display: block !important;
		position: absolute !important;
		top: 0 !important;
		left: 100% !important;
		right: auto !important;

		min-width: 330px !important;
		width: max-content !important;
		max-width: 460px !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: 100001 !important;
	}

	/* Reveal selected flagship category */
	#menu-item-8128 > .sub-menu > .menu-item-has-children:hover > .sub-menu,
	#menu-item-8128 > .sub-menu > .menu-item-has-children:focus-within > .sub-menu {
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	/* Category arrow */
	#menu-item-8128 > .sub-menu > .menu-item-has-children > a::after {
		content: "›";
		float: right;
		margin-left: 18px;
		font-weight: 700;
	}

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


/* ========== 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;
	}

	#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;
	}

	#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;
	}

	#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;
	}

	/* 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;
	}

	#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;
	}

	#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;
	}

	#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;
	}

	/* 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) {

	#menu-item-8188 {
		position: relative !important;
	}

	#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;
	}

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

	#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;
	}

	#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;
	}
}

/* FLAGSHIP category fly-out arrow */
#menu-item-8128 > .sub-menu > .menu-item-has-children > a::after {
	content: "›" !important;
	display: inline-block !important;
	float: right !important;
	margin-left: 18px !important;
	font-weight: 700 !important;
}