/*!
Theme Name: Eldo
Theme URI: https://www.eldo.co.uk
Author: Eldo
Author URI: https://www.eldo.co.uk
Description: The best bespoke build, by Eldo Web Design Ltd.
Version: 8.0
License: Private
License URI: https://www.eldo.co.uk
Text Domain: Eldo
Tags: bespoke
*/
/* SCOTT */
body {
	margin: 0;
	background: #fff;
	font-family: var(--body-font);
	color: var(--body-colour);
	font-weight: 300;
	font-optical-sizing: auto;
	font-style: normal;
	font-size: 16px;
}
#page-sections, #footer, #copyright {
	position: relative;
	overflow-x: hidden;
}
/*--------------------------------------------------------------
# Theme Settings
--------------------------------------------------------------*/
:root {
	/* Section spacing */
	--section-padding-y: 40px;
	/* Container Gap */
	--container-gap: 40px;
	/* Tiny spacing */
	--spacing-tiny: 10px;
	--margin-y-tiny: 5px;
	/* Narrow spacing */
	--spacing-narrow: 20px;
	--margin-y-narrow: 10px;
	/* Standard spacing */
	--spacing: 40px;
	--margin-y: 20px;
	/* Wide spacing */
	--spacing-wide: 80px;
	--margin-y-wide: 40px;
	/* Animations */
	--animate-duration: 1s;
	--animate-delay: 0s;
	--animate-repeat: 1;
	/* Brand colours */
	--primary-colour: #007aac;
	--accent-colour: #008b6d;
	/* Backgrounds */
	--dark-bg: #015679;
	--light-bg: #eeeeee;
	--box-bg: rgba(0,0,0,0.05);
	/* Inputs */
	--input-bg: #f5f5f5;
	--input-border: #aaaaaa;
	--input-border-focus: #008b6d;
	--input-bg-focus: #ffffff;
	--input-colour: #151515;
	/* Typography */
	--body-colour: #151515;
	--headings-colour: #002e6f;
	--headings-font: "Figtree", Arial, sans-serif;
	--body-font: "Figtree", Arial, sans-serif;
	/* Shared shadow */
	--shadow: 0 0 10px rgba(0,0,0,0.2);
	/* Buttons */
	--primary-button: #007aac;
	--primary-button-text: #ffffff;
	--primary-button-hover: #008b6d;
	--primary-button-text-hover: #ffffff;
	--secondary-button: #007aac;
	--secondary-button-text: #007aac;
	--secondary-button-hover: #008b6d;
	--secondary-button-text-hover: #fff;
	/* Links */
	--link: #007aac;
	--link-hover: #008b6d;
	--menu-link: #151515;
	--menu-link-hover: #007aac;
}
.is-dark {
	/* Brand colours */
	--accent-colour: #008b6d;
	/* Backgrounds */
	--box-bg: rgba(255,255,255,0.1);
	/* Inputs */
	--input-bg: rgba(0,0,0,0.2);
	--input-bg-focus: rgba(255,255,255,0.7);
	--input-colour: rgba(255,255,255,0.7);
	/* Typography */
	--body-colour: #fff;
	--headings-colour: #fff;
	color:#fff;
	/* Buttons */
	--primary-button: #008b6d;
	--primary-button-text: #002e6f;
	--primary-button-hover: #fff;
	--primary-button-text-hover: #008b6d;
	--secondary-button: #008b6d;
	--secondary-button-text: #ffffff;
	--secondary-button-hover: #ffffff;
	--secondary-button-text-hover: #008b6d;
	/* Links */
	--link: #008b6d;
	--link-hover: #fff;
	--menu-link: #fff;
	--menu-link-hover: #008b6d;
}
/* Tighten outer gutters on smaller desktop screens. */
@media screen and (max-width: 1199px) {
:root {
	--container-gap: 30px;
}
}
.tiny {
	--spacing: var(--spacing-tiny);
}
.tiny-y {
	--margin-y: var(--margin-y-tiny);
}
.narrow {
	--spacing: var(--spacing-narrow);
}
.narrow-y {
	--margin-y: var(--margin-y-narrow);
}
.no-gutters-y {
	--margin-y: 0;
}

/* Responsive spacing */
@media screen and (min-width: 1024px) {
	.wide {
		--spacing: var(--spacing-wide);
	}
	.wide-y {
		--margin-y: var(--margin-y-wide);
	}
}
/* Balance odd item grids on tablet. */
@media screen and (min-width: 768px) and (max-width: 1023px) {
	.balance-odd > :first-child:nth-last-child(odd) {
		flex: 0 0 100%;
		max-width: 100%;
	}
}
/* Responsive section spacing */
@media screen and (max-width: 1023px) {
	:root {
		--section-padding-y: 30px;
	}
}

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

		/* Section Padding */
		--section-padding-y: 20px;

		/* Match Layout Gaps to Container */
		--spacing-tiny: var(--container-gap);
		--margin-y-tiny: calc(var(--container-gap) / 2);
		--spacing-narrow: var(--container-gap);
		--margin-y-narrow: calc(var(--container-gap) / 2);
		--spacing: var(--container-gap);
		--margin-y: calc(var(--container-gap) / 2);
		--spacing-wide: var(--container-gap);
		--margin-y-wide: calc(var(--container-gap) / 2);
	}
}
@media screen and (max-width: 575px) {
	:root {
		--container-gap: 20px;
	}
	body {
		font-size: 16px;
	}
}
/*--------------------------------------------------------------
# Typography
--------------------------------------------------------------*/
h1, h2, h3, h4, h5, h6 {
	color: var(--headings-colour);
	font-family: var(--headings-font);
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 600;
	clear: both;
	line-height: 1.3;
}
h1 {
	color: var(--headings-colour);
	line-height: 1;
	--base-size: 2.8em;
	font-size: var(--base-size);
}
h2 {
	--base-size: 1.8em;
	font-size: var(--base-size);
}
h3 {
	--base-size: 1.4em;
	font-size: var(--base-size);
}
h3.small {
	font-size: 1.1em;
}
h4 {
	--base-size: 1.1em;
	font-size: var(--base-size);
}
h5 {
	--base-size: 0.8em;
	font-size: var(--base-size);
}
h6 {
	--base-size: 0.6em;
	font-size: var(--base-size);
}
p {
	margin-bottom: 1.5em;
	color: var(--body-colour);
	--base-size: 1em;
	font-size: var(--base-size);
}
.bigger {
	font-size: calc(var(--base-size) * 1.3);
}
a {
	font-weight: 500;
}
i {
	font-weight: 400!important;
}
html.fa-icons-ready ul.list li::before,
html.fa-icons-ready blockquote:before,
html.fa-icons-ready blockquote:after,
html.fa-icons-ready a.button-link:after,
html.fa-icons-ready span.button-link:after,
html.fa-icons-ready .footer-menu li:before {
	opacity: 1;
	transition: opacity ease 0.2s;
}
/* Reserve icon space before Font Awesome loads to prevent layout shift. */
i[class*="fa"] {
	opacity: 0;
	transition: opacity .2s ease;
	display: inline-block;
	width: 1.35em;
	height: 1em;
	line-height: 1;
	text-align: center;
}
html.fa-icons-ready i[class*="fa"] {
	opacity: 1;
}
/* Mobile heading size */
@media screen and (max-width: 767px) {
	h1 {
		font-size: 2.2em;
	}
}
/*--------------------------------------------------------------
## TinyMCE
--------------------------------------------------------------*/
#tinymce {
	padding: 10px!important;
}
#tinymce * {
	opacity: 1!important;
}
/* Keep Font Awesome list icons visible inside TinyMCE. */
.mce-content-body ul.list li:before {
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	opacity: 1;
}
/*--------------------------------------------------------------
## Links
--------------------------------------------------------------*/
a, a:visited {
	color: var(--link);
	text-decoration: none;
	transition: all 0.3s;
}
a:hover,
a:active {
	color: var(--link-hover);
	outline: none;
}
/* Underlined text link */
a.text-link {
	font-weight: 500;
	border-bottom: 1px solid var(--link);
	display: inline-block;
}
a.text-link:hover {
	border-bottom-color: var(--link-hover);
	color: var(--link-hover);
}
/*--------------------------------------------------------------
# Buttons
--------------------------------------------------------------*/
a.button, button.button, input[type="submit"], input[type="reset"], input[type="button"] {
	background: var(--primary-button);
	color: var(--primary-button-text);
	font-family: var(--body-font);
	border: 1px solid var(--primary-button);
	border-radius: 4px!important;
	font-weight: 600!important;
	padding: 8px 24px!important;
	transition: all ease 0.3s;
	display: inline-block;
	text-align: center;
	cursor: pointer;
	margin: 5px 0;
}
a.button:hover, button.button:hover, input[type="submit"]:hover, input[type="reset"]:hover, input[type="button"]:hover {
	background: var(--primary-button-hover);
	color: var(--primary-button-text-hover);
	border-color: var(--primary-button-hover);
}
/* Secondary button variant */
a.button.secondary, button.button.secondary {
	background: none;
	color: var(--secondary-button-text);
	border-color: var(--secondary-button);
}
a.button.secondary:hover, button.button.secondary:hover {
	background: var(--secondary-button-hover);
	color: var(--secondary-button-text-hover);
	border-color: var(--secondary-button-hover);
}
/* Arrow-style text button */
a.button-link, span.button-link {
	color: var(--primary-button);
	border-bottom: 1px solid var(--primary-button);
	font-weight: bold;
	display: inline-block;
	padding-bottom: 5px;
}
a.button-link:after, span.button-link:after {
	line-height: 1;
	width: 1em;
	height: 1em;
	display: inline-block;
	text-align: center;
	transition: all ease 0.3s;
	margin-left: 10px;
	position: relative;
	padding-bottom: 5px;
	top: 1px;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	font: var(--fa-font-solid);
	content: "\f138";
	opacity: 0;
}
a.button-link:hover, span.button-link:hover {
	border-color: var(--link-hover);
	color: var(--link-hover);
}
/* Space for 2 buttons side-by-side */
a.button + a.button {
	margin-left: 5px;
}
/*--------------------------------------------------------------
# Banner
--------------------------------------------------------------*/
#banner-bg {
	background: var(--dark-bg);
}
#banner .button, #nobanner .button, .banner .button {
	margin-right: 10px;
}
#banner {
	padding: 60px 0;
	position: relative;
	background-color: var(--dark-bg);
	min-height: 500px;
	display: flex;
	justify-content: center;
	flex-direction: column;
}
#banner .banner-background-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#banner.banner-video {
	min-height: 500px;
	background: #111;
}
.single #banner{
	min-height: 400px;
}
#banner .container {
	position: relative;
	height: 100%;
	z-index: 2;
}
#banner .row {
	height: 100%;
}
#banner:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(to right, transparent, #001432 , #001432, transparent);
	opacity: 0.7;
	z-index: 1;
}
#banner h1, #banner p {
	position: relative;
}
#banner h1 {
	margin: 0;
}
#banner p {
	margin: 20px 0 0 0;
}
#banner .text {
	float: left;
	width: 100%;
}
#banner cite, #nobanner cite {
	font-size: 0.7em;
}
.banner-button {
	margin-top: 30px!important;
}
/* Fade the banner in visually without delaying the LCP image itself. */
#banner.banner-image::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: var(--dark-bg);
	pointer-events: none;
	animation: banner-reveal 1.7s ease forwards;
}
#banner.banner-image .container {
	z-index: 2;
}
@keyframes banner-reveal {
	from {
		opacity: 1;
	}
	to {
		opacity: 0;
	}
}
/* Fade image-right banners in visually without delaying the LCP image itself. */
.banner-image-right-image {
	position: relative;
	overflow: visible;
}
.banner-image-right-image::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 50vw;
	z-index: 1;
	background: var(--dark-bg);
	pointer-events: none;
	animation: banner-reveal 1.7s ease forwards;
}
/* Mobile banner adjustments */
@media screen and (max-width: 767px) {
	#banner:before,
	.slider .slide:before {
		background-image: linear-gradient(to right, #000 , #000);
		opacity: 0.6;
	}
	#banner {
		min-height: 300px;
	}
	#banner.banner-video {
		min-height: 300px;
	}
	.single #banner {
	min-height: 300px;
	}
}
/*--------------------------------------------------------------
## Banner Background Video
--------------------------------------------------------------*/
#banner.banner-video {
	overflow: hidden;
}
#banner.banner-video .bg-video,
#banner.banner-video .bg-video-file {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
/* Keep Vimeo background videos proportionally covering the full banner. */
#banner.banner-video .bg-video {
	pointer-events: none;
	overflow: hidden;
	container-type: size;
}
#banner.banner-video .bg-video .bg {
	position: absolute;
	top: 50%;
	left: 50%;
	width: max(100cqw, 177.78cqh);
	height: auto;
	aspect-ratio: 16 / 9;
	max-width: none;
	transform: translate(-50%, -50%);
}
#banner.banner-video .bg-video-file {
	display: block;
	object-fit: cover;
}
#banner.banner-video .container {
	z-index: 2;
}
#banner.banner-video.fade-video .bg-video iframe,
#banner.banner-video.fade-video .bg-video-file {
	opacity: 0;
	transition: opacity 0.3s ease;
}
#banner.banner-video.fade-video .bg-video iframe.is-loaded,
#banner.banner-video.fade-video .bg-video-file.is-loaded {
	opacity: 1;
}
/* Use the mobile fallback image instead of video when one is provided. */
@media screen and (max-width: 767px) {
	#banner.banner-video.has-mobile-fallback {
		background-image: var(--mobile-video-bg);
		background-size: cover;
		background-position: center;
		background-repeat: no-repeat;
	}
	#banner.banner-video.has-mobile-fallback .bg-video,
	#banner.banner-video.has-mobile-fallback .bg-video-file {
		display: none;
	}
}
/*--------------------------------------------------------------
## Banner – Image Right
--------------------------------------------------------------*/
/* Keep the Image Right banner at the standard banner height. */
#banner.banner-image-right {
	background: var(--dark-bg);
	padding-top: 0;
	padding-bottom: 0;
	overflow-x: hidden;
}
#banner.banner-image-right .container,
#banner.banner-image-right .row {
	min-height: inherit;
}
#banner.banner-image-right:before {
	display: none;
}
/* Side-by-side layout with the image bleeding to the viewport edge. */
#banner.banner-image-right .row {
	align-items: stretch!important;
}
#banner.banner-image-right .banner-image-right-image {
	position: relative;
	margin-top: 0;
	margin-bottom: 0;
	align-self: stretch;
	padding-left: 0;
	overflow: visible;
}
#banner.banner-image-right .banner-image-right-image img {
	position: absolute;
	inset: 0;
	display: block;
	width: 50vw;
	max-width: none;
	height: 100%;
	object-fit: cover;
}
#banner.banner-image-right .banner-image-right-text {
	padding-right: var(--container-gap);
}
/* Tablet and mobile: stack a full-width image above padded text. */
@media screen and (max-width: 800px) {
	#banner.banner-image-right {
		min-height: 0;
	}
	#banner.banner-image-right .container {
		max-width: none;
		padding-left: 0;
		padding-right: 0;
	}
	#banner.banner-image-right .row {
		margin-left: 0;
		margin-right: 0;
	}
	#banner.banner-image-right .banner-image-right-image,
	#banner.banner-image-right .banner-image-right-text {
		flex: 0 0 100%;
		max-width: 100%;
	}
	#banner.banner-image-right .banner-image-right-image {
		order: 1;
		width: 100%;
		padding: 0;
	}
	#banner.banner-image-right .banner-image-right-image img {
		position: relative;
		inset: auto;
		width: 100%;
		max-width: none;
		height: auto;
		aspect-ratio: 16 / 9;
		object-fit: cover;
		margin: 0;
	}
	#banner.banner-image-right .banner-image-right-image::after {
		width: 100%;
	}
	#banner.banner-image-right .banner-image-right-text {
		order: 2;
		width: 100%;
		padding: var(--container-gap);
	}
}
/*--------------------------------------------------------------
## No Banner
--------------------------------------------------------------*/
#nobanner h1, #nobanner p {
	position: relative;
}
#nobanner {
	padding: 60px 0;
	float: left;
	width: 100%;
}

/* Mobile no-banner spacing */
@media screen and (max-width: 767px) {
	#nobanner {
		padding: 40px 0;
	}
}
/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
header {
	position: relative;
}
#header {
	background: #eaeaea;
}
header .head-info {
	text-align: right;
}
#top-bar {
	padding: 3px 0;
	min-height: 38px;
}
#top-bar .head-info {
	text-align: right;
}
#top-bar .head-info a {
	margin-left: 10px;
	display: inline-block;
	height: 24px;
}
header span.header-link {
	margin: 5px;
	display: inline-block;
}
span.header-link i {
	color: var(--accent-colour);
}
.sub-menu li {
	display: block;
	width: 100%;
}
/*--------------------------------------------------------------
## Header Layout
--------------------------------------------------------------*/
#site-header {
	position: relative;
	z-index: 101;
	background: #fff;
}
#site-header.sticky-header {
	position: sticky;
	top: 0;
	box-shadow: 0 6px 6px rgba(0,0,0,0.1);
}
/* Slim the sticky header after scrolling and keep the overlay header aligned. */
#site-header.sticky-header.scrolled > .container,
#site-header.sticky-header.scrolled .mobile-overlay-header {
	padding-top: 4px;
	padding-bottom: 4px;
}
#site-header.sticky-header.scrolled .logo img,
#site-header.sticky-header.scrolled .logo svg {
	max-width: 170px;
}
/* Keep the sticky header below the WordPress admin bar. */
body.admin-bar #site-header.sticky-header {
	top: 32px;
}
@media screen and (max-width: 782px) {
	body.admin-bar #site-header.sticky-header {
		top: 46px;
	}
}
/* Let the sticky header return to the top once the mobile admin bar scrolls away. */
@media screen and (max-width: 600px) {
	body.admin-bar #site-header.sticky-header {
		top: 0;
	}
}
.logo a:focus-visible {
	display: inline-block;
	outline: 2px solid var(--accent-colour);
	outline-offset: 4px;
	border-radius: 2px;
}
#site-header > .container,
.mobile-overlay-header {
	padding-top: 12px;
	padding-bottom: 12px;
	transition: all ease 0.3s;
}
.logo img,
.logo svg {
	width: 100%;
	display: block;
	max-width: 190px;
	transition: all ease 0.3s;
}
#site-header .header-right {
	min-width: 0;
}
#site-header .header-contact {
	flex: 1;
}
#site-header .header-contact .header-link {
	margin-left: 10px;
}
#site-header .header-button {
	flex: 0 0 auto;
	margin:0
}
.header-button a {
	margin:0
}
#site-header #menu-desktop {
	flex: 1;
}
#site-header #menu-desktop > * {
	margin: 0;
}
#site-header #menu {
	width: 100%;
	background: #f5f5f5;
	padding: 0;
}
#site-header #menu .container {
	padding-top: 0;
	padding-bottom: 0;
}
#site-header #menu .menu {
	margin: 0;
	padding: 0;
}
#site-header.full-width-menu .header-contact {
	text-align: right;
}
#header-menu-desktop {
	text-align: right;
}
.full-width-menu #header-menu-desktop {
	text-align: center;
}
/*--------------------------------------------------------------
## Menu Toggle
--------------------------------------------------------------*/
.menu-toggle-wrap,
#menu-toggle {
	display: none;
}
#menu-toggle {
	position: relative;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	margin: 0;
	background: none;
	border: 0;
	cursor: pointer;
}
/* Centre the hamburger bars inside the fixed-size menu toggle. */
#menu-toggle span {
	position: absolute;
	left: 50%;
	width: 34px;
	height: 4px;
	background: var(--primary-colour);
	transform: translateX(-50%);
}
#menu-toggle span:nth-child(1) {
	top: 9px;
}
#menu-toggle span:nth-child(2) {
	top: 18px;
}
#menu-toggle span:nth-child(3) {
	top: 27px;
}
#menu-toggle:hover span {
	background: var(--dark-bg);
}
/* Automatically use the mobile header when the desktop header content no longer fits. */
#site-header.menu-fit-mobile .header-contact,
#site-header.menu-fit-mobile #menu-desktop,
#site-header.menu-fit-mobile #menu {
	display: none!important;
}
#site-header.menu-fit-mobile .menu-toggle-wrap {
	display: block;
}
#site-header.menu-fit-mobile #menu-toggle {
	display: flex;
}
/*--------------------------------------------------------------
## Responsive Header
--------------------------------------------------------------*/
/* Hide the top bar on smaller screens when required for this site. */
@media screen and (max-width: 1023px) {
	#top-bar {
		display: none;
	}
}
@media screen and (max-width: 1023px) {
	#site-header > .container,
	.mobile-overlay-header {
		padding-top: 12px;
		padding-bottom: 12px;
	}
	#site-header .header-right {
		flex: 1;
	}
	#site-header .header-contact,
	#site-header #menu-desktop,
	#site-header #menu,
	#site-header .header-button {
		display: none!important;
	}
	#site-header .logo {
		max-width: calc(100% - 60px);
	}
	header .head-info span.header-link {
		display: none;
	}
	.menu-toggle-wrap {
		display: block;
	}
	#menu-toggle {
		display: flex;
	}
}

/* Mobile menu toggle sizing */
@media screen and (max-width: 767px) {
	#site-header #menu-toggle {
		max-width: none;
	}
}
/* Small mobile header adjustments */
@media screen and (max-width: 575px) {
	.head-info {
		text-align: center;
	}
}
/*--------------------------------------------------------------
## Mobile Menu Overlay
--------------------------------------------------------------*/
/* Leave enough scroll space below the mobile menu for browser UI. */
#mobile-menu-overlay {
	position: fixed;
	inset: 0;
	height: 100vh;
	display: none;
	flex-direction: column;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-bottom: 90px;
	z-index: 9999;
}
html.menu-open #mobile-menu-overlay {
	display: flex!important;
}
/* Keep the mobile menu below the WordPress admin bar at tablet widths. */
@media screen and (min-width: 783px) and (max-width: 1023px) {
	body.admin-bar #mobile-menu-overlay {
		top: 32px;
	}
}
/* Keep the mobile menu below the WordPress admin bar while it remains fixed. */
@media screen and (max-width: 782px) {
	body.admin-bar #mobile-menu-overlay {
		top: 46px;
		height: calc(100vh - 46px);
	}
}
/* Let the scrolled mobile menu use the full viewport once the admin bar scrolls away. */
@media screen and (max-width: 600px) {
	body.admin-bar #site-header.scrolled #mobile-menu-overlay {
		top: 0;
		height: 100vh;
	}
}
/* Match the menu toggle size and centre the close icon within it. */
.mobile-menu-close {
	position: relative;
	display: block;
	width: 40px;
	height: 40px;
	padding: 0;
	margin: 0;
	background: none;
	border: 0;
	cursor: pointer;
}
.mobile-menu-close span {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 28px;
	height: 4px;
	background: #fff;
}
.mobile-menu-close span:first-child {
	transform: translate(-50%, -50%) rotate(45deg);
}
.mobile-menu-close span:last-child {
	transform: translate(-50%, -50%) rotate(-45deg);
}
/* Centre the mobile menu with safe space above and below. */
#mobile-main {
	flex: 1;
	width: 100%;
	display: flex;
	align-items: center;
	padding: 60px 0;
	box-sizing: border-box;
}
#mobile-menu-overlay .social {
	text-align: center;
	padding-top: 30px;
}
.mob-details {
	text-align: center;
	margin-bottom: 15px;
	font-size: 1.1em;
	color: var(--accent-colour);
}
.mob-details a {
	color: var(--body-colour);
	font-weight: 400;
}
.mob-details a:hover {
	color: var(--link);
}
body.menu-open {
	overflow: hidden;
}
@media screen and (max-width: 767px) {
	.mob-ctas {
		padding-top: 30px;
	}
}
/*--------------------------------------------------------------
# News / Blog
--------------------------------------------------------------*/
#breadcrumbs {
	margin-bottom: 10px;
}
#breadcrumbs i {
	font-size: 0.8em;
	color: var(--body-colour);
}
span.breadcrumb_last {
	display: none;
}
#news-page, #no-results {
	padding: 50px 0;
}
.single .side {
	margin: 20px 0;
}
h5.author-socials {
	font-size: 1.7em;
	margin: 10px 0;
}
.author-socials {
	margin:10px 0
}
#written-by {
	margin-top: 22px;
}
.single .side h4 {
	margin-top:0
}
.single .side  p {
	margin-bottom: 30px;
	margin-top: 0;
}
.single p.side-title {
	border-bottom: 1px solid #ccc;
	margin-top: 0;
	font-size: 1.1em;
	margin-bottom: 6px;
	font-weight: 500;
}
.side a.button {
	margin-top:30px
}
.post-wrap {
	margin: 20px 0;
}
.single-thumb img {
	display: block;
	margin-bottom: 20px;
	width: 100%;
}
.container.no-sidebar {
	max-width: 860px;
}
.search-row {
	margin-top: -10px;
	margin-bottom: 20px;
}
.search-row .search-wrap {
	margin: 10px 0;
}
.search-row .cat-wrap {
	margin: 10px 0;
}
.screen-reader-text {
	position: absolute!important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/*--------------------------------------------------------------
## Blog Masonry
--------------------------------------------------------------*/
.blog-masonry {
	column-count: 3;
	column-gap: 20px;
}
.blog-masonry-item {
	display: inline-block;
	width: 100%;
	margin: 0 0 20px;
	break-inside: avoid;
}
@media screen and (max-width: 1023px) {
	.blog-masonry {
		column-count: 2;
	}
}
@media screen and (max-width: 575px) {
	.blog-masonry {
		column-count: 1;
	}
}
/* Responsive blog layout */
@media screen and (min-width: 768px) {
	.search-row .search-wrap {
		max-width: 300px;
	}
}
@media screen and (max-width: 767px) {
	.single-post .post-wrap {
		order: -1;
	}
	.single-post .side {
		margin-top: 0;
		order: 2;
	}
	.post-wrap {
		margin-bottom: 0;
	}
}
/*--------------------------------------------------------------
# Page Content
--------------------------------------------------------------*/
blockquote {
	width: 100%;
	margin: 15px 0;
	background: var(--box-bg);
	padding: 30px 60px;
	font-weight: normal;
	text-align: center;
	position: relative;
}
blockquote p:first-child {
	margin-top: 0;
}
blockquote p:last-child {
	margin-bottom: 0;
}
blockquote:before {
	content: "\f10D";
	position: absolute;
	top: 10px;
	left: 20px;
	color: var(--accent-colour);
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	font: var(--fa-font-solid);
	font-size: 30px;
	opacity: 0;
}
blockquote:after {
	content: "\f10E";
	position: absolute;
	bottom: 10px;
	right: 20px;
	color: var(--accent-colour);
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	font: var(--fa-font-solid);
	font-size: 30px;
	opacity: 0;
}
.twitter-tweet {
	margin: 0 auto;
	display: block;
}
iframe {
	display: block;
	float: none;
	width: 100%;
}
iframe.instagram-media {
	margin: 0 auto!important;
	display: block;
	float: none!important;
}
iframe[src*="google.com/maps/embed"] {
	width: 100%!important;
	height: 450px;
}
hr {
	background-color: var(--primary-colour);
	border: 0;
	height: 1px;
	width: 60%;
	margin-left: 20%;
	margin-right: 20%;
	margin-bottom: 1.5em;
}
.bottom {
	margin-top: auto;
}

/* Small mobile content adjustments */
@media screen and (max-width: 575px) {
	blockquote {
		width: 100%;
		margin: 15px 0;
		padding: 50px 20px;
	}
	iframe[src*="google.com/maps/embed"] {
		height: 340px;
	}
}
/*--------------------------------------------------------------
## Fancybox / Modals
--------------------------------------------------------------*/
.fancybox-container {
	top: 0!important;
	bottom: 0!important;
}
.fancybox-is-open .fancybox-bg {
	opacity: 1;
}
.fancybox-bg {
	background: rgba(0, 0, 0, 0.7);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
html.fancybox-active body > *:not(.fancybox-container) {
	filter: blur(10px);
	transition: filter 0.3s ease;
}
.modal {
	border-radius: 10px;
}
.fancybox-infobar {
	display: none!important;
}
.modal-title, .modal-name {
	margin: 0;
}
.modal-title {
	margin-bottom: 20px;
}
.fancybox-toolbar .fancybox-button:hover {
	background: var(--primary-colour);
}
.fancybox-thumbs__list a:before {
	border-color: var(--primary-colour);
}
.fancybox-button--arrow_left:hover div, .fancybox-button--arrow_right:hover div {
	background: var(--primary-colour);
}
.fancybox-navigation .fancybox-button div {
	transition: all 0.4s ease;
	background: var(--link);
	opacity: 1;
	border-radius: 50%;
	overflow: hidden!important;
}
.fancybox-navigation .fancybox-button div:hover {
	background: var(--link-hover);
}
.fancybox-button[disabled] {
	display: none!important;
}
/* .fancybox-button {
height:34px;
width:34px
} */
.fancybox-button, .fancybox-button:link, .fancybox-button:visited {
	color: #fff;
	background: transparent!important;
	box-shadow: none!important;
}
.fancybox-slide--html .fancybox-close-small {
	color: #fff;
	background: var(--link);
	padding: 5px;
	right: 10px;
	top: 10px;
	border-radius: 50%;
	opacity: 1;
	transition: all ease 0.3s;
}
.fancybox-slide--html .fancybox-close-small:hover {
	background: var(--link-hover);
}
.fancybox-slide--image {
	padding: 44px 10px;
}
.modal .fancybox-button svg path {
	fill: var(--primary-button);
	transition: all ease 0.3s;
}
.modal .fancybox-button svg:hover path {
	fill: var(--primary-button-hover);
}
.fancybox-button:focus-visible {
	outline: 2px solid var(--accent-colour);
	outline-offset: 3px;
}

/* Desktop modal sizing */
@media screen and (min-width: 1024px) {
	.modal {
		max-width: 900px;
		margin: 0 10px;
	}
}
/*--------------------------------------------------------------
# Forms
--------------------------------------------------------------*/
/* Remove default focus outlines from form buttons. */
button:active,
input[type="button"]:active,
input[type="reset"]:active,
input[type="submit"]:active {
	outline: none;
}
/* Shared styling for standard form fields. */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
select,
textarea {
	color: var(--input-colour);
	background-color: var(--input-bg);
	border: 1px solid var(--input-border);
	border-radius: 2px;
	padding: 12px;
	box-sizing: border-box;
	font-family: inherit;
	font-size: 16px;
	line-height: normal!important;
	transition: all 0.3s ease;
	width: 100%;
}
/* Keep placeholder text lighter than entered values. */
input::placeholder,
textarea::placeholder {
	color: var(--input-colour);
	opacity: 0.4;
}
/* Show the native clear control on search fields. */
input[type="search"]::-webkit-search-cancel-button {
	cursor: pointer;
}
/* Replace the native select arrow with the theme arrow. */
select {
	appearance: none;
	background-image: url('images/angle-down.svg');
	background-size: 18px;
	background-position: center right 12px;
	background-repeat: no-repeat;
	padding-right: 42px;
}
/* Custom checkbox and radio controls. */
input[type="checkbox"],
input[type="radio"] {
	appearance: none;
	width: 20px;
	height: 20px;
	margin: 0 8px 0 0;
	background: #fff;
	border: 2px solid var(--input-border);
	cursor: pointer;
	position: relative;
	vertical-align: -4px;
}
input[type="checkbox"] {
	border-radius: 3px;
}
input[type="radio"] {
	border-radius: 50%;
}
input[type="checkbox"]:checked,
input[type="radio"]:checked {
	background: var(--accent-colour);
	border-color: var(--accent-colour);
}
/* Add the checked-state tick. */
input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 1px;
	width: 5px;
	height: 10px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
/* Add the selected-state radio centre. */
input[type="radio"]:checked::after {
	content: "";
	position: absolute;
	inset: 4px;
	background: #fff;
	border-radius: 50%;
}
/* Keep range controls native while applying the theme colour. */
input[type="range"] {
	accent-color: var(--primary-button-hover);
	cursor: pointer;
	width: 100%;
}
/* Shared focused-field state. */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
select:focus,
textarea:focus {
	outline: none;
	color: var(--input-colour);
	background-color: var(--input-bg-focus);
	border-color: var(--input-border-focus);
}
/* Match select hover borders to the focused-field state. */
select:hover {
	border-color: var(--input-border-focus);
}
/*--------------------------------------------------------------
## Gravity Forms
--------------------------------------------------------------*/
/* Match Gravity Forms field text to the global form baseline. */
.gform_wrapper input,
.gform_wrapper select,
.gform_wrapper textarea {
	font-size: 16px!important;
}
/* Keep Gravity Forms text readable on dark sections. */
.is-dark .gform_wrapper .gfield_label,
.is-dark .gform_wrapper .gform-field-label,
.is-dark .gform_wrapper .gfield_description,
.is-dark .gform_wrapper .ginput_complex label,
.is-dark .gform_wrapper .gsection_description,
.is-dark .gform_wrapper .gform_description {
	color: var(--body-colour)!important;
}
/* Brighten Gravity Forms error styling on dark sections. */
.is-dark .gform_wrapper .gfield_required,
.is-dark .gform_wrapper .gform_validation_errors,
.is-dark .gform_wrapper .gform_validation_errors h2,
.is-dark .gform_wrapper .gfield_validation_message {
	color: #ff6b5f!important;
}
.is-dark .gform_wrapper .gform_validation_errors,
.is-dark .gform_wrapper .gfield_error input,
.is-dark .gform_wrapper .gfield_error select,
.is-dark .gform_wrapper .gfield_error textarea {
	border-color: #ff6b5f!important;
}
/* Keep the main Gravity Forms validation message compact. */
.gform_wrapper .gform_validation_errors h2 {
	margin: 0!important;
	font-size: 1.2em!important;
}
/*--------------------------------------------------------------
# Search
--------------------------------------------------------------*/
/* Keep the search field and submit button together. */
.search-form {
	position: relative;
}
.search-form .search-field {
	padding-right: 60px;
}
/* Position the search submit button inside the field. */
.search-submit {
	position: absolute;
	top: 0;
	right: 0;
	height: 100%;
	width: 50px;
	padding: 0;
	margin: 0;
	background: none;
	border: 0;
	color: var(--primary-button);
	cursor: pointer;
	transition: all 0.3s ease;
}
.search-submit:hover {
	color: var(--primary-button-hover);
}
/*--------------------------------------------------------------
# Content Alignments
--------------------------------------------------------------*/
.alignleft {
	display: inline;
	float: left;
	margin-right: 1.5em;
	margin-bottom: 5px;
}
.alignright {
	display: inline;
	float: right;
	margin-left: 1.5em;
	margin-bottom: 5px;
}
.aligncenter, .aligncenter img {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
}
/* Standard content lists */
ul, ol {
	color: var(--body-colour);
}
ul li::marker, ol li::marker {
	color: var(--accent-colour);
}

/* Mobile content alignment */
@media screen and (max-width: 767px) {
	.alignleft {
		display: block;
		float: none;
		margin: 20px auto;
	}
	.alignright {
		display: block;
		float: none;
		margin: 20px auto;
	}
	.aligncenter {
		clear: both;
		display: block;
		margin-left: auto;
		margin-right: auto;
	}
	ul, ol {
		margin: 0 0 1.5em 0em;
		-webkit-padding-start: 30px;
	}
}
/*--------------------------------------------------------------
# 404 Page
--------------------------------------------------------------*/
.error-404 {
	padding: 40px 0;
	background: #f5f5f5;
	height: 500px;
	min-height: 500px;
}
.error-404 .container,
.error-404 .row {
	height: 100%;
}
.error-404 {
	text-align: left;
}
.error-404 #icon {
	max-width: 150px;
	border-right: 1px solid #ccc;
}
.error-404 #icon i {
	font-size: 6em;
	color:var(--headings-colour)
}

/* Mobile 404 layout */
@media screen and (max-width: 767px) {
	.error-404 #icon {
		min-width: 100%;
		border: none;
	}
	.error-404 {
		text-align: center;
	}
}
/*--------------------------------------------------------------
# Flexible Content
--------------------------------------------------------------*/
.reusable-section-missing {
	padding: 40px 20px;
	text-align: center;
}
section.is-hidden {
	position: relative;
}
section.is-hidden:hover {
	box-shadow: none;
}
.is-hidden-message {
	position: absolute!important;
	top: 0;
	left: 0;
	z-index: 4;
	width: 100%;
	height: 100%;
	transition: all 0.5s ease;
	box-shadow: 0px 0px 0px 1px rgba(182,0,0,1) inset;
}
section.is-hidden:hover .is-hidden-message {
	opacity: 0.2;
}
.is-hidden-message:before {
	content: 'This section is hidden from visitors';
	background-color: rgba(182,0,0,0.6);
	color: #fff;
	top: 0;
	position: absolute;
	width: 100%;
	left: 0;
	transition: all 0.5s ease;
	padding: 5px 0;
	text-align: center;
	font-family: Arial, Helvetica, sans-serif;
}
#password-protected {
	padding: 40px 0;
}
/*--------------------------------------------------------------
## Empty States
--------------------------------------------------------------*/
.no-block {
	width: calc(100% - 40px);
	max-width: 1100px;
	margin: 0 auto;
	margin-top: 40px;
	margin-bottom: 40px;
	text-align: center;
	padding: 40px!important;
	border: 2px dashed #ccc;
}
.no-block p {
	margin: 10px 0;
}
.accent-text {
	text-transform: uppercase;
	font-size: 0.9em;
}
/* Accent text everywhere except inside layout titles. */
.accent-text:not(.layout-title *) {
	margin-bottom: -1em;
}
.eyebrow {
	margin-bottom: -1em;
}
.subtitle {
	margin-top: -0.8em;
}
.layout-title .tc .button-wrap {
	min-width: 100%;
}
.light-bg {
	background-color: var(--light-bg);
}
.dark-bg {
	background-color: var(--dark-bg);
}
ul.list {
	list-style: none!important;
	padding-left: 0px;
	line-height: 1.5;
	margin-left: 0;
	color: var(--body-colour);
}
ul.list li {
	position: relative;
	padding-left: 25px;
	margin: 10px 0;
}
ul.list li:before {
	color: var(--accent-colour);
	display: inline-block;
	font-size: 1em;
	position: absolute;
	top: 2px;
	line-height: normal;
	left: 0;
	width: 20px;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	font: var(--fa-font-solid);
	opacity: 0;
}
ul.list.standard li:before {
	content: "\f068";
}
ul.list.ticks li:before {
	content: "\f058";
}
#page-sections {
	float: left;
	width: 100%;
}
#page-sections .page-section.full-screen-height {
	min-height: 80vh;
	min-height: 80svh;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
#page-sections .dark-overlay:before {
	position: absolute;
	content: '';
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: #000;
	opacity: 0.7;
}
#page-sections .light-overlay:before {
	position: absolute;
	content: '';
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: #ffffff;
	opacity: 0.7;
}
.background-image div {
	position: relative;
}
.page-section[style*="--bg-mobile"] {
	background-image: var(--bg-mobile);
}
@media (min-width: 1024px) {
	.page-section[style*="--bg-desktop"] {
		background-image: var(--bg-desktop);
	}
}
#page-sections .background-video-section {
	position: relative;
	overflow: hidden;
	background: #111;
}
#page-sections .background-video-section .section-video-bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
}
#page-sections .background-video-section .section-video-bg .bg-video,
#page-sections .background-video-section .section-video-bg .bg-video-file {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
/* Keep Vimeo background videos proportionally covering the full section. */
#page-sections .background-video-section .section-video-bg .bg-video {
	pointer-events: none;
	overflow: hidden;
	container-type: size;
}
#page-sections .background-video-section .section-video-bg .bg-video .bg {
	position: absolute;
	top: 50%;
	left: 50%;
	width: max(100cqw, 177.78cqh);
	height: auto;
	aspect-ratio: 16 / 9;
	max-width: none;
	transform: translate(-50%, -50%);
}
#page-sections .background-video-section .section-video-bg .bg-video-file {
	display: block;
	object-fit: cover;
}
#page-sections .background-video-section > *:not(.section-video-bg) {
	position: relative;
	z-index: 2;
}
#page-sections .background-video-section:before {
	z-index: 1;
}
@media (max-width: 767px) {
	#page-sections .background-video-section.has-mobile-fallback {
		background-image: var(--mobile-video-bg);
		background-size: cover;
		background-position: center;
		background-repeat: no-repeat;
	}
	#page-sections .background-video-section.has-mobile-fallback .section-video-bg {
		display: none;
	}
}
#page-sections .background-video-section .bg-video iframe,
#page-sections .background-video-section .bg-video-file {
	opacity: 0;
	transition: opacity 0.3s ease;
}
#page-sections .background-video-section .bg-video iframe.is-loaded,
#page-sections .background-video-section .bg-video-file.is-loaded {
	opacity: 1;
}
.box {
	background: var(--box-bg);
	padding: 30px;
	float: left;
	width: 100%;
}
.shadow {
	box-shadow: var(--shadow);
}
.hb {
	background: var(--box-bg);
	padding: 30px;
	display: flex;
	float: left;
	width: 100%;
	justify-content: center;
	flex-direction: column;
}
.light-bg .box {
	background: #fff;
}

/* Responsive background behaviour */
@media screen and (max-width: 1023px) {
	.cover, .background-image {
		background-attachment: scroll!important;
	}
}
/* Mobile flexible-content helpers */
@media screen and (max-width: 767px) {
	.box {
		padding: 20px;
	}
}

/*--------------------------------------------------------------
## Two-Column Layouts
--------------------------------------------------------------*/
.two-cols-row .inner-section .container {
	padding: 0!important;
}
.row-align-center .two-cols-row {
	align-items: center;
}
@media screen and (min-width: 1024px) {
	.two-cols-row.half .inner-section {
		-ms-flex: 0 0 50%;
		flex: 0 0 50%;
		max-width: 50%;
		padding: 0 20px;
	}
	.two-cols-row.one-third .inner-section:first-child {
		-ms-flex: 0 0 33.333333%;
		flex: 0 0 33.333333%;
		max-width: 33.333333%;
		padding: 0 20px;
	}
	.two-cols-row.one-third .inner-section:last-child {
		-ms-flex: 0 0 66.666667%;
		flex: 0 0 66.666667%;
		max-width: 66.666667%;
		padding: 0 20px;
	}
	.two-cols-row.one-third-reverse .inner-section:last-child {
		-ms-flex: 0 0 33.333333%;
		flex: 0 0 33.333333%;
		max-width: 33.333333%;
		padding: 0 20px;
	}
	.two-cols-row.one-third-reverse .inner-section:first-child {
		-ms-flex: 0 0 66.666667%;
		flex: 0 0 66.666667%;
		max-width: 66.666667%;
		padding: 0 20px;
	}
	.two-cols-row.no-horizontal-layout-gap {
		margin-left: 0;
		margin-right: 0;
	}
	.two-cols-row.no-horizontal-layout-gap .inner-section {
		padding-left: 0;
		padding-right: 0;
	}
	.two-cols-row.narrow-horizontal-layout-gap {
		margin-left: -10px;
		margin-right: -10px;
	}
	.two-cols-row.narrow-horizontal-layout-gap .inner-section {
		padding-left: 10px;
		padding-right: 10px;
	}
	.two-cols-row {
		margin-left: -20px;
		margin-right: -20px;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}
	.two-cols-row.standard-horizontal-layout-gap .inner-section {
		padding-left: 20px;
		padding-right: 20px;
	}
	.two-cols-row.wide-horizontal-layout-gap {
		margin-left: -40px;
		margin-right: -40px;
	}
	.two-cols-row.wide-horizontal-layout-gap .inner-section {
		padding-left: 40px;
		padding-right: 40px;
	}
	.two-cols-row.standard-gutters-only .inner-section {
		padding-left: 20px;
		padding-right: 20px;
	}
	.two-cols-row.wide-only {
		margin-left: -40px;
		margin-right: -40px;
	}
	.two-cols-row.wide-only .inner-section {
		padding-left: 40px;
		padding-right: 40px;
	}
}
/*--------------------------------------------------------------
## Text Box
--------------------------------------------------------------*/
.trim :first-child {
	margin-top: 0.2em;
}
.trim :last-child {
	margin-bottom: 0.2em;
}

/* Mobile text-box spacing */
@media screen and (max-width: 767px) {
	.text-box {
		margin: 0!important;
	}
	.text-box .co {
		margin: 0;
	}
}
/*--------------------------------------------------------------
## One Third / Two Third
--------------------------------------------------------------*/
.one-third-two-third .co:first-child {
	border-right: 1px solid var(--light-bg);
}

/* Tablet and mobile column reset */
@media screen and (max-width: 1023px) {
	.one-third-two-third .co:first-child {
		border-right: none;
	}
	.one-third-two-third .container .row .co:nth-child(1) {
		margin-bottom: 0!important;
	}
}
/*--------------------------------------------------------------
## Image / Text Layouts
--------------------------------------------------------------*/
.image-left .text .inner,
.image-right .text .inner {
	padding: 0;
}
/* Full-width images sit flush while text keeps normal .co breathing space. */
.text-image.full-width .image-wrap {
	margin-top: 0;
	margin-bottom: 0;
}
/* Desktop: image bleed follows the actual container width, so different column ratios can still reach the viewport edge. */
@media screen and (min-width: 1024px) {
	.text-image.full-width .container {
		container-type: inline-size;
	}
	.text-image.full-width .row {
		align-items: stretch!important;
	}
	.text-image.full-width .image-wrap {
		overflow: visible;
	}
	.text-image.full-width .image-wrap img {
		display: block;
		width: calc(100% + ((100vw - 100cqw) / 2));
		max-width: none;
		height: 100%;
		object-fit: cover;
	}
	.text-image.full-width.image-left .image-wrap {
		padding-right: 0;
	}
	.text-image.full-width.image-left .image-wrap img {
		margin-left: calc((100vw - 100cqw) / -2);
	}
	.text-image.full-width.image-right .image-wrap {
		padding-left: 0;
	}
	.text-image.full-width.image-right .image-wrap img {
		margin-left: 0;
	}
	.text-image.full-width .text {
		display: flex;
		align-items: center;
	}
	.text-image.full-width.image-left .text {
		padding-left: 40px;
	}
	.text-image.full-width.image-right .text {
		padding-right: 40px;
	}
}
/* Tablet and mobile stacking */
@media screen and (max-width: 1023px) {
	.text-image .image-wrap img {
		width: calc(100% + 80px);
		max-width: none;
		height: auto;
		margin-left: -40px;
	}
	.text-image.full-width .image-wrap {
		padding-left: 0;
		padding-right: 0;
	}
	.text-image.full-width .text {
		display: block;
		padding-left: 20px;
		padding-right: 20px;
		padding-top: 30px;
		padding-bottom: 30px;
	}
}
/* Small mobile spacing */
@media screen and (max-width: 575px) {
	.text-image .image-wrap img {
		width: calc(100% + 40px);
		margin-left: -20px;
	}
	.text-image.full-width .text {
		padding-top: 20px;
		padding-bottom: 20px;
	}
}
/*--------------------------------------------------------------
## Slider
--------------------------------------------------------------*/
.slider .container {
	position: relative;
}
.slider .slide:before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(to right, #000 , transparent);
	opacity: 0.7;
}
.slider .inside  {
	position: relative;
	z-index: 4;
	text-align: left;
}
.slider .text {
	max-width: 620px;
}
.slider a.button {
	margin-bottom:30px
}
.slider .slide {
	height: 100%;
	min-height: 500px;
	padding: 60px 0;
	width: 100%;
	display: flex;
	justify-content: center;
	flex-direction: column;
}
.flickity-page-dots {
	bottom: 30px;
	max-width: 1240px;
	text-align: center;
	margin: 0 auto;
	right: 0;
	left: 0;
	padding-left: 40px;
	padding-right: 40px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.flickity-page-dots li:only-child {
	display: none!important;
}
.flickity-page-dots .dot {
	height: 12px;
	width: 12px;
	margin: 0 6px;
	background: var(--primary-button);
}
.flickity-page-dots .dot.is-selected {
	opacity: 1;
	width: 12px;
	height: 12px;
	border: none;
}
.slider .flickity-page-dots {
	text-align: left;
	justify-content: start;
}
.is-dark .flickity-page-dots .dot {
	background: #fff;
}
.slider h1, .slider h2, .slider p, .slider a.button {
	position: relative;
}
.slide h1, .slide h2, .slide p, .slider .slide a.button {
	visibility: hidden;
	animation-name: fadeOut;
	animation-duration: 1s;
}
.slide.is-selected h1,
.slide.is-selected h2 {
	animation-name: fadeInDown;
	visibility: visible;
}
.slide.is-selected p {
	animation-name: fadeInDown;
	visibility: visible;
}
.slider .slide.is-selected a.button {
	animation-name: fadeInUp;
	visibility: visible;
}
/* Hold the initial slide animation until the slider first enters view. */
.slider.initial-slide-pending .slide.is-selected h1,
.slider.initial-slide-pending .slide.is-selected h2,
.slider.initial-slide-pending .slide.is-selected p,
.slider.initial-slide-pending .slide.is-selected a.button {
	visibility: hidden;
	animation-name: none;
}
/* Responsive slider adjustments */
@media screen and (max-width: 1023px) {
	.slider .inside {
		max-width: 100%;
	}
}
@media screen and (max-width: 767px) {
	.slider .slide {
		min-height: 400px;
	}
	.slider .inside {
		width: 100%;
	}
}
@media screen and (max-width: 575px) {
	.flickity-page-dots {
		padding-left: 20px;
		padding-right: 20px;
	}
}
/*--------------------------------------------------------------
## Before & After
--------------------------------------------------------------*/
.before-after img {
	height: 100%;
	max-width: none;
}
/*--------------------------------------------------------------
## Quote
--------------------------------------------------------------*/
.section.quote {
	text-align: center;
	font-size: 18px;
	background: #f5f5f5;
	padding-top: 20px;
	padding-bottom: 20px;
}
/*--------------------------------------------------------------
## Images
--------------------------------------------------------------*/
.images-layout img {
	display: block;
	width: 100%;
}
/*--------------------------------------------------------------
## Promo Boxes
--------------------------------------------------------------*/
.promo-box {
	width: 100%;
	min-height: 400px;
}
.promo-box.col {
	min-width: 33.33%;
	max-width: 50%;
}
.promo-box .inner {
	padding: 30px;
	width: 100%;
	position: relative;
}
.promo-box .inner:before {
	content: '';
	height: 100%;
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0.5;
	background: #000;
}
.promo-box .inner *:not(.button) {
	color: #fff;
}
.promo-box h2 {
	margin-top: 0;
}
.promo-box div {
	z-index: 2;
	position: relative;
}
@media screen and (max-width: 575px) {
	.promo-box {
		min-height: 300px;
	}
}
/* Small mobile */
@media screen and (max-width: 575px) {
	.promo-box.col {
		min-width: 100%;
	}
}
/*--------------------------------------------------------------
## Table Layout
--------------------------------------------------------------*/
.table-layout td, .table-layout th, .table-layout thead {
	padding: 10px;
}
.table-layout .th, .table-layout thead {
	border: 1px solid #869e5f;
}
.table-layout th {
	background: var(--light-bg);
	text-align: left;
	font-weight: 600;
	border-left: 1px solid #666;
	border-top: 1px solid #666;
}
.table-layout th:last-child {
	border-right: 1px solid #666;
}
.table-layout td {
	background: #fff;
	border-left: 1px solid #666;
	border-top: 1px solid #666;
	vertical-align: top;
}
.table-layout tr:nth-child(even) td {
	background: #f5f5f5;
}
.table-layout tr > td:last-child {
	border-right: 1px solid #666;
}
.table-layout tr:last-child td {
	border-bottom: 1px solid #666;
}
.table-layout table {
	border-spacing: 0px;
}
/*--------------------------------------------------------------
## Contact Details
--------------------------------------------------------------*/
.form-wrap h2 {
	margin: 0;
	margin-bottom: 20px;
}
.contact-details {
	padding-top: 20px;
	padding-bottom: 20px;
}
.contact-details h2 i,
.form-wrap h2 i {
	margin-right: 8px;
}
.contact-info .whatsapp img {
	margin-top: 20px;
	transition: all ease 0.3s;
}
.contact-info .whatsapp img:hover {
	scale: 0.98;
}
.contact-details .notes p {
	margin: 0;
	margin-top: 10px;
}
.contact-details .notes em {
	font-size: 0.9em;
}
.contact-details .bh .inner {
	padding: 5px 0;
	max-width: 80%;
}
.contact-info .extra {
	margin-top: var(--spacing-narrow);
}
.contact-details .bh .inner:not(:last-child) {
	border-bottom: 1px solid #e5e5e5;
}
address {
	font-style: inherit;
	margin: 0;
}
.contact-info .detail  {
	margin-bottom: 20px;
	float: left;
	width: 100%;
}
.contact-info .detail h2,
.form-wrap h2 {
	margin: 0;
	margin-bottom: var(--spacing-narrow);
	font-size: 1.4em;
}
.contact-info .notes {
	margin-top: 10px;
}
.contact-info .label {
	font-weight: bold;
}
.detail.phone,
.detail.email,
.detail.address,
.detail.bh {
	width: 100%;
}

/* Responsive contact details */
@media screen and (max-width: 1023px) {
	.detail.phone,
	.detail.email,
	.detail.address,
	.detail.bh {
		width: 50%;
		float: left;
	}
	.contact-info .detail {
		margin-bottom: 40px;
	}
}
@media screen and (max-width: 767px) {
	.detail.phone,
	.detail.email,
	.detail.address,
	.detail.bh {
		width: 100%;
		float: left;
	}
}
/*--------------------------------------------------------------
## Call to Action
--------------------------------------------------------------*/
.calltoaction {
	padding: 40px 0;
	text-align:center
}
.cta-link {
	text-align: center;
}
/*--------------------------------------------------------------
## Pricing Tables
--------------------------------------------------------------*/
.product .bottom {
	padding-top: 20px;
}
.product .header {
	background: var(--dark-bg);
	padding: 20px;
	position: relative;
	top: -20px;
	text-align: center;
	left: -20px;
	width: calc(100% + 40px);
}
.product .header h3 {
	margin: 0;
}
.product .header h4 {
	margin: 0;
}
.product .inner {
	background: var(--box-bg);
	width: auto;
	text-align: left;
	padding: 20px;
	overflow: hidden;
}
.product .icon {
	color: var(--accent-colour);
	font-size: 1.5em;
}
.product .feature {
	padding: 5px 10px;
	border-radius: 5px;
}
.product .icon.cross {
	opacity: 0.3;
	filter: grayscale(100%);
}
/*--------------------------------------------------------------
## Features List
--------------------------------------------------------------*/
.feature h3 {
	margin: 0;
	margin-bottom: 5px;
}
.feature p {
	margin: 0;
}
.features .feature .icon i {
	position: relative;
	top: -9px;
}
.features .feature .icon {
	max-width: 44px;
	color: var(--accent-colour);
	font-size: 1.8em;
}
/* Small mobile */
@media screen and (max-width: 575px) {
	.feature {
		min-width: 100%;
	}
}
@media screen and (max-width: 375px) {
	.features .container {
		padding-left: 20px;
		padding-right: 20px;
	}
}
/*--------------------------------------------------------------
## Meet the Team
--------------------------------------------------------------*/
a.image-link {
	background: var(--dark-bg);
}
a.image-link:hover img{
	opacity: 0.9;
}
.team-title-wrap {
	margin-top: 12px;
}
.team-title {
	margin: 0;
}
.team-subtitle {
	margin: 0;
	opacity: 0.8;
}
.col.member {
	min-width: 25%;
	max-width: 50%;
	margin: 20px 0!important;
}
.member img {
	display: block;
	width: 100%;
	margin: 0 auto;
	transition: all ease 0.3s;
}
.modal-team img {
	display: block;
	width: 100%;
	margin: 0 auto;
}
.modal-team .link-wrap {
	margin: 15px 0;
}
.modal-team .link-wrap:last-of-type {
	margin-bottom: 0;
}
.initials {
	aspect-ratio: 1 / 1;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 5em;
	font-family: var(--headings-font);
	background: var(--light-bg);
	color: var(--headings-colour);
	font-weight: 300;
	user-select: none;
	transition: all ease 0.3s;
}
a.image-link .initials:hover {
	opacity: 0.9;
}
.bio-link {
	max-width: 40px;
	text-align: center;
	margin-left: 10px;
}
.bio-link i {
	font-weight: 900!important;
	font-size: 2em;
}
/* Team carousel matches the sizing and spacing used by the Posts carousel. */
.meet-team-carousel {
	margin-bottom: 20px;
}
.meet-team-slide {
	width: 380px;
	margin-right: 40px;
	display: flex;
}
.meet-team-slide.member {
	max-width: none;
	min-width: 0;
	margin-top: 0!important;
	margin-bottom: 0!important;
}
.meet-team-carousel .flickity-viewport {
	overflow: visible;
}
.meet-team-nav {
	padding: 20px;
}
@media screen and (max-width: 767px) {
	.meet-team-slide {
		width: 85%;
	}
}
.meet-team .image-link:focus-visible,
.meet-team .bio-link a:focus-visible {
	outline: 2px solid var(--accent-colour);
	outline-offset: 4px;
	border-radius: 2px;
}

/* Mobile team adjustments */
@media screen and (max-width: 767px) {
	.co.member {
		margin: 20px 0;
	}
	.modal-team img {
		margin-bottom: 20px;
	}
}
/*--------------------------------------------------------------
## Accordion
--------------------------------------------------------------*/
.accordion-heading {
	margin: 0;
}
.accordion-toggle {
	appearance: none;
	width: 100%;
	cursor: pointer;
	position: relative;
	padding: 8px 20px;
	border: 1px solid var(--primary-button);
	border-radius: 3px;
	background: transparent;
	color: var(--body-colour);
	font: inherit;
	font-size: 0.6em;
	font-weight: 600;
	text-align: left;
	display: flex;
	align-items: center;
	justify-content: space-between;
	user-select: none;
	transition: all ease 0.3s;
}
.accordion-toggle:hover,
.accordion-toggle.active {
	background: var(--primary-button);
	color: #fff;
}
.accordion-toggle i {
	margin-left: 10px;
	transition: transform 0.4s ease;
}
.accordion-toggle i.rotate180 {
	transform: rotate(180deg);
}
.accordion-content {
	overflow: hidden;
	display: none;
	padding: 20px;
	margin-bottom: 20px;
}
.accordion-content :first-child {
	margin-top: 0;
}
.accordion-content :last-child {
	margin-bottom: 0;
}
.accordion-content.default {
	display: block;
}
.accordion-layout #no-results {
	text-align: center;
	justify-content: center;
}
.search-wrapper {
	width: 100%;
	position: relative;
	max-width: 500px;
	margin: 0 auto var(--spacing-narrow);
	display: block;
	clear: both;
	float: none;
}
.search-accordion {
	float: left;
	width: 100%;
	position: relative;
}
/*--------------------------------------------------------------
## Timeline
--------------------------------------------------------------*/
.timeline-entry {
	position: relative;
	--spacing: 46px;
}
.timeline-entry:after {
	content: '';
	width: 26px;
	height: 26px;
	position: absolute;
	right: 0;
	left: 0px;
	top: var(--spacing);
	margin: 0 auto;
	border-radius: 50%;
	background: var(--primary-button);
	background-repeat: no-repeat;
	background-size: contain;
}
.timeline-container {
	position: relative;
}
.timeline-entry:before {
	content: '';
	width: 3px;
	height: 100%;
	position: absolute;
	left: 0;
	right: 0;
	top: var(--spacing);
	margin: 0 auto;
	background: var(--primary-button);
}
.timeline-container .timeline-entry:last-child:before {
	display: none;
}
.timeline-entry .title {
	margin: 0;
}
.timeline .image-wrap {
	margin-top: 50px;
}

/* Responsive timeline layout */
@media screen and (min-width: 1024px) {
	.timeline .timeline-entry:nth-child(odd) .text .inner {
		padding-left: 40px;
	}
	.timeline .timeline-entry:nth-child(odd) .image-wrap .inner {
		padding-right: 40px;
	}
	.timeline-entry .text .inner {
		max-width: 450px;
	}
	.timeline .timeline-entry:nth-child(even) .image-wrap .inner {
		padding-left: 40px;
	}
}
@media screen and (min-width: 768px) {
	.timeline-entry .text .inner {
		padding-top: var(--spacing);
		padding-bottom: var(--spacing);
	}
	.timeline .timeline-entry:nth-child(even) .text .inner {
		float: right;
		padding-right: 40px;
		text-align: right;
	}
	.timeline .timeline-entry:nth-child(odd) .image-wrap {
		order: -1;
	}
}
@media screen and (max-width: 767px) {
	.the-timeline {
		margin-top: 30px;
		margin-bottom: 30px;
	}
	.timeline .image-wrap {
		margin-top: 0;
	}
	.timeline-entry .title {
		margin-top: -5px;
	}
	.timeline-entry:before {
		left: 0;
		right: auto;
		top: 0;
	}
	.timeline-entry:after {
		left: -12px;
		right: auto;
		top: 0;
	}
	.timeline-entry .image-wrap {
		order: -1;
		margin-bottom: 20px;
	}
	.timeline-entry .text {
		padding-bottom: 20px;
	}
	.timeline-entry {
		padding-left: 40px;
	}
	.timeline-container .timeline-entry:first-child {
		margin-top: 0px;
	}
	.timeline-container .timeline-entry:last-child {
		margin-bottom: 0px;
	}
}
/*--------------------------------------------------------------
## Logos
--------------------------------------------------------------*/
.carousel-wrap {
	position: relative;
}
.carousel-image {
	padding: 20px 40px;
}
.carousel-image img {
	display: block;
	width: auto;
	height: auto;
	max-height: 70px;
	min-width: 50px;
	max-width: 200px;
	object-fit: contain;
}
.full-container .carousel-wrap {
	padding: 0;
}
.logos {
	padding-top: 10px;
	padding-bottom: 10px;
}
.logos .flickity-page-dots {
	bottom: 0;
	position: relative;
}
.is-dark .carousel-image img,
.is-dark .logo-wrap img {
	filter: brightness(0) invert(1);
	opacity: 1;
}
.logo-row .logo-wrap img {
	max-height: 70px;
	min-width: 50px;
	width: auto;
	max-width: 200px;
	margin: 0 auto;
	display: block;
}
.logo-row .logo-wrap {
	margin: 20px 0;
}
.logo-wrap img {
	display: block;
	width: auto;
	height: auto;
	max-width: min(100%, 200px);
	max-height: 75px;
	margin: 0 auto;
	object-fit: contain;
	transition: all ease 0.3s;
}
a.image-carousel-link img {
	transition: all ease 0.3s;
}
a.image-carousel-link:hover img {
	scale: 1.03;
}
.logos .flickity-slider {
	display: flex;
	align-items: center;
}
/* Show keyboard focus around linked logos without changing the logo styling. */
.logos .image-link:focus-visible img,
.logos .image-link:focus-visible picture {
	outline: 3px solid var(--accent-colour);
	outline-offset: 3px;
}

/* Mobile logo carousel spacing */
@media screen and (max-width: 767px) {
	.carousel-image {
		padding: 20px;
	}
	.carousel-wrap {
		padding: 0;
	}
}
/*--------------------------------------------------------------
## Ticker
--------------------------------------------------------------*/
.ticker {
	overflow: hidden;
	width: 100%;
	position: relative;
}
.ticker-track {
	display: flex;
	align-items: center;
	width: max-content;
	will-change: transform;
	animation: ticker-scroll linear infinite;
}
.ticker-item {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ticker-item img {
	display: block;
	width: auto;
	height: auto;
	max-height: 70px;
	min-width: 50px;
	max-width: 200px;
	object-fit: contain;
}
.ticker:hover .ticker-track {
	animation-play-state: paused;
}
@keyframes ticker-scroll {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-50%);
	}
}
/*--------------------------------------------------------------
## Footer Logos
--------------------------------------------------------------*/
.footer-logos {
	padding-top: 10px;
	padding-bottom: 10px;
}
.footer-logos .flickity-page-dots {
	bottom: 0px;
}
@media screen and (max-width: 575px) {
	.footer-logos .logo-row .logo-wrap {
		flex: 0 0 33.33%;
		width: 33.33%;
		max-width: 33.33%;
	}
	.footer-logos .logo-row .logo-wrap img {
		max-width: 100%;
	}
}
/*--------------------------------------------------------------
## Downloads
--------------------------------------------------------------*/
.download img {
	max-height: 100px;
	width: auto;
	display: inline-block;
	margin-bottom: 20px;
	transition: all ease 0.3s;
}
.download img:hover {
	filter: brightness(90%);
}

/* Responsive download columns */
@media screen and (max-width: 1023px) {
	.col.download {
		min-width: 50%;
		max-width: 50%;
	}
}
@media screen and (max-width: 575px) {
	.col.download {
		min-width: 100%;
		max-width: 100%;
	}
}
/*--------------------------------------------------------------
## Links Section
--------------------------------------------------------------*/
.link-title {
	margin-top: 0;
	margin-bottom: 15px;
}
.link-description {
	margin-top: 0;
	margin-bottom: 15px;
}
.link-image img {
	max-height: 70px;
	min-width: 50px;
	width: auto;
	max-width: 200px;
	display: block;
	margin-bottom: 20px;
}
/*--------------------------------------------------------------
## Tabs
--------------------------------------------------------------*/
ul.tabs{
	margin: 0px;
	list-style: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
ul.tabs li{
	background: none;
	color: var(--primary-button);
	display: inline-block;
	padding: 15px 30px;
	cursor: pointer;
	transition: all 0.3s;
	margin-right: 10px;
	font-weight: 600;
}
ul.tabs li:hover {
	color: var(--link-hover);
}
ul.tabs li.current{
	background: var(--box-bg);
	color: var(--body-colour);
	pointer-events: none;
}
.tab-content {
	display: none;
	background: var(--box-bg);
	padding: 30px;
}
.tab-content.current{
	display: inherit;
	animation-name: fadeIn;
	animation-duration: 0.5s;
}
/* Horizontal tabs */
.tabbed.horizontal ul.tabs {
	padding: 0px;
}
/* Vertical tabs */
.tabbed.vertical .tabs li {
	margin: 0;
}
.tabbed.vertical .tabs li, .tabbed.vertical .tabs li a {
	width: 100%;
}

/* Mobile tabs */
@media screen and (max-width: 767px) {
	.tab-content {
		border-left: 5px solid var(--primary-colour);
	}
	.tabbed ul.tabs li {
		width: 100%;
		margin: 0;
		border-left: 5px solid transparent;
	}
	.tabbed ul.tabs li.current {
		border-left-color: var(--primary-colour);
	}
	.tabbed ul.tabs {
		border: 1px solid var(--box-bg);
		margin-bottom: 20px;
	}
	.tab-title {
		display: block;
	}
}
/*--------------------------------------------------------------
## Gallery
--------------------------------------------------------------*/
.gallery-item {
	padding: 0 10px;
	margin: 10px 0;
	display: inline-block;
	text-align: center;
	vertical-align: top;
	width: 100%;
}
.gallery-image .inner,
.gallery-icon {
	position: relative;
	overflow: hidden;
}
.image-caption {
	margin: 10px 0 0;
	color: var(--body-colour);
	float: left;
	width: 100%;
	word-wrap: break-word;
	text-align: center;
	font-style: italic;
	font-size: 0.95em;
}
.gallery.is-clickable .gallery-image .inner:before,
.gallery-icon a:before {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0,0,0,0.4);
	color: #fff;
	font: var(--fa-font-solid);
	font-size: 4em;
	content: "\f03e";
	opacity: 0.6;
	transition: opacity 0.3s ease;
	z-index: 1;
}
.gallery.is-clickable .gallery-image:hover .inner:before,
.gallery-icon:hover a:before {
	opacity: 0;
}
.gallery-image img,
.gallery-icon img {
	display: block;
	width: 100%;
	transition: all 0.3s;
}
.gallery.is-clickable .gallery-image:hover img,
.gallery-icon:hover img {
	transform: scale(1.1);
}
.inner-section.gallery {
	position: relative;
	float: left;
}
body.single-post div.gallery {
	width: auto;
	margin: 20px -10px;
}
.gallery.standard:not(.mixed) img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.gallery.mixed .row,
.testimonials-grid.testimonial-masonry > .container > .row{
	position: relative;
	visibility: hidden;
}
.gallery.mixed .row.is-tiled,
.testimonials-grid.testimonial-masonry .row.is-tiled {
	visibility: visible;
}
.gallery.mixed .gallery-image,
.testimonials-grid.testimonial-masonry .testimonial-item {
	transition: none;
}
/* Clearly highlight focused WordPress gallery images. */
.gallery-icon > a:focus-visible img {
	filter: brightness(0.65);
}

/* Responsive gallery adjustments */
@media screen and (max-width: 767px) {
	.gallery-thumbs {
		display: none!important;
	}
}
@media screen and (max-width: 575px) {
	.gallery-image.col {
		min-width: 50%!important;
		max-width: 50%;
	}
	.gallery.count-5 .gallery-image:first-child,
	.gallery.count-7 .gallery-image:first-child,
	.gallery.count-9 .gallery-image:first-child,
	.gallery.count-11 .gallery-image:first-child,
	.gallery.count-13 .gallery-image:first-child,
	.gallery.count-15 .gallery-image:first-child {
		min-width: 100%!important;
		max-width: none!important;
	}
}
/*--------------------------------------------------------------
## Gallery Carousel
--------------------------------------------------------------*/
.gallery-main.flickity-resize .image {
	min-height: 100%;
}
.gallery-main {
	margin: 20px 0;
	background: var(--light-bg);
}
.gallery-main .image.no-crop img {
	max-height: 500px;
	width: auto;
	display: block;
	object-fit: contain;
}
.gallery-main .image img {
	display: block;
}
.gallery-main .image.crop {
	float: left;
	width: 100%;
}
.gallery-main .image.crop img {
	object-fit: cover;
	aspect-ratio: 4/3;
}
.gallery-main .image.no-crop{
	width: 100%;
	min-height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* --------------------------------
Thumbnails
---------------------------------- */
.gallery-thumbs img {
	display: block;
	transition: all 0.4s ease;
	width: 100%;
}
.gallery-thumbs .thumb:hover img {
	opacity: 0.8;
}
.gallery-thumbs{
	width: 100%;
	float: left;
	background: var(--light-bg);
}
.gallery-thumbs .thumb{
	width: 20%;
	box-sizing: border-box;
	padding: 2px;
	cursor: pointer;
	margin: 0;
}
.gallery-thumbs .thumb img{
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	transition: opacity 0.4s ease;
}
.gallery-thumbs .flickity-viewport{
	width: 100%;
	overflow: hidden;
}
.gallery-thumbs .flickity-slider{
	width: 100%!important;
}
.flickity-button {
	padding: 0;
	background: var(--primary-button);
	color: var(--primary-button-text);
	margin: 0;
	transition: all ease 0.3s;
}
.flickity-button:hover {
	background: var(--primary-button-hover);
	color: var(--primary-button-text-hover)!important;
}
/* Show keyboard focus around linked gallery images. */
.gallery a[data-fancybox]:focus-visible .inner {
	outline: 3px solid var(--accent-colour);
	outline-offset: 3px;
}
/*--------------------------------------------------------------
## Page Excerpt
--------------------------------------------------------------*/
.excerpt-page .inner {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
	color: #fff;
}
/* The box itself */
.excerpt-page .thumb-wrap {
	position: relative;
	width: 100%;
	/* min-height: 320px;  */
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow: hidden;
}
/* Dark overlay */
.excerpt-page .thumb-wrap::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.4);
	transition: all 0.4s ease;
	z-index: 1;
}
.excerpt-page .inner:hover .thumb-wrap::before {
	background: rgba(0, 0, 0, 0.7);
}
/* Content sits above overlay */
.excerpt-page .content {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 30px;
}
/* Keep everything centred */
.excerpt-page .content .text {
	text-align: center;
	max-width: 700px;
	transition: all 0.4s ease;
}
/* Title */
.excerpt-page .content h2 {
	margin: 0;
	font-size: 1.8em;
	color: #fff;
}
/* Hidden by default */
.excerpt-page .page-excerpt,
.excerpt-page .link-wrap {
	opacity: 0;
	max-height: 0;
	overflow: hidden;
	transform: translateY(10px);
	transition: opacity 0.4s ease, transform 0.4s ease, max-height 0.4s ease;
	margin: 0;
}
/* Spacing when shown */
.excerpt-page .page-excerpt {
	color: #fff;
}
.excerpt-page .inner:hover .page-excerpt {
	margin-top: 12px;
}
.excerpt-page .link-wrap {
	margin-top: 12px;
}
.excerpt-page .button-link {
	display: inline-block;
}
/* On hover, reveal extra text but keep the whole block centred */
.excerpt-page .inner:hover .page-excerpt,
.excerpt-page .inner:hover .link-wrap {
	opacity: 1;
	max-height: 200px;
	transform: translateY(0);
}
/* Optional slight scale on card hover */
/* .excerpt-page .inner:hover .thumb-wrap {
transform: scale(1.03);
transition: transform 1s ease;
} */
.excerpt-page .button-link {
	pointer-events: none;
}
.excerpt-page .page-excerpt-card .button-link {
	pointer-events: auto;
}
@media (hover: none) {
	.excerpt-page .inner:hover .thumb-wrap {
		transform: none;
	}
	.excerpt-page .inner:hover .thumb-wrap::before {
		background: rgba(0,0,0,0.35);
	}
	.excerpt-page .inner:hover .page-excerpt,
	.excerpt-page .inner:hover .link-wrap {
		opacity: 0;
		max-height: 0;
		transform: translateY(10px);
	}
}
/*--------------------------------------------------------------
## Sibling Pages
--------------------------------------------------------------*/
.sibling-page {
	margin: 20px 0;
	z-index: 2;
}
.sibling-page.current {
	pointer-events: none;
	opacity: 0.5;
}
.sibling-page .thumb-wrap {
	max-width: 100px;
}
.sibling-page .row {
	background: var(--light-bg);
	border-radius: 3px;
}
.sibling-page img {
	border-radius: 3px;
	transition: all ease 0.3s;
}
.sibling-page img:hover {
	scale: 1.02;
}
.sibling-parent {
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 1;
}
.sibling-parent h3{
	margin: 0;
}
/*--------------------------------------------------------------
## Number Counter
--------------------------------------------------------------*/
.number-counter h3 {
	font-size: 2.5em;
	margin: 0;
}
.number-counter .counter {
	font-weight: bold;
}
.number p {
	margin: 0;
	margin-top: 10px;
}
/*--------------------------------------------------------------
## Post Galleries
--------------------------------------------------------------*/
body:not(.mce-content-body) .gallery-columns-2 .gallery-item {
	max-width: 50%;
}
body:not(.mce-content-body) .gallery-columns-3 .gallery-item {
	max-width: 33.33%;
}
body:not(.mce-content-body) .gallery-columns-4 .gallery-item {
	max-width: 25%;
}
body:not(.mce-content-body) .gallery-columns-5 .gallery-item {
	max-width: 20%;
}
body:not(.mce-content-body) .gallery-columns-6 .gallery-item {
	max-width: 16.66%;
}
body:not(.mce-content-body) .gallery-columns-7 .gallery-item {
	max-width: 14.28%;
}
body:not(.mce-content-body) .gallery-columns-8 .gallery-item {
	max-width: 12.5%;
}
body:not(.mce-content-body) .gallery-columns-9 .gallery-item {
	max-width: 11.11%;
}
.gallery-caption {
	display: block;
}
.gallery-item .gallery-caption {
	display: none;
}
/*--------------------------------------------------------------
## Testimonials
--------------------------------------------------------------*/
.testimonial-card .inner {
	padding: 30px;
	background: var(--box-bg);
	box-shadow: var(--shadow);
}
.testimonial-card p:first-child {
	margin-top: 0;
}
.testimonial-card .image {
	text-align: center;
}
.testimonial-card .image img {
	display: inline-block;
	width: 60px;
	margin: 0 auto;
	border-radius: 50%;
}
.testimonial-card .author {
	font-weight: bold;
	color: var(--body-colour);
}
.testimonial-card .author .company {
	font-size: 0.9em;
	font-weight: normal;
	opacity: 0.6;
}
.testimonial-card i {
	color: var(--accent-colour);
	font-weight: 900!important;
}
.testimonial-card p {
	font-size: 1.1em;
}
/* Testimonial slider */
.testimonials {
	padding: 20px 0;
	float: left;
	width: 100%;
}
.testimonial-slider .flickity-viewport {
	overflow: visible!important;
}
.testimonials .flickity-page-dots {
	position: relative;
	bottom: -20px;
}
.testimonial-slide {
	width: 40%;
	margin: 0 20px;
}
.flickity-resize .testimonial-slide {
	min-height: 100%;
}
.testimonial-slide {
	display: flex;
}
.testimonial-slide .testimonial-card {
	width: 100%;
	display: flex;
}
.testimonial-slide .testimonial-card .inner {
	width: 100%;
	display: flex;
	flex-direction: column;
}
.testimonial-slide .testimonial-card .row {
	margin-top: auto;
}

/* Responsive testimonial slider */
@media screen and (max-width: 1023px) {
	.testimonial-slide {
		width: 60%;
	}
}
@media screen and (max-width: 767px) {
	.testimonial-slide .bottom {
		margin-bottom: 10px;
	}
	.testimonial-slide {
		width: 80%;
	}
}
@media screen and (max-width: 575px) {
	.testimonial-slide {
		width: calc(100% - 40px);
	}
}
/*--------------------------------------------------------------
## Videos
--------------------------------------------------------------*/
.video-container {
	min-width: 25%;
}
.embed-container {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
	max-width: 100%;
	box-shadow: var(--shadow);
}
.embed-container iframe,
.embed-container object,
.embed-container embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.embed-container.has-video-poster {
	background: var(--dark-bg);
}
.poster-video-iframe {
	opacity: 0;
	transition: opacity 0.5s ease;
}
.poster-video-iframe.is-loaded {
	opacity: 1;
}
.video-poster {
	position: absolute;
	inset: 0;
	z-index: 2;
	width: 100%;
	height: 100%;
	padding: 0!important;
	margin: 0!important;
	border: 0!important;
	border-radius: 0!important;
	background: none!important;
	cursor: pointer;
	overflow: hidden;
	transition: opacity 0.5s ease;
}
.video-poster img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	transition: transform 0.5s ease;
}
.video-poster:hover img {
	transform: scale(1.02);
}
.video-play {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 70px;
	height: 70px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--primary-button);
	color: var(--primary-button-text);
	font-size: 1.5em;
	transition: all 0.3s ease;
}
.video-poster:hover .video-play {
	background: var(--primary-button-hover);
	color: var(--primary-button-text-hover);
	transform: translate(-50%, -50%) scale(1.05);
}
.video-poster.is-hidden {
	opacity: 0;
	pointer-events: none;
}
/* Match the hover treatment when the video poster has keyboard focus. */
.video-poster:focus-visible .video-play {
	background: var(--primary-button-hover);
	color: var(--primary-button-text-hover);
	transform: translate(-50%, -50%) scale(1.05);
}

/* Responsive video columns */
@media screen and (max-width: 1023px) {
	.video-container {
		min-width: 50%;
		max-width: none;
	}
}
@media screen and (max-width: 767px) {
	.video-container {
		min-width: 100%;
		max-width: 100%;
	}
}
/*--------------------------------------------------------------
## Multiple CTA
--------------------------------------------------------------*/
.cta .inner {
	width: 100%;
}
.cta:not(.intro) .inner {
	text-align: center;
}
.cta-title {
	margin-bottom: 5px;
}
.cta-image {
	min-height: 95px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.cta-image img {
	display: inline-block;
	vertical-align: middle;
	max-height: 90px;
	min-width: 50px;
	width: auto;
	max-width: 200px;
}
.cta-icon i {
	font-size: 4em;
	line-height: 1;
	color: var(--accent-colour);
	font-weight: 300!important;
}
.cta p:last-child {
	margin-bottom: 0;
}
.cta .bottom a {
	margin-top: 20px;
}
/*--------------------------------------------------------------
# Posts
--------------------------------------------------------------*/
.excerpt {
	position: relative;
	float: left;
	width: 100%;
	height: 100%;
	background: #fff;
	box-shadow: var(--shadow);
}
.excerpt.standard {
	border-radius: 5px;
	overflow: hidden;
}
.excerpt.standard .excerpt-thumb img {
	aspect-ratio: 4/3;
	object-fit: cover;
	transition: all ease 0.3s;
}
.excerpt.standard .excerpt-thumb img:hover {
	opacity: 0.9;
}
.is-dark .excerpt {
	background-color: var(--box-bg);
}
div.categories ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
div.categories li {
	display: inline-block;
}
.excerpt span.date {
	opacity: 0.8;
	color: var(--body-colour);
}
div.categories a {
	display: inline-block;
	margin-right: 5px;
	margin-bottom: 10px;
	padding: 5px 10px;
	border-radius: 20px;
	line-height: 1;
	color: var(--body-colour);
	background: var(--box-bg);
	font-size: 0.85em;
}
div.categories a:hover {
	color: var(--link);
}
.excerpt-related {
	margin: 10px 0;
}
.excerpt-related .image {
	padding-right: 0;
	max-width: 160px;
}
.excerpt-related .excerpt-title {
	color: var(--primary-colour);
	margin-bottom: 0;
}
.excerpt .inner {
	padding: 20px;
}
.excerpt-content {
	color: var(--body-colour);
}
.excerpt-content p {
	margin: 0;
}
.excerpt-thumb img, .thumb-wrap img, .image-wrap img {
	display: block;
	width: 100%;
}
/* Show keyboard focus around linked excerpt images. */
.excerpt-thumb a {
	position: relative;
	display: block;
}
.excerpt-thumb a:focus-visible::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	border: 3px solid var(--accent-colour);
	border-radius: inherit;
	pointer-events: none;
}
h2.excerpt-title {
	font-size: 1.6em;
}
.excerpt-title {
	margin: 0 0 10px 0;
}
.excerpt-title a {
	color: var(--body-colour);
}
.excerpt-title a:hover {
	color: var(--link);
}
.excerpt-footer > .button-link {
	margin-top: 14px;
}
.meta span {
	display: inline-block;
}
.excerpt .inner {
	width: 100%;
}
.excerpt-header,
.excerpt-content {
	width: 100%;
	clear: both;
}
.excerpt-header {
	float: none;
}
.excerpt-meta {
	margin: 5px 0 15px;
	color: var(--body-colour);
	font-size: 0.9em;
	opacity: 0.8;
}
.excerpt-meta > * {
	margin: 4px 0;
}
.excerpt-footer {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
	padding: 0 20px 20px;
	margin-top: auto;
	margin-bottom: 0;
}
.excerpt-footer .categories {
	width: 100%;
}
#related-posts {
	float: left;
	width: 100%;
	position: relative;
	border-top: 1px solid #ccc;
	margin-top: 20px;
	padding-top: 20px;
}
#post-nav {
	padding-top: 10px;
	float: left;
	width: 100%;
	position: relative;
	border-top: 1px solid #ccc;
	margin-top: 10px;
}
.prev-post, .next-post {
	margin: 10px 0;
}
.next-post {
	margin-left: auto;
}
#post-nav h3, #post-nav h4 {
	margin: 0;
}
#post-nav h4 {
	margin-top: 10px;
}
.meta {
	margin: 5px 0;
	color: #666;
	font-size: 0.9em;
}
.excerpt-archive.classic {
	min-width: 100%;
}
.excerpt-classic-image {
	width: 270px;
	flex: 0 0 270px;
	align-self: stretch;
}
.excerpt-classic-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.excerpt-classic-content {
	min-width: 300px;
}
.excerpt-archive.classic .excerpt {
	background: none;
}
.sticky {
	display: block;
	position: relative;
}
.excerpt-thumb, .thumb-wrap, .image-wrap {
	position: relative;
	float: left;
	width: 100%;
	flex: 0 0 auto;
}
.excerpt-thumb {
	background: var(--dark-bg);
}
.updated:not(.published) {
	display: none;
}
.page-links {
	clear: both;
	margin: 0 0 1.5em;
}
.pagination i {
	top: 1px;
	position: relative;
}
h4.expired {
	margin-bottom: 24px!important;
	float: left;
	width: 100%;
	border: none!important;
}

/* Responsive post layouts */
@media screen and (min-width: 1024px) {
	.next-post {
		text-align: right;
	}
}
@media screen and (max-width: 767px) {
	.excerpt-classic-image {
		width: 100%;
		flex: 0 0 100%;
		align-self: stretch;
	}
	.excerpt-archive {
		min-width: 100%;
		max-width: 100%;
	}
	.excerpt-related .excerpt-title {
		font-size:1em
	}
	.excerpt-related .image {
		max-width:120px
	}
}
@media screen and (max-width: 375px) {
	.row.related {
		margin-left: 0;
		margin-right: 0;
	}
}
/*--------------------------------------------------------------
## Posts Carousel
--------------------------------------------------------------*/
.featured-post-slide {
	width: 380px;
	margin-right: 20px;
	display: flex;
}
.flickity-resize .featured-post-slide {
	min-height: 100%;
}
.featured-post-slide .excerpt {
	height: auto;
}
@media screen and (max-width: 767px) {
	.featured-post-slide {
		width: 95%;
	}
}
.featured-posts-carousel .flickity-viewport {
	overflow: visible;
}
.featured-posts-nav {
	padding: 20px;
}

/* Small mobile carousel arrows */
@media screen and (max-width: 575px) {
	.flickity-prev-next-button.previous {
		left: -10px;
	}
	.flickity-prev-next-button.next {
		right: -10px;
	}
}
/*--------------------------------------------------------------
# Site Guide
--------------------------------------------------------------*/
body.page-id-7474 #footer,
body.page-id-7474 header,
body.page-id-7474 #top-bar {
	display: none;
}
/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
#footer {
	float: left;
	width: 100%;
	padding: 60px 0;
	color: var(--body-colour);
	background:#001432
}
.whatsapp img {
	display: inline-block;
}
#footer .whatsapp img {
	margin: 10px 0;
	transition: all ease 0.3s;
}
#footer .whatsapp img:hover {
	scale: 0.98;
}
#footer, #copyright {
	--link: #ffffff;
	--link-hover: var(--accent-colour);
}
#footer .co {
	margin: 20px 0;
}
#footer .foot-title {
	margin: 0 0 20px 0;
	font-size: 1.2em;
	font-weight: 500;
}
#footer .socials {
	margin-top: 10px;
}
#footer .email-extra p,
#footer .phone-extra p {
	margin: 0;
	margin-bottom: 10px;
}
.footer-menu {
	list-style: none;
	padding-left: 0;
	margin-left: 0;
}
.footer-menu li {
	list-style: none;
	position: relative;
	margin: 3px 0;
	padding-left: 1.3em;
}
.footer-menu li::before {
	content: "\f068";
	color: var(--accent-colour);
	font: var(--fa-font-solid);
	font-size: 1em;
	position: absolute;
	left: 0;
	top: 4px;
	display: inline-block;
	width: 1em;
	height: 1em;
	line-height: 1;
	text-align: center;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	opacity: 0;
}
html.fa-icons-ready .footer-menu li::before {
	opacity: 1;
	transition: opacity ease 0.2s;
}
#copyright {
	float: left;
	width: 100%;
	font-size: 0.9em;
	padding: 10px 0 5px 0;
	border-top: 1px solid rgba(255,255,255,0.1);
	color: var(--body-colour);
	background:#001432
}
#copyright .credit {
	text-align: right;
}
#copyright a {
	white-space: nowrap;
}
p.copyright {
	margin: 0;
}
p.website-by {
	margin-top: 10px;
	margin-bottom: 0;
}
.legal-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}
.legal-menu li {
	display: inline-block;
}
.legal-menu li a {
	font-size: 1em;
	display: inline-block;
	margin: 10px 20px 10px 0;
}
/* Responsive footer layout */
@media screen and (max-width: 1023px) {
	#copyright {
		padding-bottom: 20px;
	}
	#copyright .credit {
		text-align: left;
		margin-top: 20px;
		min-width: 100%;
	}
}
@media screen and (max-width: 767px) {
	.footer-menu li {
		margin: 6px 0;
	}
}
/*--------------------------------------------------------------
## Social Colours
--------------------------------------------------------------*/
/*
Brand colour icons with transparent backgrounds.
a.social-link.facebook,
a.social-link.facebook:visited { color: #3b5998; border-color: #3b5998; }
a.social-link.x,
a.social-link.x:visited { color: #000000; border-color: #000000; }
a.social-link.pinterest,
a.social-link.pinterest:visited { color: #bd081c; border-color: #bd081c; }
a.social-link.instagram,
a.social-link.instagram:visited { color: #833ab4; border-color: #833ab4; }
a.social-link.linkedin,
a.social-link.linkedin:visited { color: #0077b5; border-color: #0077b5; }
a.social-link.youtube,
a.social-link.youtube:visited { color: #cd201f; border-color: #cd201f; }
a.social-link.vimeo,
a.social-link.vimeo:visited { color: #1ab7ea; border-color: #1ab7ea; }
a.social-link.tiktok,
a.social-link.tiktok:visited { color: #000000; border-color: #000000; }
*/
/* Brand-colour backgrounds with white icons */
a.social-link.facebook,
a.social-link.facebook:visited {
	background: #3b5998;
}
a.social-link.x,
a.social-link.x:visited {
	background: #000000;
}
a.social-link.pinterest,
a.social-link.pinterest:visited {
	background: #bd081c;
}
a.social-link.instagram,
a.social-link.instagram:visited {
	background: #833ab4;
}
a.social-link.linkedin,
a.social-link.linkedin:visited {
	background: #0077b5;
}
a.social-link.youtube,
a.social-link.youtube:visited {
	background: #cd201f;
}
a.social-link.vimeo,
a.social-link.vimeo:visited {
	background: #1ab7ea;
}
a.social-link.tiktok,
a.social-link.tiktok:visited {
	background: #000000;
}
.social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	color: #fff;
	font-size: 1.2em;
	margin-right: 5px;
	transition: all 0.2s ease;
	border-radius: 50%;
}
#top-bar .social-link {
	width: 30px;
	height: 30px;
	font-size: 0.9em;
}
a.social-link:hover,
.social-link:hover {
	background: var(--primary-button);
	color: #fff;
	opacity: 0.9;
}
/*--------------------------------------------------------------
# IDs
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Development Helpers
--------------------------------------------------------------*/
.dev-loop .accordion {
	margin-bottom: 10px;
}
/*--------------------------------------------------------------
# Reduced Motion
--------------------------------------------------------------*/
@media (prefers-reduced-motion) {
	.anim {
		visibility: visible!important;
	}
}
/*--------------------------------------------------------------
# Print
--------------------------------------------------------------*/
@media print {
	#footer,
	#menu,
	.fab-container,
	#post-nav,
	#related-posts,
	iframe,
	.embed-container {
		display: none!important;
	}
	body,
	#banner h1,
	#banner p,
	#nobanner h1,
	#nobanner p,
	.button,
	a.button,
	a.button:visited {
		color: #151515!important;
		background: none!important;
		box-shadow: none!important;
	}
	#banner {
		min-height: 0;
		background: none!important;
	}
	.anim {
		visibility: visible!important;
		animation: none!important;
	}
	section,
	.box,
	.excerpt,
	.testimonial-card,
	.promo-box {
		break-inside: avoid;
	}
	img {
		max-width: 100%!important;
		height: auto!important;
	}
	a {
		text-decoration: underline;
	}
}