:root{
	--color-1: #0091d8;
	--color-2: #f0b49b;
	--color-2-overlay: var(--color-text);
	--color-3: #29505a;
	--color-3-overlay: #ffffff;
	--color-text: #000000;
	--color-card-background: #e8dfd3;
	--color-card-background-light: #ede6e2;
	--color-slr: #3c533c;
	--color-slr2: #d6f591;
}

/****/

/* This CSS resource incorporates links to font software which is the valuable copyrighted property of Monotype Imaging and/or its suppliers. You may not attempt to copy, install, redistribute, convert, modify or reverse engineer this font software. Please contact Monotype Imaging with any questions regarding Web Fonts:  http://www.fonts.com */

@font-face{
font-family: "Body"; font-style: normal; font-weight: 400;
src: url("../_media/fonts/nh-regular.woff2") format("woff2");
}

@font-face{
font-family: "Body"; font-style: italic; font-weight: 400;
src: url("../_media/fonts/nh-italic.woff2") format("woff2");
}

@font-face{
font-family: "Body"; font-style: normal; font-weight: 700;
src: url("../_media/fonts/nh-medium.woff2") format("woff2");
}

@font-face{
font-family: "Body"; font-style: italic; font-weight: 700;
src: url("../_media/fonts/nh-mediumitalic.woff2") format("woff2");
}

@font-face{
font-family: "Header"; font-style: normal; font-weight: 700;
src: url("../_media/fonts/nh-regular.woff2") format("woff2");
}

@font-face{
font-family: "Header"; font-style: italic; font-weight: 700;
src: url("../_media/fonts/nh-italic.woff2") format("woff2");
}

@font-face{
font-family: "Button"; font-style: normal; font-weight: 700;
src: url("../_media/fonts/nh-regular.woff2") format("woff2");
}

/****/

body{
    font-size: 16px;
}

/****/

#footerWrap{
    padding: 30px 5%;
    background: var(--color-3);
}

footer{
    text-align: right;
    color: var(--color-3-overlay);
}

footer a{
	font-weight: 700;
	color: var(--color-3-overlay);
}

footer a:hover{
    text-decoration: none;
}

footer .contact{
    margin: 0.5em 0;
}

footer .contact div{
    display: inline-block;
    padding: 0 0.5em;
}

footer .copyright{
    margin: 0.5em 1em;
    padding: 0;
}

@media only screen and (max-width: 500px){

	footer .contact div{
		display: block;
		margin: 1em 0;
	}

}

/****/

.navMenu li a{
	border: 2px solid transparent;
}

.navMenu li a.current, .navMenu li a:hover, .navMenu li a:focus{
	color: var(--color-1);
	border-bottom-color: var(--color-2);
}

@media only screen and (max-width: 750px){

	.navMenu li a.current, .navMenu li a:hover, .navMenu li a:hover{
		color: var(--color-2);
		border-bottom-color: transparent;
	}

}

/****/

.subMenuColumn{
    padding: 2em 0;
  	align-self: flex-start;
}

@media only screen and (min-width: 1000px){

	.subMenuColumn{
		position: sticky;
		top: 10%;
	}

}

.subMenu{
	padding: 0;
    margin: 0;
    text-transform: none;
}

.subMenu li{
    list-style: none;
    padding: 0;
}

.subMenu li a{
	font-family: "Button", sans-serif;
}

.subMenu li a.current{
    color: var(--color-2);
}

.subMenu li a:hover, .subMenu li a:focus{
    color: var(--color-2);
	text-decoration: none;
	outline: 0;
}

@media only screen and (max-width: 750px){
    
	.subMenuColumn{
		display: none;
	}

	.subMenuContentColumn{
		margin: 0;
		border-left: none;
		width: auto;
		padding: 0;
	}

}

/****/

.module h1{
	font-weight: 400;
    font-size: 2.5em;
    margin: 0 0 1em 0;
    color: var(--color-1);
}

.module h1 svg{
	width: 30%;
	min-width: 150px;
	max-width: 250px;
	height: auto;
}

.module h2{
	font-weight: 400;
    font-size: 1.6em;
    margin: 1em 0 1em 0;
    color: var(--color-1);
}

.module h3{
	font-weight: 400;
    font-size: 1.1em;
    margin: 0 0 0.8em 0;
    color: var(--color-1);
    padding: 0;
}

.module.about{
	margin-top: 0;
}

.module p.introduction{
	font-size: 1.4em;
	line-height: 1.5;
    color: var(--color-1);
}

@media only screen and (max-width: 750px){

	.module p.introduction{
		font-size: 1.2em;
	}

}

.module a{
    font-weight: inherit;
}

.module ol{
    counter-reset: li;
    margin-left: 0;
    padding-left: 0;
}

.module ol > li{
    position: relative;
    margin: 0 0 6px 2em;
    padding: 4px 8px;
    list-style: none;
}

.module ol > li:before{
    content: counter(list-item);
    position: absolute;
    top: 5px;
    left: -2em;
    width: 1.7em;
    margin-right: 8px;
	font-weight: 700;
    background: var(--color-1);
    color: var(--color-1-overlay);
    text-align: center;
    border-radius: 20px;
}

.module .card{
	padding: 2.5em;
	margin: 1em auto;
    background: var(--color-card-background);
    position: relative;
    font-size: 1em;
    border-radius: 3px;
}

.module .card h2:first-of-type{
	margin-top: 0;
}

@media screen and (max-width: 500px){

	.module .card{
		width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
	}

}

.module .card .markdown li{
	list-style: none;
}

.module .card .markdown li{
    padding: 1em;
	margin: 1em auto;
	background-color: var(--color-card-background-light);
	color: inherit;
}

.module .card .keywords{
	margin: 2em auto 0 auto;
}

.module .buttons{
	text-align: left;
	margin: 2em 0;
}

@media only screen and (max-width: 750px){

	.module .buttons{
		text-align: center;
	}

}

.module .tiles{
	margin: 0;
}

.module .tile{
	margin: 0.25%;
}

/****/

.adminModule .card{
	padding: 1em;
	margin: 1em auto;
    position: relative;
    font-size: 1em;
    border-radius: 3px;
    background: var(--color-card-background);
}

@media screen and (max-width: 500px){

	.adminModule > .card{
		width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
	}

}

@media print{

	.adminModule .card{
		background: none;
	}

}

/****/

.keywords li, .keywords .dataTable.sortable tr, .keywordFilter .keywordSelect{
    background: var(--color-1);
    color: var(--color-1-overlay);
}

.keywordFilter .keywordSelect.hasValue{
    background: var(--color-2);
	color: var(--color-2-overlay);
}

.keywordFilter .keywordSelect.hasValue .uiButton{
	color: var(--color-2-overlay);
}

.keywords .capability li:before, .keywordFilter .capability:before{
    content: "\f05b";
}

.keywords .client li:before, .keywordFilter .client:before{
    content: "\f183";
}

.keywords .network li:before, .keywordFilter .network:before{
    content: "\f0c0";
}

.keywords .document li:before, .keywordFilter .document:before{
    content: "\f15c";
}

.keywords .partner li:before, .keywordFilter .partner:before{
    content: "\f0c1";
}

.keywords .sector li:before, .keywordFilter .sector:before{
    content: "\f005";
}

.keywords a li:hover{
    background: var(--color-2);
	color: var(--color-2-overlay);
}

@media only screen and (max-width: 500px){

	.keywords{
		text-align: center;
	}

}

.filterWrap div.search{
    background: var(--color-card-background);
}

.filterWrap div.search .uiButton, .filterWrap div.search .uiButton:hover{
    color: var(--color-1);
}

.clientFilter .keywords li:hover, .clientFilter .keywords li.current{
    background: var(--color-2);
	color: var(--color-2-overlay);
}

.clientFilter .keywords li:hover{
    cursor: pointer;
}

/****/

.carouselWrap{
    background: var(--color-card-background);
    text-align: center;
    padding: 0 5%;
}

.carousel{
    margin: 0 auto;
    max-width: 1200px;
}

.carousel .featureInfo{
    width: 73%;
    display: none;
    float: left;
    overflow: hidden;
    position: relative;
}

.carousel .featureInfo.current{
    display: block;
}

.carousel .featureInfo img{
	object-fit: cover;
	object-position: center;
	max-height: 410px !important;
	height: 50vw !important;
	width: 100%;
    border-top-left-radius: 0px;
    border-bottom-left-radius: 0px;
}

.carousel .featureInfo .content{
    position: absolute;
    bottom: 0;
    left: 5%;
    text-align: left;
    color: var(--color-3-overlay);
    background: rgba(40, 80, 90, 0.85);
    width: 90%;
    padding: 1em 1em 1em 2em;
    border-top-left-radius: 0px;
    border-top-right-radius: 0px;
}

.carousel .featureInfo h2{
	font-weight: 400;
}

.carousel .featureInfo .description{
	font-size: 0.9em;
}

.carousel .featureInfo .buttons{
    float: right;
    font-size: 1em;
    margin: 0.5em 0 0 0;
    padding: 0.5em 0 0 0.5em;
}

.carouselMenu{
	padding: 0;
    margin: 0;
    width: 27%;
    float: left;
    font-size: 1.2em;
}

.carouselMenu .feature{
    font-size: 0.8em;
    list-style: none;
    border-top-right-radius: 0px;
    border-bottom-right-radius: 0px;
    padding: 0 1em;
    background: var(--color-3);
    color: var(--color-3-overlay);
    height: 98.75px;
    margin: 5px 0 0 0;
}

.carouselMenu .feature.top{
	margin: 0;
}

.carouselMenu .feature table{
	width: 100%;
}

.carouselMenu .feature td{
	text-align: left;
	vertical-align: middle;
    height: 80px;
    overflow: hidden;
}

.carouselMenu .feature:hover, .carouselMenu .feature.current{
    cursor: pointer;
	background: var(--color-1);
	text-decoration: none;
}

@media only screen and (max-width: 750px){

	.carouselWrap{
		padding: 0;
	}

	.carousel .featureInfo{
		width: 100%;
	}

	.carousel .featureInfo img{
		width: 150%;
		height: auto;
		margin-left: -25%;
		border-top-left-radius: 0;
		border-bottom-left-radius: 0;
	}

	.carousel .featureInfo .content{
		width: 90%;
		font-size: 0.9em;
	}

	.carousel .featureInfo .description{
		display: none;
	}

	.carousel .featureInfo{
		float: none;
	}

	.carouselMenu{
		float: none;
		width: 100%;
		text-align: center;
		padding: 0.5em 0;
	}

	.carouselMenu .feature{
		font-size: 0.6em;
		padding: 0 10px;
		margin: 0 1em;
		display: inline-block;
		border-radius: 30px;
		height: 20px
	}

	.carouselMenu .feature.top{
		margin: 0 0.8em;
	}

	.carouselMenu .feature table{
		display: none;
	}

}

/****/

.adminModule h1{
	font-weight: 400;
    opacity: 0.8;
}

.adminModule h2{
    border-bottom: 1px solid var(--color-border-grey);
    padding-bottom: 0.5em;
    font-size: 0.9em;
}

h2 .uiButton{
	font-size: 0.5em;
	margin-left: 1em;
	display: inline-block;
}

/****/

.homeImage{
    width: 40%;
    height: auto;
    border-radius: 0px;
    float: left;
    margin: 0 20px 10px 0;
}

@media only screen and (max-width: 400px){

	.homeImage{
		float: none;
		width: 100%;
	}

}

.about{
    float: left;
    width: 65%;
    padding: 1em 2em 1em 1em;
}

@media only screen and (max-width: 750px){

	.about{
		float: none;
		width: 100%;
	}

}

/****/

.twitterFeed{
    border-radius: 3px;
    background: var(--color-card-background);
    margin-top: 2em;
    padding: 2.5em;
    float: left;
    width: 35%;
}

.twitterFeed h2{
	font-weight: 400;
    font-size: 1.3em;
    margin: 0;
    text-align: center;
    color: var(--color-1);
}

.tweets{
    height: 45em;
    overflow-y: scroll;
    overflow-x: hidden;
}

.tweet{
    font-size: 0.9em;
    margin: 1.5em 0;
}

.tweet .image, .tweet .detail{
    float: left;
}

.tweet .image{
    width: 16%;
    margin: 0 4% 0 0;
}

.tweet .detail{
    width: 80%;
}

.tweet img{
    border-radius: 3px;
    margin: 0 1em 0 0;
    width: 100%;
    height: auto;
}

.tweet a:hover img{
	outline: 0;
	opacity: 0.8;
	text-decoration: none;
}

@media only screen and (max-width: 750px){

	.twitterFeed{
		float: none;
		width: 100%;
	}

	.tweets{
		height: 20em;
	}

	.tweet .image{
		width: 8%;
	}

	.tweet .detail{
		width: 88%;
	}

}

/****/

.googleMap{
    width: 100%;
    height: 350px;
    margin-bottom: 1em;
    overflow: hidden;
    text-align: center;
}

.googleMapFallback{
    width: auto;
    height: 350px;
    position: relative;
    left: 100%;
    margin-left: -200%;
}

/****/

.backLink{
	margin: 1em 0;
	font-family: "Button", sans-serif;
}

address.showcase{
    text-align: center;
}

address.showcase span{
	color: var(--color-1);
	margin-right: 0.5em;
}

.directions{
	text-align: center;
	margin: 1em 2em;
}

/****/

.tiles{
    list-style: none;
    padding: none;
    margin: 0;
}

.tile{
	line-height: 1;
    background: var(--color-card-background);
    float: left;
    width: 24.5%;
    padding: 0.5em 1%;
    margin: 0.5em 0.25%;
    border-radius: 3px;
}

.tiles.clients .tile{
    width: 32.8%;
}

.tile.tileLink:hover, .tile.current{
    background: var(--color-2);
}

.tile.tileLink:hover{
    cursor: pointer;
}

.tile td{
    vertical-align: middle;
    height: 2.5em;
    overflow: hidden;
}

@media only screen and (max-width: 750px){

	.tile{
		width: 100%;
		padding: 0.1em 1em;
		font-size: 0.9em;
		float: none;
	}

	.tiles.clients .tile{
		width: 100%;
	}

	.tiles.wide{
		display: none;
		float: none;
	}

	.tiles.wide .tile{
		float: none;
	}

}

@media only screen and (min-width: 750px){

	.tile.narrow{
		float: none;
		display: none;
	}

}

/****/

.enquiryType .image{
    max-width: 150px;
}

.enquiryType .name{
    margin: 0.3em 0 0.5em 0;
	font-size: 1.2em;
}

/****/

section.contactDetails{
	margin: 2em 0 0 0;
}

.contactDetails .contactDetail{
	padding: 0.5em 0.5em 0;
}

.contactDetail{
	font-size: 0.9em;
	margin: 0.2em 0.5em 0 0;
	float: left;
}

.contactDetail.email{
	clear: both;
}

.contactDetails .contactDetail.email{
	clear: none;
}

.contactDetail span{
	color: var(--color-1);
}

.contactDetail a{
	color: var(--color-text);
	font-weight: inherit;
}

@media only screen and (max-width: 750px){

	.contactDetail{
		clear: both;
		font-size: 0.8em;
	}

}

@media only screen and (max-width: 750px){

	.contactDetail.email a{
		font-size: 0.9em;
	}

}

/****/

.locationChooser{
    display: inline-block;
    margin-left: 10px;
}

h1 .locationChooser svg{
    height: 0.8em;
    width: auto;
    min-width: auto;
    min-height: auto;
    display: inline-flex;
}

.no-js .locationChooser{
    display: none;
}

.js .contactInfo{
    display: none;
}

.js .contactInfo.current{
    display: block;
}

/****/

.imageDetail{
    margin: 2em 0;
}

.imageDetail img, .imageDetail svg{
    margin: 0 1em 0 0;
    width: 100%;
    max-width: 250px;
    height: auto;
    background: #ffffff;
    padding: 3%;
    border-radius: 3px;
}

.imageDetail svg{
  aspect-ratio: 1 / 1;

}
.imageDetail .url{
    font-size: 0.9em;
}

img.networkImage, .imageDetail svg{
    margin: 0 1em 0 0;
    width: 100%;
    max-width: 250px;
    height: auto;
    background: #ffffff;
    padding: 20px;
    border-radius: 3px;
}

/****/

.profile h1{
    font-size: 1.7em;
    display: inline-block;
    margin: 0;
}

.profile .jobTitle{
    font-size: 1.2em;
    display: inline-block;
    padding-left: 0.3em;
}

.profile .jobTitle button{
    font-size: 0.7em;
    display: inline-block;
    vertical-align: middle;
    margin-left: 0.3em;
}

.profile .propertyInfoList{
    margin: auto;
}

@media only screen and (max-width: 500px){

	.profile .jobTitle{
		display: block;
		margin-top: 0.5em;
		padding: 0;
	}

}

.profile .joined{
    font-size: 0.8em;
    text-align: center;
    margin-top: 0.2em;
}

.profile .contactDetails{
	padding: 1em;
	border-top: 2px var(--color-card-background) solid;
	border-bottom: 2px var(--color-card-background) solid;
}

.profile .description p:first-of-type{
    margin-top: 0;
}

@media only screen and (min-width: 1000px){

	.profile .imageDetail{
		margin: 5% auto;
	}

	.profile .imageDetail > .image{
		flex: 1 1 35%;
	}

	.profile .imageDetail > .detail{
		flex: 1 1 65%;
	}

}

/****/

.insight .type{
    font-size: 0.6em;
    padding-left: 0.5em;
}

.insight .socialLinks{
	text-align: right;
	margin-top: 0.5em;
	padding: 0.5em;
	border-top: 2px var(--color-card-background) solid;
	border-bottom: 2px var(--color-card-background) solid;
}

@media only screen and (max-width: 750px){

	.insight .socialLinks{
		text-align: center;
		margin-top: 1em;
	}

}

@media only screen and (max-width: 750px){

	.insight .keywords{
		text-align: center;
	}

}

@media only screen and (min-width: 1000px){

	.module.insight .imageDetail{
		margin: 5% auto;
	}

	.module.insight .imageDetail > .image{
		flex: 1 1 35%;
	}

	.module.insight .imageDetail > .detail{
		flex: 1 1 65%;
	}

}

/****/


.card .markdown p:first-of-type{
	margin-top: 0;
}

/****/

.team{
	line-height: 1;
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: stretch;
	align-content: flex-start;
}

.team .user{
    text-align: left;
	margin: 20px;
	max-width: 250px;
	min-height: 250px;
	flex: 1 1 250px;
}

.js .team .user{
    display: none;
}

.js .team .user.current{
    display: block;
}

.team .name{
	margin: 0.8em 0 0 0;
	font-size: 1em;
}

.team .jobTitle{
	margin: 0.5em 0 0 0;
	font-size: 0.8em;
}

.team img{
    border-radius: 3px;
    width: 100%;
    height: auto;
}

.team svg{
    width: 100%;
    height: auto;
}

.team svg{
	fill: var(--color-text-grey);
}

.team a:hover img{
	outline: 0;
	opacity: 0.8;
	text-decoration: none;
}

.team span{
	color: var(--color-1);
}

/****/

.logos{
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	align-items: center;
	align-content: flex-start;
}

.logos .flexibleImage{
	margin: 2em;
	max-width: 200px;
}

.logos .livingWageLogo.flexibleImage{
	max-width: 150px;
}


/****/

.post{
	padding: 1em;
	margin: 1% auto;
	max-width: 750px;
    background: var(--color-card-background);
    border-color: transparent;
}

.post .postContent{
	padding: 1em;
}

.post .summary{
	font-weight: 400;
	margin-bottom: 1em;
}

.post .alertTag div{
	display: inline-block;
	vertical-align: middle;
	padding: 0 0.2em;
}

.post .alertBanner .uiButton{
	background: rgba(0, 0, 0, 0.05) !important;
	line-height: 2;
	min-width: 5em;
	margin: 0;
}

.post .alertBanner{
	margin-bottom: 1em;
}

.post .alertBanner .uiButton:hover{
	background: rgba(0, 0, 0, 0.1) !important;
}

@media screen and (max-width: 500px){

	.post .alertBanner .buttons{
		margin-top: 1em;
	}

}

.post h1{
	font-size: 1.3em;
	margin-top: 2em;
    color: var(--color-1);
}

.post h1.name{
	font-size: 1.6em;
	margin-top: 0;
}

.post .location svg{
	width: auto;
	height: 0.7em;
	margin-left: 0.2em;
}

.post .level, .post .location{
	font-size: 1.1em;
	opacity: 0.8;
	margin-top: -1em;
	margin-bottom: 1em;
	margin-right: 0.5em;
	display: inline-block;
}

.post .expandToggle{
	padding: 1em;
    font-family: "Button", sans-serif;
	text-transform: uppercase;
	font-size: 0.8em;
	margin: 1.5em auto;
	text-align: center;
	max-width: 450px;
	background-color: var(--color-1);
    color: var(--color-1-overlay);
}

.post .keywords{
	margin: 2em auto 0 auto;
    text-align: center;
}

.post .centeredButtons{
	margin-top: 3em;
}

.post .markdown ul{
	margin-top: 2em;
	margin-bottom: 2em;
}

.post .markdown li{
	list-style: none;
    padding: 1em;
	margin: 1em auto;
	background-color: var(--color-card-background-light);
	color: inherit;
	font-size: 0.9em;
}

.post .flexibleImage, .post .videoWrap{
    margin-bottom: 2em;
}


/****/

.slrBanner{
	background: var(--color-slr);
	color: #ffffff;
	padding: 2em 5%;
}

.slrBannerContent{
	margin: 0 auto;
	max-width: 1400px;
	display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 2em;
}

@media screen and (max-width: 750px){

.slrBannerContent{
	display: block;
}

}

.slrBanner a{
	color: var(--color-slr2);
}

.slrBanner p.introduction{
	color: var(--color-slr2);
	font-size: 1.3em;
}

.slrBanner .text{
	flex: 1;
}

.slrBanner p{
	margin: 0.2em;
}

.slrBanner svg{
	min-width: 120px;
	max-width: 140px;
	height: auto;
	margin: 10px auto;
	flex: 1;
}

.slrBanner svg path{
	fill: #ffffff;
}