/* 
 * Page Banner Styles
 */
.page-banner {
	position: relative;
	width: 100%;
	padding: 128px 0;
	font-size: 18px;
	font-style: normal;
	font-weight: 500;
	line-height: normal;
	letter-spacing: -0.18px;
	overflow: hidden;
	overflow: visible;
}
body.home .page-banner .banner-content {
	text-align: center;
	margin: auto;
	position: relative;
	z-index: 1;
}
.page-banner .banner-content .content-buttons {
	margin-top: 12px;
}
.page-banner .banner-content:has(h1,h2,h3,h4) > p:first-child {
	font-size: 13px;
	font-style: normal;
	font-weight: 500;
	line-height: 18px;
	letter-spacing: 1.3px;
	text-transform: uppercase;
}
body.home .page-banner {
	height: calc(100svh - 160px);
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	padding: 0 0 128px 0;
}
body.home.admin-bar .page-banner {
	height: calc(100svh - 192px);
}
body.home .page-banner .container {
	flex: 1 0 auto;
}
.page-banner .logo-marquee-container {
	position: absolute;
	bottom: 0;
	left: 0;
	overflow: hidden;
}
.page-banner .banner-quote-block {
	margin-top: auto;
    margin-left: auto;
    align-self: center;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 24px;
	max-width: 530px;
}
.page-banner .banner-quote-block .author-content-button {
	border: unset;
	border-radius: unset;
}
.page-banner .banner-quote-block .author-button-inner {
	padding: 0;
	font-size: 17px;
	font-style: normal;
	font-weight: 500;
	line-height: 23px;
	color: #898686;
}
.page-banner .banner-quote-block .author-button-inner strong {
	font-size: 17px;
    font-style: normal;
    font-weight: 700;
    line-height: 23px;
	margin-top: auto;
	color: var(--body-text, #000);
}
.page-banner .banner-quote-block .author-content-button img {
	border: 2px solid var(--body-text, #000);
    padding: 5px;
    width: 60px;
    height: 60px;
}
.page-banner .banner-quote-block .author-button-inner p {
	margin-bottom: auto;
}
body.single-team_member .page-banner .container {
	position: relative;
}
body:is(.blog, .category, .tag, .author) .page-banner {
	padding-bottom: 48px;
	padding-top: 78px;
}
.page-banner .banner-post-author {
	margin-top: 38px;
	font-size: 18px;
	font-style: normal;
	font-weight: 700;
	line-height: 26px;
	color: #999;
	display: inline-grid;
    grid-template-columns: 54px 1fr;
    grid-gap: 0 20px;
	align-content: flex-start;
}
.page-banner .banner-post-author .author-details { 
	display: grid;
}
.page-banner .banner-post-author .author-name {
	color: var(--body-text, #000);
}
.page-banner .banner-post-author .author-avatar {
	width: 54px;
    height: 54px;
    background-color: var(--light-grey, #DEDEDE);
    border-radius: 12px;
	overflow: hidden;
}
.banner-post-author .author-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.banner-post-author .author-name .author-link:not(:hover, :focus) {
	text-decoration: none;
	color: inherit;
}
@media (min-width: 1440px) {
	body.home .page-banner {
		max-height: calc(100svh - 200px);
	}
}
@media (min-width: 1921px) {
	body.home .page-banner {
		max-height: 70svh;
	}
}
@media (max-width: 991px) {
	.page-banner {
		padding: 60px 0 90px;
		overflow: hidden;
	}
	.post-type-archive-team_member .page-banner {
		padding: 60px 0 60px;
	}
	.page-banner .banner-quote-block {
		max-width: unset;
		margin: 32px 0 0;
	}
	.post-type-archive .page-banner .banner-quote-block {
		display: none;
	}
	body.single-team_member .page-banner {
		padding-bottom: 60px;
	}
}
@media (max-width: 575px) {
	.page-banner {
		padding: 40px 0 90px;
		overflow: hidden;
	}
	body.home .page-banner {
		height: auto;
		padding: 40px 0 90px 0;
	}
	body.home .page-banner .banner-content {
		font-size: 14px;
		font-style: normal;
		font-weight: 500;
		line-height: 19px; /* 142.857% */
		letter-spacing: -0.131px;
		text-wrap: balance;
	}
	.page-banner .content-buttons .content-button {
		margin: 0 auto 0 0;
	}
	body.home .page-banner .content-buttons .content-button {
		margin: 0 auto;
	}
	.page-banner.home .content-buttons .content-button {
		margin: 0 auto;
	}
	body.single-team_member .page-banner {
		padding-bottom: 40px;
	}
}

/* 
 * Page Banner Reviews
 */
.page-banner .banner-content .ti-widget {
	display: flex !important;
	margin-bottom: 28px;
}
.page-banner .banner-content .ti-widget .ti-widget-container {
	margin: 0 !important;
}
.page-banner .banner-content .ti-widget .ti-widget-container .ti-header {
	border: 1px solid #000 !important;
    border-radius: 50px;
    padding: 7px 16px !important;
}
.page-banner .banner-content .ti-widget[data-set-id] .ti-widget-container .ti-header .ti-stars .ti-star {
	margin-right: 3px !important;
}
.ti-widget {
	font-family: var(--satoshi-font, 'Satoshi', sans-serif) !important;
}

/* 
 * Team member linkedin
 */
.banner-content .team-linkedin-button {
	font-size: 13px;
	font-style: normal;
	font-weight: 500;
	line-height: 27px; /* 207.692% */
	letter-spacing: -0.13px;
	color: var(--body-text, #000);
	border: 1px solid #DDD;
	padding: 5px 11px 5px 6px;
	background-color: #fff;
	display: inline-flex;
	align-items: center;
	margin: 0;
}
.banner-content .team-linkedin-button .button-icon {
	width: 30px;
	height: 30px;
    display: inline-block;
    background-color: #0066C8;
    color: #fff;
	position: relative;
	display: inline-grid;
    align-items: center;
    justify-content: center;
	border-radius: 50%;
	margin-right: 7px;
}
.banner-content .team-linkedin-button .button-icon svg {
	margin: -1px 0 0 0;
}

/* 
 * Team member fun facts
 */
.banner-content .member-fun-facts {
	margin-top: 24px;
	display: grid;
	grid-template-areas: "heading heading"
						 "facts button";
	grid-template-columns: 1fr 50px;
	grid-gap: 12px 9px;
	max-width: 430px;
}
.banner-content .member-fun-facts strong {
	font-size: 24px;
	font-style: normal;
	font-weight: 600;
	line-height: normal;
	letter-spacing: -1.44px;
	color: var(--body-text, #000);
	font-family: var(--bricolage-grotesque-font);
	grid-area: heading;
}
.banner-content .member-fun-facts .fun-facts-list {
	grid-area: facts;
	display: flex;
	overflow: hidden;
	align-items: center;
    justify-content: flex-start;
}
.banner-content .member-fun-facts .fun-facts-list span {
	flex: 0 0 100%;
}
.banner-content .member-fun-facts .toggle-facts {
	padding: 0;
	border-radius: 50%;
	width: 50px;
    height: 50px;
    display: inline-grid;
    align-items: center;
    justify-content: center;
	background-color: var(--body-text, #000);
	transition: all .2s ease;
}
.banner-content .member-fun-facts .toggle-facts:is(:hover, :focus) {
	background-color: var(--red, #DA1A50);
	transition: all .2s ease;
}

/* 
 * Page Banner Featured Media Styles - boomerang animation
 */
.page-banner .featured-media-images {
	position: absolute;
    height: calc(100% - 128px);
    top: 0;
    right: 0;
	width: calc((100svw - 1450px) / 2);
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
}
.page-banner .featured-media-images:has(.featured-media-left) {
	right: unset;
	left: 0;
	justify-content: flex-start;
}
.page-banner .featured-media-wrapper {
	width: 100%;
	height: 100%;
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	margin-left: auto;
	will-change: width;
	transition: width 0.6s cubic-bezier(0.52, 1.64, 0.37, 0.66);
	flex: 0 0 auto;
}
.page-banner .featured-media-wrapper:hover {
	width: 400px;
	width: calc(1450px * 0.5 / 2);
	transition: width 0.6s cubic-bezier(0.52, 1.64, 0.37, 0.66);
}
.page-banner .featured-media-wrapper svg {
	position: absolute;
	left: 20px;
	bottom: 20px;
	z-index: 1;
	opacity: 0;
	will-change: opacity, transform, filter;
	filter: grayscale(1);
	transition: all 0.6s ease-in-out;
}
.page-banner .featured-media-images .featured-media-link:hover svg {
	opacity: 1;
	transform: rotate(45deg);
	filter: grayscale(0);
	transition: all 0.6s ease-in-out;
}
.page-banner .featured-media-left {
	margin-right: auto;
	margin-left: 0;
}
.page-banner .featured-media-wrapper.featured-media-left svg {
	right: 20px;
	left: unset;
}
.page-banner .featured-media-images .featured-media-link {
	width: 100%;
	flex: 1;
	display: inline-flex;
	position: relative;
}
.page-banner .featured-media-images img {
	width: 100%;
	height: 100%;
	flex: 1 0 100%;
	border-radius: 30px 0 0 30px;
    object-fit: cover;
}
.page-banner .featured-media-left img {
	border-radius: 0 30px 30px 0;
}
.page-banner .featured-media-wrapper figcaption {
	font-size: 16px;
	font-style: normal;
	font-weight: 500;
	line-height: 22px;
	margin-top: 14px;
	text-wrap: nowrap;
	width: 100%;
}
.page-banner .featured-media-left figcaption {
	text-align: right;
}
@media (max-width: 1600px) {
	.page-banner .featured-media-images {
		width: 168px;
	}
	.page-banner .featured-media-wrapper:hover {
		width: calc(1450px * 0.333335 / 2);
	}
	.page-banner .featured-media-wrapper {
		filter: drop-shadow(0px 0px 16px rgba(0, 0, 0, 0.20));
	}
}
@media (max-width: 1280px) { 
	.page-banner {
		overflow: hidden;
	}
	.page-banner .featured-media-wrapper {
		transform: rotate(5.479deg);
		transform-origin: bottom left;
	}
	.page-banner .featured-media-left {
		transform: rotate(-5.479deg);
		transform-origin: bottom right;
	}
	.page-banner .featured-media-wrapper figcaption {
		display: none;
	}
	.page-banner .featured-media-wrapper:hover {
		width: 100%;
	}
}
@media (max-width: 991px) { 
	.page-banner .featured-media-images {
		width: 90px;
	}
	.page-banner .featured-media-images img {
		border-radius: 20px 0 0 20px;
	}
	.page-banner .featured-media-left img {
		border-radius: 0 20px 20px 0;
	}
}
@media (max-width: 575px) { 
	.page-banner .featured-media-images {
		width: 40px;
	}
}

/*
 * Career and Case Study page banner styles	
 */
.single-career .page-banner {
	padding: 0 0 116px;
}
.single-case_study .page-banner {
	padding: 0;
}
.single-career .page-banner :is(h1, h2, h3, h4, .heading-h1, .heading-h2, .heading-h3, .heading-h4),
.single-case_study .page-banner :is(h1, h2, h3, h4, .heading-h1, .heading-h2, .heading-h3, .heading-h4) {
	font-size: 60px;
	font-style: normal;
	font-weight: 600;
	line-height: 60px; /* 100% */
	letter-spacing: -3.6px;
}
.single-career .page-banner .banner-content,
.single-case_study .page-banner .banner-content {
	color: #fff;
	max-width: 565px;
	margin: 48px 0 40px;
}
.single-career .page-banner .banner-content .entry-meta,
.single-case_study .page-banner .banner-content .entry-meta {
	font-size: 14px;
	font-style: normal;
	font-weight: 500;
	line-height: 27px; /* 192.857% */
	letter-spacing: -0.14px;
	color: #D5D5D5;
	margin-top: -8px;
}
.single-career .page-banner .banner-content .entry-meta [class*="status"] {
	display: none;
}
.single-career .page-banner .back-button,
.single-case_study .page-banner .back-button {
	font-size: 13px;
	font-style: normal;
	font-weight: 500;
	line-height: 18px;
	letter-spacing: 1.3px;
	text-transform: uppercase;
	color: #fff;
	text-decoration: none;
	display: flex;
	margin-bottom: 114px;
}
.single-career .page-banner .back-button svg,
.single-case_study .page-banner .back-button svg {
	margin-right: 4px;
}
.single-career .page-banner .banner-background,
.single-case_study .page-banner .banner-background {
	position: absolute;
    z-index: -1;
    top: 0;
    height: calc(100% - 116px);
    left: 20px;
    width: calc(100% - 40px);
    border-radius: 30px;
	overflow: hidden;
}
.single-case_study .page-banner .banner-background {
	height: 100%;
}
.single-career .page-banner .banner-background::before,
.single-case_study .page-banner .banner-background::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, 0.30) 0%, rgba(0, 0, 0, 0.30) 100%), linear-gradient(262deg, rgba(0, 0, 0, 0.00) 31.57%, rgba(0, 0, 0, 0.80) 93.37%);
	z-index: 1;
}
.single-career .page-banner .banner-background img,
.single-case_study .page-banner .banner-background img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.single-career .page-banner:not(:has(.banner-background)) .container::before,
.single-case_study .page-banner:not(:has(.banner-background)) .container::before {
	content: "";
	position: absolute;
	inset: 0 20px;
	background-color: var(--navy, #0C1332);
	z-index: -1;
	border-radius: 30px;
}
.single-career .page-banner:not(:has(.banner-background)) .container::before {
	height: calc(100% - 116px);
}
@media (max-width: 1490px) and (min-width: 992px) {
	.single-career .page-banner,
	.single-case_study .page-banner {
		padding-left: 35px;
        padding-right: 35px;
	}
}
@media (max-width: 991px) {
	.single-career .page-banner {
		padding: 40px 20px 110px;
		max-width: 100%;
	}
	.single-case_study .page-banner {
		padding: 40px 20px 0px;
		max-width: 100%;
	}
	.single-career .page-banner .banner-content,
	.single-case_study .page-banner .banner-content {
		margin: 0;
		padding: 0 4px;
	}
	.single-career .page-banner .banner-background,
	.single-career .page-banner:not(:has(.banner-background)) .container::before {
		height: calc(100% - 90px);
	}
	.single-case_study .page-banner .banner-background {
		height: 100%;
	}
	.single-career .page-banner :is(h1, h2, h3, h4, .heading-h1, .heading-h2, .heading-h3, .heading-h4),
	.single-case_study .page-banner :is(h1, h2, h3, h4, .heading-h1, .heading-h2, .heading-h3, .heading-h4) {
		font-size: 46px;
		font-style: normal;
		font-weight: 600;
		line-height: 46px;
		letter-spacing: -2.76px;
	}
	.single-career .page-banner .back-button,
	.single-case_study .page-banner .back-button {
		margin-bottom: 24px;
	}
	.single-career .page-banner .banner-content,
	.single-case_study .page-banner .banner-content {
		font-size: 16px;
		font-style: normal;
		font-weight: 500;
		line-height: 24px;
		letter-spacing: -0.16px;
	}
	.single-career .page-banner .banner-background::before,
	.single-case_study .page-banner .banner-background::before {
		background: linear-gradient(0deg, rgba(0, 0, 0, 0.30) 0%, rgba(0, 0, 0, 0.30) 100%), linear-gradient(239deg, rgba(0, 0, 0, 0.00) 45.79%, rgba(0, 0, 0, 0.40) 95.98%), linear-gradient(200deg, rgba(233, 237, 253, 0.00) 17.12%, #E9EDFD 64%);
	}
	.single-career .page-banner .application-status-banner,
	.single-case_study .page-banner .application-status-banner {
		margin-bottom: 16px;
	}
}

/*
 * Page Banner Content Image Styles
 */
.page-banner:has(.content-image-wrapper, .banner-case-study-block) {
    padding: 30px 0 128px 0;
	overflow: hidden;
}
.page-banner:has(.content-image-wrapper, .banner-case-study-block) .banner-content {
    align-content: center;
}
.page-banner .banner-content-image,
.page-banner .banner-case-study-block {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-left: auto;
	position: relative;
}
.page-banner .banner-content-image .content-image-wrapper,
.page-banner .banner-case-study-block article.case_study {
	width: 100%;
	max-width: 540px;
	position: relative;
	will-change: clip-path;
	clip-path: inset(var(--clip-inset, 0%) round var(--clip-radius, 60px));
}
.page-banner .banner-case-study-block article.case_study .case-study-statistics {
	bottom: 40px;
	left: 40px;
}
.page-banner .banner-case-study-block article.case_study .entry-header {
	position: absolute;
	top: 0;
	left: 0;
	padding: 40px 40px 0;
	z-index: 1;
}
.page-banner .banner-case-study-block article.case_study .post-image a {
	padding-top: 100%;
}
.page-banner .banner-case-study-block article.case_study .entry-title a {
	color: #fff;
}
.page-banner .banner-case-study-block article.case_study .entry-meta {
	margin-top: 0;
	color: #fff;
}
.page-banner .banner-case-study-block article.case_study .post-tags {
	display: none;
}
.page-banner .banner-case-study-block article.case_study .post-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 60px;
}
.page-banner .banner-content-image .content-image-wrapper > img {
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
    aspect-ratio: 1 / 1;
    border-radius: 60px;
	filter: saturate(1.2);
}
.page-banner .banner-content-image .content-image-wrapper::before {
    content: "";
    background: linear-gradient(180deg, rgb(0 0 0 / 70%) 0%, transparent 40%);
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: 60px;
	mix-blend-mode: multiply;
	will-change: clip-path;
	clip-path: inset(var(--clip-inset, 0%) round var(--clip-radius, 60px));
}
.page-banner .banner-content-image .content-image-wrapper::after,
.page-banner .banner-case-study-block::after {
    content: "";
    background: linear-gradient(180deg, rgb(0 0 0 / 5%) 0%, transparent 90%);
    position: absolute;
    inset: 0 calc(-100% - 40px) 0 calc(100% + 40px);
    z-index: 1;
    border-radius: 60px;
}
@media (max-width: 991px) {
	.page-banner .banner-content-image {
		justify-content: center;
	}
	.page-banner .banner-content-image, 
	.page-banner .banner-case-study-block {
    	margin-top: 36px;
	}
	.page-banner .banner-content-image .content-image-wrapper {
		max-width: 100%;
	}
	.page-banner .banner-content-image .content-image-wrapper {
		clip-path: inset(var(--clip-inset, 0%) round 30px);
	}
	.page-banner .banner-content-image .content-image-wrapper > img, 
	.page-banner .banner-content-image .content-image-wrapper::before {
		border-radius: 30px;
		aspect-ratio: 4 / 3;
		clip-path: inset(var(--clip-inset, 0%) round 30px);
	}
	.single-team_member .page-banner .banner-content-image .content-image-wrapper > img, 
	.single-team_member .page-banner .banner-content-image .content-image-wrapper::before {
		aspect-ratio: 5 / 6;
	}
	.page-banner .banner-content-image .content-image-wrapper::after {
		display: none;
	}
	.page-banner .banner-case-study-block article.case_study {
		max-width: 100%;
		clip-path: inset(var(--clip-inset, 0%) round 30px);
	}
	.page-banner .banner-case-study-block article.case_study .post-image {
		border-radius: 30px;
	}
	.page-banner .banner-case-study-block article.case_study .post-image a {
		padding-top: 75%;
	}
	.page-banner .banner-case-study-block article.case_study .entry-header {
		top: unset;
		padding: 0 20px 20px;
		bottom: 0;
		max-width: 80%;
	}
	.page-banner .banner-case-study-block article.case_study .entry-title {
		line-height: 28px;
	}
	.page-banner .banner-case-study-block article.case_study .post-image .case-study-statistics {
		top: 20px;
		right: 20px;
		bottom: unset;
		left: unset;
	}
}

/*
 * Page Banner Content Image Caption Styles
 * - positioned relative to banner-content-image to avoid clip-path
 */
.page-banner .banner-content-image .content-image-wrapper .content-image-caption {
	visibility: hidden;
	position: absolute;
}
.page-banner .banner-content-image > .content-image-caption {
	visibility: visible;
	opacity: 0;
	position: absolute;
	top: 60px;
	display: flex;
	align-items: center;
	gap: 16px;
	z-index: 2;
	left: var(--caption-left, 0);
}
.page-banner .banner-content-image .content-image-caption .caption-icon {
	flex: 0 0 auto;
	width: 70px;
	height: 70px;
	border-radius: 16px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.page-banner .banner-content-image .content-image-caption .caption-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 1 / 1;
	border-radius: 16px;
}
.page-banner .banner-content-image .content-image-caption .caption-text {
	font-size: 15px;
	font-style: normal;
	font-weight: 500;
	line-height: 22px;
	color: #fff;
	max-width: 220px;
}
@media (max-width: 1150px) {
	.page-banner .banner-content-image .content-image-caption {
		left: 34px;
	}
}
@media (max-width: 991px) {
	.page-banner .banner-content-image .content-image-caption {
		top: 24px;
		transform: translateX(24px);
		left: 24px;
	}
}

/* 
 * 404 Page Banner Styles
 */
.error404 .page-banner .banner-content {
	text-align: center;
}
.error404 .page-banner h1 {
	font-size: 120px;
	font-style: normal;
	font-weight: 600;
	line-height: normal;
	letter-spacing: -7.2px;
	color: var(--red, #DA1A50);
}
.error404 .page-banner :is(h2, h3) {
	font-size: 40px;
	font-style: normal;
	font-weight: 600;
	line-height: 48px;
	letter-spacing: -2.4px;
}
.error404 .page-banner .banner-background {
	position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    left: 50%;
    transform: translateX(-50%);
	z-index: -1;
}
.error404 .page-banner .banner-background img {
	width: 100%;
    height: 100%;
    object-fit: contain;
}
.error404 .page-banner {
	min-height: 100%;
	min-height: 80svh;
	align-content: center;
}

/*
 * Standard Page Blocks Page Banner Styles
 */
body.standard-page-blocks .page-banner:not(:has(.featured-media-images)) {
	padding: 60px 0 0;
}
body.standard-page-blocks .page-banner:not(:has(.featured-media-images)) .banner-content {
	text-align: center;
	border-bottom: 1px solid #DEDEDE;
	padding-bottom: 40px;
}
body.standard-page-blocks .page-content-container {
	padding-top: 60px;
	padding-bottom: 60px;
}
@media (max-width: 575px) {
	body.standard-page-blocks .page-banner:not(:has(.featured-media-images)) {
		padding: 40px 0 0;
	}
	body.standard-page-blocks .page-banner:not(:has(.featured-media-images)) .banner-content {
		text-align: left;
		padding-bottom: 14px;
	}
	body.standard-page-blocks .page-content-container {
		padding-top: 40px;
		padding-bottom: 40px;
	}
}