.headNav {
	font-family: "Poppins", sans-serif;
}

.Caveat {
	font-family: "Caveat", cursive;
	font-size: 1.8rem;
  line-height: 1.9rem;
}

:root {
	--nav-text: #4f585d;
	--nav-line: #9ca794;
	--nav-hover: #a21d4b;
}

/* Remove the existing Bootstrap borders/backgrounds */
#headMain.headerBarHlight.hBarBtm .nav-pills > li > a {
	border: none;
}

#headMain nav > ul li {
	position: relative;
	border-bottom: none;
	margin-bottom: 0;
}

.headNav .nav {
	display: flex;
	align-items: center;
	gap: 10px;
}

.headNav .nav > li > a {
	position: relative;
	display: block;

	padding: 12px 16px 18px;

	color: var(--nav-text) !important;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	text-shadow: none;
	text-transform: uppercase;

	background: transparent !important;
	border: none;
	border-radius: 0;
	box-shadow: none;

	transition: color 0.3s ease;
}

/* Animated underline */
.headNav .nav > li > a::after {
	content: "";
	position: absolute;

	left: 50%;
	bottom: 10px;

	width: 70%;
	height: 3px;

	background: var(--nav-line);

	transform: translateX(-50%) scaleX(0);
	transform-origin: center;

	transition:
		transform 0.35s ease,
		background-color 0.35s ease;
}

/* Hover and keyboard focus */
.headNav .nav > li > a:hover,
.headNav .nav > li > a:focus {
	color: var(--nav-hover) !important;
	background: transparent !important;
	box-shadow: none;
	text-shadow: none;
	transform: none;
	outline: none;
}

.headNav .nav > li > a:hover::after,
.headNav .nav > li > a:focus::after {
	transform: translateX(-50%) scaleX(1);
	background: var(--nav-hover);
}

/* Active navigation item */
.headNav .nav > li.active > a,
.headNav .nav > li.active > a:hover,
.headNav .nav > li.active > a:focus {
	color: var(--nav-text) !important;
	background: transparent !important;
	box-shadow: none;
	text-shadow: none;
}

/* Keep active underline visible */
.headNav .nav > li.active > a::after {
	transform: translateX(-50%) scaleX(1);
	background: var(--nav-line);
}

/* Override Bootstrap nav-pills backgrounds */
.nav-pills > li > a,
.nav-pills > li > a:hover,
.nav-pills > li > a:focus,
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
	background-color: transparent !important;
}

@media (min-width: 1200px) {
	#headMain .nav-pills > li + li {
		margin-left: 0.6rem;
	}

	#headMain .nav > li > a {
		font-size: 0.85rem;
	}
}

/* ------------------------------------------------ */

.greenTitle {
	color: #b5cb8b !important;
	font-weight: 600;
}

.headerSplit {
	padding: 30px 0px 0px;
}

.headerSplit .row {
	display: flex;
	align-items: center;
}

.headerSplitText {
	text-align: left;
	padding: 40px;
}

.headerSplitText h1 {
	font-weight: 600;
}

.headerGraphicReveal {
	position: relative;
	overflow: hidden;
}

@media (min-width: 1200px) {
	.headerGraphicReveal {
		width: 90%;
		margin: 0 auto;
	}
}

.headerGraphicReveal img {
	position: relative;
	z-index: 1;

	display: block;
	width: 100%;
	height: auto;
}


/*
 * Red half-circle inside the green half-circle.
 *
 * The flat right edge is aligned with the flat edge
 * of the green half-circle.
 */
.graphicRedHalfCircle {
	position: absolute;
	z-index: 2;

	top: 22.3%;
	left: 21.5%;

	width: 10.2%;
	aspect-ratio: 1 / 2;

	background: #a21d4b;

	border-radius:
		100% 0 0 100% /
		50% 0 0 50%;

	pointer-events: none;

	/* important: keeps the pulse behind this shape */
	isolation: isolate;

	opacity: 0;
	animation: redHalfCircleEnter 0.6s ease-out 2.2s forwards;
}

.graphicRedHalfCircle::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;

	background: #ffffff;
	border-radius: inherit;

	transform-origin: right center;
	opacity: 0;

	/* starts after the red half-circle appears, repeats only twice 
	animation: redHalfCirclePulse 1.1s ease-out 2.8s 2; */
}

/*
 * Optional introduction animation.
 */
.graphicRedHalfCircle {
	opacity: 0;

	animation:
		redHalfCircleEnter 0.6s ease-out 2.2s forwards;
}


@keyframes redHalfCircleEnter {
	from {
		opacity: 0;
		transform: scale(0.7);
	}

	to {
		opacity: 1;
		transform: scale(1);
	}
}


@keyframes redHalfCirclePulse {
	0% {
		opacity: 0.5;
		transform: scale(1);
	}

	70%,
	100% {
		opacity: 0;
		transform: scale(1.75);
	}
}

/*
 * The white panels covering the artwork.
 */
.graphicMask {
	position: absolute;
	z-index: 2;
	background: #FFFFFF;
	pointer-events: none;

	animation-duration: 1.5s;
	animation-timing-function: cubic-bezier(0.77, 0, 0.18, 1);
	animation-fill-mode: forwards;
}

/*
 * Covers the left half-circle.
 *
 * Adjust these percentages slightly to match the exact
 * position of the half-circle in your JPG.
 */
.graphicMaskCircle {
	top: 0;
	left: 0;
	width: 34%;
	height: 67%;

	animation-name: revealCircle;
	animation-delay: 1.0s;
}

/*
 * Covers the central curved-line graphic.
 */
.graphicMaskLines {
	top: 0;
	left: 31.8%;
	width: 50%;
	height: 100%;

	animation-name: revealLines;
	animation-delay: 2.0s;
}

.graphicMaskXLines {
	top: 0;
	left: 70%;
	width: 100%;
	height: 100%;

	animation-name: revealXLines;
	animation-delay: 3.0s;
}

@keyframes revealCircle {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-105%);
	}
}

@keyframes revealLines {
	from {
		transform: translateY(0);
	}

	to {
		transform: translateY(105%);
	}
}

@keyframes revealXLines {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(105%);
	}
}

@media (max-width: 767px) {
	.headerSplit {
		padding: 40px 0;
	}

	.headerSplit .row {
		display: block;
	}

	.headerSplitText {
		padding: 15px;
	}

	.headerSplitImage {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.graphicMask {
		display: none;
		animation: none;
	}
}

.letsTalkPop {
	display: inline-block;
	transform-origin: center;
	animation: letsTalkPop 3.8s ease-in-out 2s;
}

@keyframes letsTalkPop {
	0%,
	60%,
	100% {
		transform: scale(1);
	}

	67% {
		transform: scale(1.2);
	}

	74% {
		transform: scale(0.9);
	}

	80% {
		transform: scale(1.04);
	}

	86% {
		transform: scale(1);
	}
}

/* ------------------------------------------------ */

.workWords {
	color: #50585c;
}

.workWords span {
	display: inline-block;
	animation: workWordColour 4s infinite;
}

.workWords span:nth-child(1) {
	animation-delay: 0s;
}

.workWords span:nth-child(2) {
	animation-delay: 1s;
}

.workWords span:nth-child(3) {
	animation-delay: 2s;
}

@keyframes workWordColour {
	0%,
	20% {
		color: #a21d4b;
	}

	25%,
	100% {
		color: #50585c;
	}
}

/* ------------------------------------------------ */

.processSection {
	padding: 0px;
}

.processRow {
	display: flex;
	align-items: stretch;
}

.processItem {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 20px;

	min-width: 0;
	padding: 25px 30px;

	border-right: 1px solid rgba(60, 70, 75, 0.2);

	overflow: hidden;
	isolation: isolate;
}

/* Hover background panel */
.processItem::before {
	content: "";
	position: absolute;
	z-index: -1;

	top: 10px;
	right: 18px;
	bottom: 10px;
	left: 18px;

	background: #e8f0d8;
	border-radius: 20px 0px;

	opacity: 0;
	transform: scale(0.92);

	transition:
		opacity 0.35s ease,
		transform 0.35s ease;
}

.processItem:hover::before {
	opacity: 1;
	transform: scale(1);
}

.processItem:last-child {
	border-right: none;
}

.processIcon {
	flex: 0 0 72px;
}

.processIcon img {
	display: block;
	width: 72px;
	height: 72px;
	object-fit: contain;
}

.processContent {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
}

.processContent p {
	width: 100%;
	max-width: none;
}

.processIcon,
.processContent {
	position: relative;
	z-index: 1;

	transition: transform 0.35s ease;
}

.processItem:hover .processIcon {
	/*transform: translateY(-4px) rotate(-12deg);*/
}

.processItem:hover .processContent {
	transform: translateY(-3px);
}

@media (max-width: 1024px) {
	.processRow {
		display: flex;
		flex-direction: column;
		width: 100%;
	}

	.processRow > .processItem {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 100% !important;
		float: none !important;

		margin: 0;
		padding: 30px 15px;

		border-right: none;
		border-bottom: 1px solid rgba(60, 70, 75, 0.2);
	}

	.processRow > .processItem:last-child {
		border-bottom: none;
	}
}

@media (max-width: 480px) {
	.processItem {
		gap: 15px;
	}

	.processIcon {
		flex-basis: 55px;
	}

	.processIcon img {
		width: 55px;
		height: 55px;
	}
}

@media (max-width: 700px) {
    .headLogo {
        max-width: 250px !important;
    }
}