/*

Theme Name: X – Child Theme
Theme URI: http://theme.co/x/
Author: Themeco
Author URI: http://theme.co/
Description: Make all of your modifications to X in this child theme.
Version: 1.0.0
Template: x
Site: Dr Claire Scott
Developer: Urwin Studio https://www.urwinstudio.com

*/

/******************** COLOURS ********************/

:root {
	--red: #c8220e;
    --dkblue: #1d4e99;
    --ltblue: #d2dceb;
	--xltblue: #e8edf5;
    --white: #ffffff;
    --dkgrey: #231f20;

	--dkbluefade: #4e66a7;
	--ltbluefade: #dbe2ee;
}

#wpadminbar,
#wpadminbar ul {
	z-index: 99999999!important;
}

/******************** MASTER LAYOUT ********************/

body {
	line-height: 1.3em;
}

.entry-wrap {
	padding: 0!important;
}

.entry-content {
    margin-top: 0!important;
}

@media screen and (max-width: 768px) {
	
	.entry-content.content {
		background-color: var(--cream);
	}
	
}

@media screen and (min-width: 768px) {
	
	.entry-content.content {
		background-color: var(--cream);
		margin: 0;
	}
	
	body.simple .entry-content.content {
		margin: 0;
	}
	
}

.single .hentry .entry-wrap {
	border-bottom: 0!important;
}

@media screen and (max-width: 1199px) {
	
	.desktopWrapper {
		display: none;
	}
	
}

@media screen and (min-width: 1200px) {
	
	.mobileWrapper {
		display: none;
	}	
	
}

/******************** TYPOGRAPHY ********************/

/*
Work Sans Regular
font-family: "work-sans", sans-serif;
font-weight: 400;
font-style: normal;

font-family: work-sans, sans-serif;
font-weight: 400;
font-style: normal;

Work Sans Bold
font-family: "work-sans", sans-serif;
font-weight: 700;
font-style: normal;

*/

@font-face {
    font-family: 'Clash Display';
    src: url('/fonts/ClashDisplay-Semibold.woff2') format('woff2'),
        url('/fonts/ClashDisplay-Semibold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

:root {
  --stagger: 0.12s;   /* delay between words */
  --duration: 0.45s;  /* each word's fade duration */
}

/* Fade only — no movement */
.fade-words .word {
  opacity: 0;
  /* keep default inline flow so spacing stays natural */
  animation: fadeOnly var(--duration) ease forwards;
  animation-delay: calc(var(--i) * var(--stagger));
  will-change: opacity;
}

@keyframes fadeOnly {
  to { opacity: 1; }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .fade-words .word {
    animation: none;
    opacity: 1;
  }
}

/* Optional: if you need multiple spaces/line breaks preserved */
 /* .fade-words { white-space: pre-wrap; } */

h1 {
	font-family: 'Clash Display', sans-serif!important;
    font-weight: 600!important;
    font-style: normal!important;
	color: var(--dkblue)!important;
	letter-spacing: -0.02em!important;
}

h1.entry-title {
	display: none;
}

body.woocommerce-shop h1.entry-title,
body.woocommerce-page h1.entry-title {
	display: unset;
}

h2 {
	font-family: 'Clash Display', sans-serif!important;
    font-weight: 600!important;
    font-style: normal!important;
	color: var(--dkblue)!important;
	letter-spacing: -0.00em!important;
}

h3 {
	font-family: 'Clash Display', sans-serif!important;
    font-weight: 600!important;
    font-style: normal!important;
	color: var(--dkblue)!important;
	letter-spacing: -0.00em!important;
}

h4 {
	font-family: 'Clash Display', sans-serif!important;
    font-weight: 600!important;
    font-style: normal!important;
	color: var(--dkblue)!important;
	letter-spacing: -0.00em!important;
	text-transform: uppercase!important;
}

body, p, ul, ol, th, tr, td, .vc_gitem-acf, .entry-content.content p {
	font-family: work-sans, sans-serif!important;
	font-weight: 400!important;
	font-style: normal!important;
	color: var(--dkgrey)!important;
	letter-spacing: -0.00em!important;
}

.rowDkBlue h2,
.rowDkBlue h3,
.rowDkBlue h4,
.rowDkBlue p,
.entry-content.content .rowDkBlue a {
	color: var(--white)!important;
}

blockquote {
	border: 0!important;
	background-color: transparent;
}

.entry-content blockquote p	{
	color: var(--dkblue)!important;
	line-height: 1.2em!important;
	font-size: 1.2em!important;
}

.rowBanner h2 {
	margin: 0 0 0 0!important;
}

.entry-wrap ol ol,
.entry-wrap ul ul,
.entry-wrap ol ul,
.entry-wrap ul ol,
.entry-content.content th p,
.entry-content.content td p,
li.x-slide p {
	font-size: 1.0em!important;
	font-size: 100%!important;
}

li.x-slide p {
	margin: 40px 0 0 0!important;
}

.menu-main-nav-container ul {
	list-style-type: none;
}

.entry-content .rowNarrow li { 
	padding: 0 0 0 0!important;
}

.entry-content.content .x-2-3 a {
	color: var(--dkblue)!important;
}

.entry-content.content .x-2-3 a:hover {
	color: var(--dkblue)!important;
}

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

	h1 {
		margin: 0 0 20px 0!important;
		font-size: 2.6em!important;
		line-height: 1.05em!important;
	}
	
	h2 {
		margin: 0 0 20px 0!important;
		padding-bottom: 0!important;
		font-size: 2.4em!important;
		line-height: 1.05em!important;
	}
	
	h3 {
		margin: 0 0 5px 0!important;
		font-size: 1.6em!important;
	}
	
	h4	{
		margin: 0 0 10px 0!important;
		font-size: 1em!important;
	}

	blockquote {
		margin: 30px 0;
		padding: 30px 30px 10px 30px!important;
	}
	
	.entry-content p,
	.excerpt p,
	.entry-content ul,
	.entry-content ol,
	.entry-content th,
	.entry-content td,
	.x-accordion-inner,
	.vc_gitem-acf {
		font-size: 1.2em!important;
		line-height: 1.3em!important;
		letter-spacing: -0.02em;
		margin: 0 0 20px 0!important;
		padding: 0!important;
		letter-spacing: 0em;
	}
	
	.x-accordion-heading	{
		font-size: 1.2em!important;
		line-height: 1.4em!important;
		margin: 0 0 20px 0!important;
		padding: 0!important;
		letter-spacing: 0em;
	}

	footer.x-colophon.top p	{
		font-size: 1.1em!important;
		line-height: 1.4em!important;
		margin: 0 0 20px 0!important;
		padding: 0!important;
		letter-spacing: 0em;
	}

}

@media screen and (min-width: 768px) and (max-width: 1279px) {

	h1 {
		margin: 0 0 20px 0!important;
		font-size: 2.8em!important;
		line-height: 1.05em!important;
	}
	
	h2 {
		margin: 0 0 20px 0!important;
		padding-bottom: 0!important;
		font-size: 2.8em!important;
		line-height: 1.05em!important;
	}
	
	h3 {
		margin: 0 0 5px 0!important;
		font-size: 1.8em!important;
	}
	
	h4	{
		margin: 0 0 10px 0!important;
		font-size: 1.1em!important;
	}
	
	blockquote {
		margin: 50px 0;
		padding: 50px 50px 30px 50px!important;
	}

	.entry-content p,
	.excerpt p,
	.entry-content ul,
	.entry-content ol,
	.entry-content th,
	.entry-content td,
	.x-accordion-inner,
	.vc_gitem-acf {
		font-size: 1.3em!important;
		line-height: 1.35em!important;
		letter-spacing: -0.02em;
		margin: 0 0 20px 0!important;
		padding: 0!important;
		letter-spacing: 0em;
	}
	
	.x-accordion-heading {
		font-size: 1.2em!important;
		line-height: 1.4em!important;
		margin: 0 0 20px 0!important;
		padding: 0!important;
		letter-spacing: 0em;
	}

	footer.x-colophon.top p	{
		font-size: 1.1em!important;
		line-height: 1.4em!important;
		margin: 0 0 20px 0!important;
		padding: 0!important;
		letter-spacing: 0em;
	}

	footer.x-colophon.top p .footerContact	{
		font-size: 1.3em!important;
	}
	
}

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

	h1 {
		margin: 0 0 20px 0!important;
		font-size: 3em!important;
		line-height: 1.05em!important;
	}
	
	h2 {
		margin: 0 0 20px 0!important;
		padding-bottom: 0!important;
		font-size: 3em!important;
		line-height: 1.05em!important;
	}
	
	h3 {
		margin: 0 0 5px 0!important;
		font-size: 2em!important;
	}
	
	h4	{
		margin: 0 0 10px 0!important;
		font-size: 1.1em!important;
	}
	
	blockquote {
		margin: 60px 0;
		padding: 60px 60px 40px 60px!important;
	}

	.entry-content p,
	.excerpt p,
	.entry-content ul,
	.entry-content ol,
	.entry-content th,
	.entry-content td,
	.x-accordion-inner,
	.vc_gitem-acf	{
		font-size: 1.4em!important;
		line-height: 1.35em!important;
		letter-spacing: -0.02em;
		margin: 0 0 20px 0!important;
		padding: 0!important;
	}

	.x-accordion-heading {
		font-size: 1.2em!important;
		line-height: 1.4em!important;
		margin: 0 0 20px 0!important;
		padding: 0!important;
		letter-spacing: 0em;
	}

	footer.x-colophon.top p	{
		font-size: 1.1em!important;
		line-height: 1.4em!important;
		margin: 0 0 20px 0!important;
		padding: 0!important;
		letter-spacing: 0em;
	}

	footer.x-colophon.top p .footerContact	{
		font-size: 1.3em!important;
	}
	
}

.wp-caption {
	padding: 0;
	border: 0;
	text-align: left;
	background: transparent;
}

.wp-caption p.wp-caption-text {
	text-transform: none!important;
	font-size: 1.1em!important;
	line-height: 1.2em!important;
	margin-top: -10px!important;
	margin-bottom: 40px!important;
}

.entry-content.content a {
	color: var(--dkblue)!important;
	text-decoration: none;
	/*-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;*/	
}

.entry-content.content h3 a:hover {
	color: var(--red)!important;
	/*-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;*/
}

.entry-content.content .rowNarrow a {
	color: var(--dkblue)!important;
}

.entry-content.content .rowNarrow a:hover {
	color: var(--dkblue)!important;
}

.entry-content.content a.btn,
a.btn.btnTopNav,
.vc_btn3-container a.vc_general,
footer.x-colophon.top a.btn {
	position: relative;
	font-family: work-sans, sans-serif!important;
	font-weight: 700!important;
	font-style: normal!important;
	display: inline-block;
	margin-top: 40px;
	margin-bottom: 0;
	padding: 19px 40px 17px 40px!important;
	text-transform: uppercase;
	text-shadow: none;
	color: var(--white)!important;
    background-color: var(--dkblue)!important;
	border: 0;
	border-radius: 15px!important;
	box-shadow: 0;
	text-decoration: none;
	letter-spacing: 0;
	font-size: 0.65em!important;
    line-height: 1.2em!important;
	/*-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;*/
}

.entry-content.content a.btn.btnNoPad {
	margin-top: 5px;
	margin-bottom: 10px;
}

.entry-content.content .rowDkBlue a.btn,
a.btn.btnTopNav,
footer.x-colophon.top a.btn,
a.btn.btnTopNav {
	color: var(--dkblue)!important;
	background-color: var(--ltblue)!important;
}

 a.btn.btnTopNav {
	font-size: 0.9em!important;
	padding: 15px 25px 15px 25px!important;
}

footer.x-colophon.top a.btn {
	font-size: 0.8em!important;
	margin-top: -10px;
	margin-bottom: 0
}

.entry-content.content a.btn.btndkblue {
    color: var(--white)!important;
	background-color: var(--dkblue)!important;
	border: 1px solid var(--dkblue)!important;
}

.entry-content.content a.btn:hover,
.vc_btn3-container a.vc_general:hover,
a.btn.btnTopNav:hover,
footer.x-colophon.top a.btn:hover {
	background-color: var(--red)!important;
	color: var(--white)!important;
}

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

	.entry-content.content a.btn {
		margin-top: 20px;
	}

}

.vc_btn3-container a.vc_general {
	font-size: 1.1em!important;
	height: unset!important;
}

a.btn.btnWide {
	display: block!important;
}

/******************** WIDGETS ********************/

br.clear {
	clear: both;
}

.alignnone {
    margin: 0!important;
}

.x-scroll-top.right {
	border: 0;
	opacity: 1;
}

.x-scroll-top.right i {
	display: none;
}

.x-scroll-top.right:after {
  content: "";
  display: block;
  width: 36px;
  height: 36px;
  background: var(--ltblue); /* arrow colour */

  mask-image: url("/wp-content/uploads/2026/03/arrow-up-long-solid-full.svg");
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;

  -webkit-mask-image: url("/wp-content/uploads/2026/03/arrow-up-long-solid-full.svg");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}

.x-scroll-top.right:hover:after {
  background: var(--red);
}

hr {
	border-top: 3px solid var(--dkblue);
	margin: 40px 0 40px 0;
}

/*.entry-content .rowNarrow ul {
	list-style: none;
	padding: 0;
	margin: 0;
	text-align: center;
}

.entry-content .colTxt.x-1-2 ul {
	list-style: none;
	padding: 0;
	margin: 0;
	text-align: left;
}

.entry-content .rowNarrow ul li:before,
.entry-content .colTxt.x-1-2 ul li:before {
	content: "";
	display: inline-block;
	width: 9px;
	height: 9px;
	margin-right: 6px;
	background: url(/wp-content/uploads/2025/08/slider-next.png) no-repeat center center;
	background-size: contain;
	vertical-align: middle;
}*/

.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 55px;
  height: 55px;
  border-radius: 50%;
  background: var(--dkblue);
  text-decoration: none;
  transition: transform 0.2s ease, background 0.2s ease;
  margin: 30px 3px 0 3px;
}

footer .social-link {
  background: var(--ltblue);
}

.social-link svg {
  width: 30px;
  height: 30px;
  fill: var(--white);
}

footer .social-link svg {
  width: 30px;
  height: 30px;
  fill: var(--dkblue);
}

.social-link:hover {
  background: var(--red);
}

.social-link:hover svg {
  fill: white;
}

/******************** HEADER ********************/

.masthead,
.x-navbar {
	background: var(--dkblue);
}

/*body.home .masthead {
	width: 100%;
    position: absolute;
    top: 0;
    z-index: 999;
	background: transparent!important;
}*/

.x-navbar {
    background: var(--dkblue);
	border-bottom: 0;
}

/*body.home .x-main.full {
    position: relative;
	top: -126px;
}

body.home footer {
    position: relative;
	top: -126px;
}*/

.x-navbar-fixed-top-active .x-navbar-wrap {
    margin-bottom: 0!important;
}

.x-navbar-inner .x-container.max {
	max-width: unset!important;
}

.x-navbar-inner .x-container.width {
	width: 94%!important;
}

.x-navbar-wrap {
	z-index: 99999998!important;
}

#wpadminbar {
	z-index: 99999999!important;
}

.masthead-inline .desktop .x-nav,
.x-navbar .desktop .x-nav li {
	float: none;
}

.x-logobar { 
	border-bottom: 0;
	text-align: left!important;
}

.topLogo,
.topNav,
.topNavR {
    float: left;
}

.topNavR {
	float: right;
	margin: 0;
}

.topLogo img:hover,
a.x-btn-navbar-search img:hover  {
	opacity: 0.8;
}

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

	a.btn.btnTopNav {
		display: none;
	}

	a.x-btn-navbar-search img {
		display: inline-block;
		width: 53px;
		height: 53px;
		margin-top: 8px;
	}

}

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

	.x-navbar,
	.x-navbar-wrap,
	.x-navbar-inner {
		height: 64px!important;
		min-height: 64px!important;
	}
	
	.x-navbar .desktop .x-nav > li > a	{
		height: 64px!important;
	}
	
	.x-navbar ul#menu-main-nav li a {
		padding-top: 26px;
	}
	
	.topLogo {
        width: 60%;
    }

    .topNav {
        display: none;
    }

    .topNavR {
       	width: 40%;
	   	text-align: right;
		height: 64px;
    }

	a.btn.btnTopNav {
		margin: 10px 5px 0 0;
	}

	.x-navbar.x-navbar-fixed-top a.btn.btnTopNav {
		margin: 10px 5px 0 0;
	}
	
	.topLogo img {
        width: 200px;
		height: 34px;
        margin: 15px 0!important;
    }

}

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

	.x-navbar,
	.x-navbar-wrap,
	.x-navbar-inner {
		height: 110px!important;
		min-height: 110px!important;
	}
	
	.x-navbar .desktop .x-nav > li > a	{
		height: 110px!important;
	}
	
	.x-navbar ul#menu-main-nav li a {
		padding-top: 48px;
	}
	
	.topLogo {
        width: 25%;
    }

    .topNav {
        width: 50%;
    }

    .topNavR  {
		float: left;
        text-align: right;
        width: 25%;
		height: 110px;
	}

	a.btn.btnTopNav {
		margin: 34px 5px 0 0;
	}

	.x-navbar.x-navbar-fixed-top a.btn.btnTopNav {
		margin: 10px 5px 0 0;
	}

	.topLogo img {
        width: 250px!important;
		height: 43px!important;
        margin: 33px 0 0 0!important;
	}

}

.x-navbar {
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
}

.x-navbar .desktop .x-nav li {
	display: inline-block!important;
}

footer.x-colophon.top .widget ul li {
	text-transform: none;
}

.x-navbar ul#menu-main-nav {
    text-align: center;
}

.x-navbar ul#menu-main-nav li a,
.x-navbar .x-nav-wrap .x-nav li a {
	font-family: 'Clash Display', sans-serif!important;
    font-weight: 500!important;
	font-style: normal!important;
	font-size: 1.2em!important;
	letter-spacing: 0.03em!important;
	text-transform: none!important;
	color: var(--white)!important;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
	padding-left: 0!important;
	padding-right: 0!important;
	margin-right: 15px!important;
}

.x-navbar .desktop .x-nav li>a>span .x-framework-icon {
    display: none;
	margin-left: 0;
}

.x-navbar ul#menu-main-nav li a:hover,
.x-navbar .x-nav-wrap .x-nav li a:hover {
	color: var(--red)!important;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
}

.x-navbar .desktop .x-nav .current-menu-item a,
.x-navbar .desktop .x-nav .current-page-ancestor a,
.x-navbar .desktop .x-nav .current-menu-parent a,
body.single.projects .x-navbar .desktop .x-nav li.menu-item-18 a {
	border-bottom: 3px solid var(--cream);
	border-radius: 0;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
}

body.landing .x-navbar .desktop .x-nav .current-menu-item a,
body.landing .x-navbar .desktop .x-nav .current-page-ancestor a,
body.landing .x-navbar .desktop .x-nav .current-menu-parent a {
	border-bottom: 3px solid var(--cream);
}

.widget_nav_menu .current-menu-item a:after {
	display: none;
}

.x-navbar .desktop .x-nav li a span {
	padding-left: 0!important;
	padding-top: 0!important;
	padding-right: 0!important;
	padding-bottom: 0!important;
	border: 0;
}

/* sticky */

.x-navbar.x-navbar-fixed-top,
body.home .x-navbar.x-navbar-fixed-top {
	border-bottom: 0!important;
	background-color: var(--dkblue)!important;
}

.x-navbar.x-navbar-fixed-top .topLogo img {
	width: 200px!important;
	height: 34px!important;
	margin: 15px 0 0 0!important;
}

.x-navbar.x-navbar-fixed-top ul#menu-main-nav li a:hover {
	color: var(--red)!important;
}

@media screen and (min-width: 980px) {
	
	.x-navbar.x-navbar-fixed-top,
	.x-navbar.x-navbar-fixed-top .x-navbar-inner {
		height: 64px!important;	
		min-height: 64px!important;	
	}
 
	.x-navbar.x-navbar-fixed-top {
		background: var(--dkblue)!important;
		/*z-index: 99999998;*/
		border-bottom: 0;	
	}

	.x-navbar.x-navbar-fixed-top ul#menu-main-nav  {
		border-bottom: 0;	
	}
	
	.x-navbar.x-navbar-fixed-top ul#menu-main-nav li a {
		color: var(--white)!important;
		height: 64px!important;
		margin-top: 0!important;
		padding-top: 23px;
	}

	.x-navbar.x-navbar-fixed-top ul#menu-main-nav li a > span {
		padding-top: unset!important;
		border-top: 0;
		border-radius: 0;
	}
	
	.x-navbar.x-navbar-fixed-top .topNavR {
		height: 64px;
        padding: 0 0 0 0;
	}
	
}

/* dropdown */

.masthead-inline .x-navbar .desktop .sub-menu {
    left: 0!important;
    right: 0;
	top: 110px!important;
}

.masthead-inline .x-navbar.x-navbar-fixed-top .sub-menu {
	top: 64px!important;
}

.desktop .x-navbar ul.sub-menu,
.desktop .sub-menu {
  position: absolute;
  background-color: var(--white);
  border: 0;
  border-radius: 0;
  padding: 20px;
  width: 400px;
  z-index: 1000;
}

/*.desktop .x-navbar ul.sub-menu::before,
.desktop .sub-menu::before {
  content: "";
  position: absolute;
  top: -10px;
  left: 30px;
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 0;
  z-index: 1001;
}

.desktop .x-navbar ul.sub-menu::after,
.desktop .sub-menu::after {
  content: "";
  position: absolute;
  top: -9px;
  left: 31px;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-bottom: 9px solid var(--white);
  z-index: 1002;
}*/



/* the little arrow */
.desktop .x-navbar ul.sub-menu::before{
  content:"";
  position:absolute;
  top:-10px;                 /* pull it above the box */
  left:24px;                 /* adjust horizontally */
  width:0;
  height:0;

  /* bigger + symmetric (equilateral-ish) */
  border-left:10px solid transparent;
  border-right:10px solid transparent;
  border-bottom:10px solid #fff;  /* same color as dropdown bg */
}

/* optional: arrow outline to match dropdown border */
.desktop .sub-menu::after{
  content:"";
  position:absolute;
  top:-12px;                 /* 2px higher for the border outline */
  left:24px;
  width:0;
  height:0;

  border-left:12px solid transparent;
  border-right:12px solid transparent;
  border-bottom:12px solid rgba(255,255,255,1); /* dropdown border color */
  z-index:-1;                /* sits behind the white triangle */
}




.x-navbar ul#menu-main-nav ul.sub-menu li a {
	font-family: 'Clash Display', sans-serif!important;
    font-weight: 500!important;
    font-style: normal!important;
	font-size: 1.2em!important;	
	color: var(--dkblue)!important;
	padding: 0!important;
	height: unset!important;
	padding-top: unset!important;
}

.x-navbar ul#menu-main-nav ul.sub-menu li a:hover {
	color: var(--red)!important;
}

.x-navbar ul.sub-menu {
	text-align: left!important;
}

.x-navbar .desktop .x-nav li ul.sub-menu li {
	float: none!important;
	display: block!important;
}

.x-navbar .desktop .x-nav li ul.sub-menu li a {
	color: var(--dkblue)!important;
	padding: 0!important;
	height: unset!important;
	padding-top: unset!important;
}

/* mobile nav */

#x-btn-navbar {
	display: none!important;
}

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

	#custom_toggle_wrapper {
		margin: 10px 0 0 7px;
	}

	#custom_toggle_wrapper {
		float: right;
		display: block;
		width: 40px;
		height: 30px;
		cursor: pointer;
	}

	#custom_toggle {
		position: relative;
		width: 40px;
		height: 24px;
		background: var(--white);
		height: 3px;
		border-radius: 2px;
		transition: width 0.1s ease;
		width: 30px;
		top: 10.5px;
		margin-top: 10.5px;
	}

	/* Top line */
	#custom_toggle::before,
	#custom_toggle::after {
		content: '';
		position: absolute;
		left: 0;
		width: 40px;
		height: 3px;
		background: var(--white);
		border-radius: 2px;
		transition: width 0.1s ease;
	}

	/* Top line position */
	#custom_toggle::before {
		top: -10px;
	}

	/* Bottom line position */
	#custom_toggle::after {
		top: 10px;
	}

	/* On hover, all lines full width */
	#custom_toggle_wrapper:hover #custom_toggle,
	#custom_toggle_wrapper:hover #custom_toggle::before,
	#custom_toggle_wrapper:hover #custom_toggle::after {
		width: 40px;
	}

}

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

	#custom_toggle_wrapper {
		display: none;
	}
	
	.topNavSearch {
		margin: 33px 20px 0 0;
	}

	.x-navbar.x-navbar-fixed-top .topNavSearch {
		margin: 13px 20px 0 0;
	}
	
}

.topNavSearch {
	float: left;
	height: 30px;
}

#sfm-overlay-wrapper {
	z-index: 9999998!important;
}

#sfm-sidebar {
	z-index: 9999999!important;
}

.sfm-toggle-hover .sfm-sidebar-close {
    display: unset!important;
	position: absolute;
	right: 0!important;
}

.sfm-toggle-hover .sfm-sidebar-close {
    display: unset!important;
	position: absolute;
	right: 5px!important;
	top: 30px!important;
}

#sfm-sidebar .sfm-sidebar-bg {
	background-color: var(--dkblue)!important;
}

#sfm-sidebar .sfm-logo {
	background-color: var(--dkblue)!important;
}

#sfm-sidebar .sfm-logo img {
	padding-top: 50px!important;
}

#sfm-sidebar .sfm-logo p,
.sfm-widget.sfm-widget-bottom {
	margin: 0!important;
	text-align: center!important;
}

.sfm-widget.sfm-widget-bottom img {
	width: 860px!important;
}

.sfm-style-full #sfm-sidebar .sfm-logo {
	background-color: var(--dkblue)!important;
	padding: 0!important;
}

.sfm-style-full #sfm-sidebar .sfm-fs-bottom-box>*, .sfm-style-full #sfm-sidebar .sfm-logo>*, .sfm-style-full #sfm-sidebar .sfm-nav>* {
    transform: none;
    -webkit-transition: none;
    transition: none;
	background-color: var(--dkblue)!important;
}

ul.sfm-menu-level-0.sfm-menu li a {
	color: var(--white)!important;
	font-size: 1.5em!important;
	font-family: 'Clash Display', sans-serif !important;
	font-weight: 500!important;
    font-style: normal!important;
}

ul.sfm-menu-level-0.sfm-menu li a:hover {
	color: var(--red)!important;
}

ul.sfm-child-menu.sfm-menu-level-1 li a {
	font-size: 1.4em!important;
}

ul.sfm-menu-level-0.sfm-menu li a {
	padding-left: 30px!important;
	padding-top: 15px!important;
	padding-right: 30px!important;
	padding-bottom: 15px!important;
	-webkit-transition: all 0.5s ease-in;
	-moz-transition: all 0.5s ease-in;
	-ms-transition: all 0.5s ease-in;
	-o-transition: all 0.5s ease-in;
	transition: all 0.5s ease-in;
}

ul.sfm-menu-level-0.sfm-menu li a:hover {
	color: var(--red)!important;
	padding-left: 30px!important;
	padding-top: 15px!important;
	padding-right: 30px!important;
	padding-bottom: 15px!important;
	-webkit-transition: all 0.5s ease-in;
	-moz-transition: all 0.5s ease-in;
	-ms-transition: all 0.5s ease-in;
	-o-transition: all 0.5s ease-in;
	transition: all 0.5s ease-in;
}

#sfm-sidebar .sfm-menu-level-0 li .sfm-sm-indicator i {
	border-color: var(--white)!important;
}

#sfm-sidebar .sfm-menu li > a:before {
	display: none!important;
}

.sfm-style-full #sfm-sidebar .sfm-sidebar-close:before, .sfm-style-full #sfm-sidebar .sfm-sidebar-close:after {
	background-color: var(--white)!important;
}

ul.sfm-menu-level-0.sfm-menu li a:before,
ul.sfm-menu-level-0.sfm-menu li a:after {
	display: none!important;
}

/******************** LAYOUT ********************/

.x-content-band {
	margin: 0;
}

.entry-content.content a img {
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
}

.entry-content.content a img:hover {
	opacity: 0.8;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
}

.x-img {
    margin-bottom: 0!important;
}

.rowDkBlue {
	background-color: var(--dkblue)!important;
}

.rowLtBlue {
	background-color: var(--ltblue)!important;
}

.rowXLtBlue {
	background-color: var(--xltblue)!important;
}

.rowTestimonials {
	text-align: center;
}

.rowTestimonials img.alignnone {
	margin: -30px 0 20px 0!important;
}

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

	.desktop {
		display: none;
	}
	
	.x-content-band.vc.padT	{
		padding-top: 40px!important;	
	}
	
	.x-content-band.vc.padTSml	{
		padding-top: 25px!important;	
	}
	
	.x-content-band.vc.padB {
		padding-bottom: 20px!important;
	}
	
	.x-content-band.vc.padB2	{
		padding-bottom: 40px!important;
	}

	.rowTestimonials {
		padding-top: 100px!important;
		padding-bottom: 80px!important;
	}

    .rowNarrow .x-1-1,
	.rowTestimonials .x-1-1,
	.x-accordion-inner {
		padding-left: 0!important;
		padding-right: 0!important;
	}

	.rowBanner .x-container.wpb_row {
    	display: flex;
    	flex-wrap: wrap;
    	position: relative;
	}

	.rowBanner .x-1-3:nth-child(1) {
		order: 2;
		flex: 0 0 100%;
    	max-width: 100%;
		margin: 0!important;
	}

	.rowBanner .x-1-3:nth-child(1) img {
    	width: 60%;
		height: auto;
		margin: 0 20% -80px 20%!important;
		text-align: center!important;
	}

	.rowBanner .x-1-3:nth-child(2) {
		order: 1;
    	flex: 0 0 100%;
    	max-width: 100%;
		padding: 60px 0 40px 0!important;
	}

	.rowBanner .x-1-3:nth-child(3) {
		display: none;
	}

	body.home #x-content-band-2 {
		margin-top: 50px!important; 
	}
	
	ul.x-nav-tabs.top {
		padding-bottom: 20px!important;
	}
	
	.x-resp-embed {
		margin-top: 20px;
		margin-bottom: 40px;
	}

	body.single .x-resp-embed {
        margin-top: 0;
        margin-bottom: 20px;
    }
	
	.x-1-2 img,
	.x-1-2 .entry-thumb img {
		width: 100%!important;
		min-width: 100%!important;
		height: auto!important;
		margin: 10px 0 30px 0!important;
	}

    .rowTxtImg .x-container.wpb_row {
		display: flex;
		display: -webkit-flex;
		flex-flow: row wrap;
	}
		
}

@media screen and (min-width: 768px) and (max-width: 979px) {
	
	.mobile {
		display: none;
	}
	
	.x-content-band.vc.padT	{
		padding-top: 50px!important;
	}
	
	.x-content-band.vc.padTSml	{
		padding-top: 35px!important;	
	}
	
	.x-content-band.vc.padB	{
		padding-bottom: 30px!important;	 
	}
	
	.x-content-band.vc.padB2	{
		padding-bottom: 50px!important;
	}

	.rowTestimonials {
		padding-top: 150px!important;
		padding-bottom: 130px!important;
	}

	.rowNarrow .x-1-1,
	.rowTestimonials .x-1-1,
	.x-accordion-inner {
		padding-left: 5%!important;
		padding-right: 5%!important;
	}

	.rowBanner .x-container.wpb_row {
    	display: flex;
    	flex-wrap: wrap;
    	position: relative;
	}

	.rowBanner .x-1-3:nth-child(1) {
		order: 2;
		flex: 0 0 100%;
    	max-width: 100%;
		margin: 0!important;
	}

	.rowBanner .x-1-3:nth-child(1) img {
    	width: 60%;
		height: auto;
		margin: 0 20% -80px 20%!important;
		text-align: center!important;
	}

	.rowBanner .x-1-3:nth-child(2) {
		order: 1;
    	flex: 0 0 100%;
    	max-width: 100%;
		padding: 60px 0 40px 0!important;
	}

	.rowBanner .x-1-3:nth-child(3) {
		display: none;
	}

	body.home #x-content-band-2 {
		margin-top: 50px!important; 
	}

	.x-1-2 img,
	.x-1-2 .entry-thumb img {
		width: 90%!important;
		min-width: 90%!important;
		height: auto!important;
		margin: 30px 0 0 0!important;
	}
	
	ul.x-nav-tabs.top {
		padding-bottom: 30px!important;
	}
	
	.x-resp-embed {
		margin-top: 30px;
		margin-bottom: 50px;
	}

	body.single .x-resp-embed {
        margin-top: 10px;
        margin-bottom: 30px;
    }
	
} 

@media screen and (min-width: 980px) and (max-width: 1199px) {
	
	.mobile {
		display: none;
	}
	
	.x-content-band.vc.padT {
		padding-top: 50px!important;
	}
	
	.x-content-band.vc.padTSml	{
		padding-top: 35px!important;	
	}
	
	.x-content-band.vc.padB	{
		padding-bottom: 30px!important;	 
	}
	
	.x-content-band.vc.padB2	{
		padding-bottom: 50px!important;
	}

	.rowTestimonials {
		padding-top: 160px!important;
		padding-bottom: 140px!important;
	}

	.rowNarrow .x-1-1,
	.rowTestimonials .x-1-1,
	.x-accordion-inner {
		padding-left: 15%!important;
		padding-right: 15%!important;
	}

	.rowBanner .x-container.wpb_row {
    	display: flex;
		position: relative;
	}

	.rowBanner .x-1-3:nth-child(1) {
		width: 25%;
		margin: 0!important;
	}

	.rowBanner .x-1-3:nth-child(1) img {
    	position: absolute;
    	bottom: -40px;   /* pushes image 50px below banner */
	}

	.rowBanner .x-1-3:nth-child(2) {
		width: 50%;
		margin: 0!important;
		display: flex;
    	align-items: center;
    	justify-content: center;
		padding: 100px 0!important;
	}

	.rowBanner .x-1-3:nth-child(3) {
		width: 25%;
		margin: 0!important;
	}

	.x-1-2 img,
	.x-1-2 .entry-thumb img {
		width: 85%!important;
		min-width: 85%!important;
		height: auto!important;
		margin: 30px 0 0 0!important;
	}
	
	ul.x-nav-tabs.top {
		padding-bottom: 30px!important;
	}
	
	.x-resp-embed {
		margin-top: 30px;
		margin-bottom: 50px;
	}

	body.single .x-resp-embed {
        margin-top: 10px;
        margin-bottom: 30px;
    }

	body.sub #x-content-band-1 img {
		width: 175px;
		height: auto;
		margin: 0 0 50px 0!important;
	}
	
} 

@media screen and (min-width: 1200px) {
	
	.mobile {
		display: none;
	}
	
	.x-content-band.vc.padT	{
		padding-top: 70px!important;
	}
	
	.x-content-band.vc.padTSml	{
		padding-top: 45px!important;	
	}
	
	.x-content-band.vc.padB	{
		padding-bottom: 50px!important;	
	}
	
	.x-content-band.vc.padB2	{
		padding-bottom: 70px!important;
	}

	.rowTestimonials {
		padding-top: 170px!important;
		padding-bottom: 150px!important;
	}

	.rowNarrow .x-1-1,
	.rowTestimonials .x-1-1,
	.x-accordion-inner {
		padding-left: 20%!important;
		padding-right: 20%!important;
	}

	.rowBanner .x-container.wpb_row {
    	display: flex;
		position: relative;
	}

	.rowBanner .x-1-3:nth-child(1) {
		width: 30%;
		margin: 0!important;
	}

	.rowBanner .x-1-3:nth-child(1) img {
    	position: absolute;
    	bottom: -40px;   /* pushes image 50px below banner */
	}

	.rowBanner .x-1-3:nth-child(2) {
		width: 40%;
		margin: 0!important;
		display: flex;
    	align-items: center;
    	justify-content: center;
		padding: 100px 0!important;
	}

	.rowBanner .x-1-3:nth-child(3) {
		width: 30%;
		margin: 0!important;
	}
	
	ul.x-nav-tabs.top {
		padding-bottom: 50px!important;
	}

	.x-1-2 img,
	.x-1-2 .entry-thumb img {
		width: 80%!important;
		min-width: 80%!important;
		height: auto!important;
		margin: 30px 0 0 0!important;
	}
	
	.x-resp-embed {
		margin-top: 40px;
		margin-bottom: 60px;
	}

	body.single .x-resp-embed {
        margin-top: 20px;
        margin-bottom: 40px;
    }
	
}

/******************** SERVICES ********************/

.rowGrid .x-1-3 {
	padding: 30px;
	background: var(--white);
	border-radius: 15px;
}

.entry-content .rowGrid .x-1-3 p {
	margin: 0!important;
}

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

	.rowGrid .x-content-band.padB {
		padding-bottom: 0!important;
	}
	
	.rowGrid .x-1-3 {
		margin: 0 0 30px 0;
	}

}

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

	.rowGrid .x-container.wpb_row {
		display: flex;
  		flex-wrap: wrap;
  		align-items: stretch;
	}

	.rowGrid .x-1-3 {
		float: none;
  		display: flex;
		flex-direction: column;
	}

}

/******************** BLOG ********************/

/* ============================================================
   WPBakery Latest 3 Posts Layout (blog-latest-3)
   - Post 1 = 2/3 width (left), shows image
   - Posts 2–3 = 1/3 width (right), stacked, no image
   - 60px equal gaps
   - Content centered vertically + horizontally
   - Drops to 1 column < 768px
   ============================================================ */

.vc_grid-item-mini {
	background: var(--ltblue);
}

.vc_gitem-animated-block {
	display: none;
}

/* ---------- GRID LAYOUT ---------- */
.blog-latest-3 .vc_pageable-slide-wrapper{
  display: grid !important;
  grid-template-columns: 2fr 1fr;
  gap: 40px;
  align-items: stretch;
}

/* Neutralise WPBakery widths/floats so grid can work */
.blog-latest-3 .vc_grid-item{
  float: none !important;
  width: auto !important;
  margin: 0 !important;

  /* IMPORTANT: let the inner "card" stretch so vertical centering is possible */
  display: flex !important;
}

/* Place items: big left + two stacked right */
.blog-latest-3 .vc_grid-item:nth-child(1){
  grid-column: 1;
  grid-row: 1 / span 2;
}
.blog-latest-3 .vc_grid-item:nth-child(2){
  grid-column: 2;
  grid-row: 1;
}
.blog-latest-3 .vc_grid-item:nth-child(3){
  grid-column: 2;
  grid-row: 2;
}

/* ---------- CARD STYLE ---------- */
.blog-latest-3 .vc_grid-item-mini{
  background: var(--white);
  border-radius: 15px;

  /* space inside the card */
  padding: 30px;

  /* make the card fill the grid item */
  flex: 1 1 auto;

  /* SAFE centering (doesn't touch vc_row wrappers) */
  display: flex !important;
  flex-direction: column;
  justify-content: center;  /* vertical */
  align-items: center;      /* horizontal */
  text-align: center;
}

/* Make sure inner WPBakery wrappers don't constrain centering */
.blog-latest-3 .vc_gitem-animated-block,
.blog-latest-3 .vc_gitem-zone,
.blog-latest-3 .vc_gitem-zone-mini{
  width: 100% !important;
}

/* WPBakery rows use negative margins; remove so content truly centers */
.blog-latest-3 .vc_gitem_row.vc_row{
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
}
.blog-latest-3 .vc_gitem-col{
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}

/* ---------- IMAGES ---------- */
/* Hide image on posts 2 & 3 */
.blog-latest-3 .vc_grid-item:nth-child(2) .wpb_single_image,
.blog-latest-3 .vc_grid-item:nth-child(3) .wpb_single_image{
  display: none !important;
}

/* Big image fills card width */
.blog-latest-3 .vc_grid-item:nth-child(1) .wpb_single_image img{
  width: 70%;
  margin: 0 auto 30px auto;
  height: auto;
  display: block;
}

/* ---------- DATE + TITLE SPACING ---------- */
.blog-latest-3 .vc_gitem-post-data-source-post_date{
  margin: 0 0 10px 0;
}
.blog-latest-3 .vc_gitem-post-data-source-post_title{
  margin: 0;
}

/* ---------- THE KEY BIT: give right cards height so vertical centering is visible ---------- */
/* Without this, items 2 & 3 will shrink-wrap to content and always look top-aligned */
.blog-latest-3 .vc_grid-item:nth-child(2) .vc_grid-item-mini,
.blog-latest-3 .vc_grid-item:nth-child(3) .vc_grid-item-mini{
  min-height: 220px; /* adjust to taste */
}

/* Optional: keep the large card from getting too small visually */
.blog-latest-3 .vc_grid-item:nth-child(1) .vc_grid-item-mini{
  min-height: calc((220px * 2) + 60px); /* 2 right cards + the grid gap */
}

/* ---------- MOBILE ---------- */

@media (max-width: 767px){

	body.home .vc_grid-container-wrapper {
		margin: 30px 0 0 0;
	}

  .blog-latest-3 .vc_pageable-slide-wrapper{
    grid-template-columns: 1fr !important;
  }

  .blog-latest-3 .vc_grid-item:nth-child(1),
  .blog-latest-3 .vc_grid-item:nth-child(2),
  .blog-latest-3 .vc_grid-item:nth-child(3){
    grid-column: auto !important;
    grid-row: auto !important;
  }

  /* Let cards size naturally on mobile */
  .blog-latest-3 .vc_grid-item:nth-child(2) .vc_grid-item-mini,
  .blog-latest-3 .vc_grid-item:nth-child(3) .vc_grid-item-mini,
  .blog-latest-3 .vc_grid-item:nth-child(1) .vc_grid-item-mini{
    min-height: 0;
  }

}

@media (min-width: 768px){

	body.home .vc_grid-container-wrapper {
		margin: 70px 0 0 0;
	}

}

/* blog page - grid in mirroring groups of three */

/* ============================================================
   BLOG PAGE GRID (blog-latest-mixed)
   - First 3 posts: feature layout (big left + two small right)
   - Posts 4+: uniform 3-column grid, equal-sized cards
   - Mobile: 1 column < 768px
   ============================================================ */

/* Your globals (keep if desired site-wide) */
.vc_grid-item-mini { background: var(--ltblue); }
.vc_gitem-animated-block { display: none; }

/* Hide WPBakery injected clearfix blocks visually (safe) */
.blog-latest-mixed .vc_pageable-slide-wrapper > .vc_clearfix:not(.vc_grid-item){
  display: none !important;
}

/* ---------- GRID WRAPPER ----------
   Use 3 columns overall; first item spans 2 columns. */
.blog-latest-mixed .vc_pageable-slide-wrapper{
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  align-items: stretch;
  grid-auto-flow: row;
}

/* Make items behave in grid */
.blog-latest-mixed .vc_grid-item{
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  display: flex !important;
  min-width: 0;
}

/* Card styling + centering (same as your working approach) */
.blog-latest-mixed .vc_grid-item-mini{
  background: var(--white);
  border-radius: 15px;
  padding: 30px;
  flex: 1 1 auto;

  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

/* Remove WPBakery row gutters */
.blog-latest-mixed .vc_gitem_row.vc_row{
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
}
.blog-latest-mixed .vc_gitem-col{
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}

/* Date + title spacing */
.blog-latest-mixed .vc_gitem-post-data-source-post_date{ margin: 0 0 10px 0; }
.blog-latest-mixed .vc_gitem-post-data-source-post_title{ margin: 0; }

/* ============================================================
   FEATURED FIRST 3 POSTS (counts only .vc_grid-item)
   ============================================================ */

/* Post 1: big left (span 2 cols, 2 rows) */
.blog-latest-mixed .vc_grid-item:nth-child(1 of .vc_grid-item){
  grid-column: 1 / span 2;
  grid-row: span 2;
}

/* Post 2 & 3: right column */
.blog-latest-mixed .vc_grid-item:nth-child(2 of .vc_grid-item),
.blog-latest-mixed .vc_grid-item:nth-child(3 of .vc_grid-item){
  grid-column: 3;
}

/* Hide image on posts 2 & 3 only */
.blog-latest-mixed .vc_grid-item:nth-child(2 of .vc_grid-item) .wpb_single_image,
.blog-latest-mixed .vc_grid-item:nth-child(3 of .vc_grid-item) .wpb_single_image{
  display: none !important;
}

/* Big image styling for post 1 */
.blog-latest-mixed .vc_grid-item:nth-child(1 of .vc_grid-item) .wpb_single_image img{
  width: 70%;
  margin: 0 auto 30px auto;
  height: auto;
  display: block;
}

/* Heights so the first trio visually matches */
.blog-latest-mixed .vc_grid-item:nth-child(2 of .vc_grid-item) .vc_grid-item-mini,
.blog-latest-mixed .vc_grid-item:nth-child(3 of .vc_grid-item) .vc_grid-item-mini{
  min-height: 220px;
}
.blog-latest-mixed .vc_grid-item:nth-child(1 of .vc_grid-item) .vc_grid-item-mini{
  min-height: calc((220px * 2) + 40px);
}

/* ============================================================
   POSTS 4+ : uniform 3-column cards
   ============================================================ */

/* Optional: hide images on posts 4+ for a clean uniform grid.
   If you WANT images on posts 4+, delete this block. */
.blog-latest-mixed .vc_grid-item:nth-child(n+4 of .vc_grid-item) .wpb_single_image{
  display: none !important;
}

/* Optional: make all posts 4+ the same minimum height (tweak/remove) */
.blog-latest-mixed .vc_grid-item:nth-child(n+4 of .vc_grid-item) .vc_grid-item-mini{
  min-height: 220px;
}

/* ============================================================
   MOBILE
   ============================================================ */
@media (max-width: 767px){

  .vc_grid-container-wrapper{
    margin: 30px 0 0 0;
  }

  .blog-latest-mixed .vc_pageable-slide-wrapper{
    grid-template-columns: 1fr !important;
  }

  .blog-latest-mixed .vc_grid-item{
    grid-column: auto !important;
    grid-row: auto !important;
  }

  .blog-latest-mixed .vc_grid-item-mini{
    min-height: 0 !important;
  }
}

/* HOMEPAGE SLIDER */

/* ===============================
   SWIPER FRAME (adds side gutter for arrows)
   Wrap your shortcode with: <div class="swiper-frame"> ... </div>
   =============================== */
.swiper-frame {
  --gutter: 60px;        /* visible gutter left/right for arrows */
  --text-height: 200px;  /* fixed height for text area (desktop) */
  position: relative;
  margin: 60px 0;
  padding-inline: var(--gutter);
}

body.single #x-content-band-2 .x-1-1 .swiper-frame {
  margin: 0 0 30px 0;
}

/* ===============================
   SWIPER BASE (keep unpadded so Swiper math is correct)
   =============================== */
.swiper {
  overflow: hidden;
  position: relative;
}

/* Wrapper: DON'T use CSS gap; use Swiper's JS spaceBetween instead */
.swiper .swiper-wrapper {
  align-items: stretch;
  gap: 0;
  column-gap: 0;
  row-gap: 0;
}

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

	body.single .swiper .swiper-wrapper {
		margin: 20px 0 20px 0;
	}
	
}

@media screen and (min-width: 980px) and (max-width: 1199px) {

	body.single .swiper .swiper-wrapper {
		margin: 30px 0 20px 0;
	}
	
}

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

	body.single .swiper .swiper-wrapper {
		margin: 40px 0 30px 0;
	}
	
}

/* Slide container */
.swiper .swiper-slide {
  display: flex;
  justify-content: center;
  align-items: stretch;
  box-sizing: border-box;
  height: auto;
  background-color: var(--white);
  border-radius: 15px;
}

/* If you tag single-slide instances */
.swiper[data-per-view="1"] .swiper-slide,
.swiper.per-view-1 .swiper-slide {
  width: 100% !important;
}

/* ===============================
   NAVIGATION ARROWS
   =============================== */

.subpagesSwiper,
.recentPostsSwiper {
  position: relative;
  overflow: hidden !important;
  padding-left: 23px;
  padding-right: 23px;
}

/* Navigation arrow buttons */
.subpagesSwiper .swiper-button-prev,
.subpagesSwiper .swiper-button-next,
.recentPostsSwiper .swiper-button-prev,
.recentPostsSwiper .swiper-button-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
  width: 50px !important;
  height: 50px !important;
  margin-top: 0 !important;
  border-radius: 50%;
  background: var(--dkblue) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer;
}

/* Position arrows inside padded gutter */
.subpagesSwiper .swiper-button-prev,
.recentPostsSwiper .swiper-button-prev {
  left: 0;
}

.subpagesSwiper .swiper-button-next,
.recentPostsSwiper .swiper-button-next {
  right: 0;
}

/* Remove default Swiper arrow */
.subpagesSwiper .swiper-button-prev::after,
.subpagesSwiper .swiper-button-next::after,
.recentPostsSwiper .swiper-button-prev::after,
.recentPostsSwiper .swiper-button-next::after {
  content: "" !important;
  display: none !important;
}

/* Custom SVG arrows */
.subpagesSwiper .swiper-button-prev::before,
.subpagesSwiper .swiper-button-next::before,
.recentPostsSwiper .swiper-button-prev::before,
.recentPostsSwiper .swiper-button-next::before {
  content: "";
  display: block;
  width: 26px;
  height: 26px;
  background: var(--white);
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
}

.subpagesSwiper .swiper-button-prev::before,
.recentPostsSwiper .swiper-button-prev::before {
  mask-image: url("/wp-content/uploads/2026/03/arrow-left-long-solid-full.svg");
  -webkit-mask-image: url("/wp-content/uploads/2026/03/arrow-left-long-solid-full.svg");
}

.subpagesSwiper .swiper-button-next::before,
.recentPostsSwiper .swiper-button-next::before {
  mask-image: url("/wp-content/uploads/2026/03/arrow-right-long-solid-full.svg");
  -webkit-mask-image: url("/wp-content/uploads/2026/03/arrow-right-long-solid-full.svg");
}

/* Hover */
.subpagesSwiper .swiper-button-prev:hover,
.subpagesSwiper .swiper-button-next:hover,
.recentPostsSwiper .swiper-button-prev:hover,
.recentPostsSwiper .swiper-button-next:hover {
  background: var(--red) !important;
}

/* Optional: disabled state */
.subpagesSwiper .swiper-button-disabled,
.recentPostsSwiper .swiper-button-disabled {
  opacity: 0.5;
  pointer-events: none;
}
/* ===============================
   PAGINATION
   =============================== */

.swiper-frame .swiper-pagination {
  position: relative;
  padding: 40px 0 0 0;
  text-align: center;
}

.swiper-frame .swiper-pagination-bullet {
  background: var(--dkblue);
  opacity: 0.5;
  transition: opacity 0.3s ease, background 0.3s ease;
}

.swiper-frame .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: var(--dkblue);
  opacity: 1;
}

.rowRev .swiper-frame .swiper-pagination-bullet { background: var(--white); }
.rowRev .swiper-frame .swiper-pagination-bullet.swiper-pagination-bullet-active { background: var(--white); }

/* ===============================
   NEW SUBPAGES SLIDER (STACKED + ALTERNATING)
   Markup:
   .swiper-slide.subpage-slide.(slide-normal|slide-reverse)
     a.subpage-card (optional)
       .subpage-content
         .subpage-text
         .subpage-image
   =============================== */

/* Optional link wrapper */
.subpage-card {
  display: block;
  width: 100%;
  text-decoration: none;
  color: inherit;
}

/* Always stack text + image vertically */
.subpage-content {
  display: flex;
  flex-direction: column;
  justify-content: center;   /* vertical centering */
  align-items: center;       /* horizontal centering */
  width: 100%;
  box-sizing: border-box;
  gap: 0;
  text-align: center;
}

/* Alternate every other slide: image above text */
.slide-reverse .subpage-content {
  flex-direction: column-reverse;
}

/* TEXT AREA */
.subpage-text {
  width: 100%;
  padding: 30px 40px;
  box-sizing: border-box;
  background: var(--cream);
  border-radius: 15px 15px 0 0;

  display: flex;
  flex-direction: column;
  justify-content: center;   /* vertical centering */
  align-items: center;       /* horizontal centering */
  text-align: center;

  overflow: hidden;
  min-height: var(--text-height);
}

/* When reversed, text is the bottom block */
.slide-reverse .subpage-text {
  border-radius: 0 0 15px 15px;
}

/* Title + excerpt */
.subpage-title,
.subpage-text h3 {
	text-align: center;
	margin: 0 auto 0 auto !important;
	font-size: 1.5rem;
}

.subpage-excerpt,
.subpage-text p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Keep your original hide (remove if you want excerpts visible) */
.subpage-excerpt,
.subpage-text p { display: none; }

.entry-content.content .rowRev .subpage-text h3 a,
.entry-content.content .rowRev .subpage-title a {
  color: var(--dkblue) !important;
}

/* IMAGE AREA (square, full width) */
.subpage-image {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;   /* vertical centering */
}

.subpage-image img {
  padding: 0 30px 30px 30px;
}

.slide-reverse .subpage-image img {
  padding: 30px 30px 0 30px;
}

.subpage-image img,
.entry-content.content .x-1-1 .subpage-image img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

/* When reversed, image is the top block */
.slide-reverse .subpage-image img {
    padding: 30px 30px 0 30px;
}

.subpage-image img,
.entry-content.content .x-1-1 .subpage-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Special single template variant you had */
body.single #x-content-band-2 .x-1-1 .subpage-image img {
  border-radius: 15px;
}

/* ===============================
   RESPONSIVE
   =============================== */
@media (max-width: 768px) {
  .swiper-frame { --text-height: 180px; }
  .subpage-text { padding: 20px 30px; }
}

/* =========================================================
   IMAGE PROTRUSION (PURE OVERLAP OUTSIDE CARD)
   Works with X / Cornerstone wrappers
   ========================================================= 

:root { --img-overlap: 50px; }

#x-content-band-3,
#x-content-band-4,
#x-content-band-3 .x-container,
#x-content-band-4 .x-container,
#x-content-band-3 .x-column,
#x-content-band-4 .x-column,
#x-content-band-3 .x-column-wrap,
#x-content-band-4 .x-column-wrap {
  overflow: visible !important;
}

#x-content-band-3 .swiper,
#x-content-band-4 .swiper {
  padding-top: var(--img-overlap);
  padding-bottom: var(--img-overlap);
}

#x-content-band-3 .swiper,
#x-content-band-4 .swiper {
  overflow: hidden;
}

#x-content-band-3 .swiper .swiper-slide,
#x-content-band-4 .swiper .swiper-slide {
  position: relative;
  overflow: visible !important;
}

#x-content-band-3 .subpage-image,
#x-content-band-4 .subpage-image {
  position: relative;
  z-index: 5;
  border-radius: 15px;
  overflow: hidden;
}

#x-content-band-3 .slide-normal .subpage-image,
#x-content-band-4 .slide-normal .subpage-image {
  transform: translateY(var(--img-overlap));
  margin-top: calc(-1 * var(--img-overlap));
}

#x-content-band-3 .slide-reverse .subpage-image,
#x-content-band-4 .slide-reverse .subpage-image {
  transform: translateY(calc(-1 * var(--img-overlap)));
  margin-bottom: calc(-1 * var(--img-overlap));
}

/******************** FORMS ********************/

/* ninja */

.nf-form-cont {
	padding: 0;
	margin: 0 0 0 0;
}

.entry-content .nf-form-cont p {
	color: var(--white)!important;
}

.nf-before-form-content {
	max-width: 1000px!important;
	margin: 0 auto;
}

.nf-form-content {
	padding: 0!important;
}

.nf-error-msg,
.ninja-forms-req-symbol {
    color: var(--dkblue)!important;
}

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

	.nf-cell {
		float: none!important;
		width: 100%!important;
		margin: 0!important;
		padding: 0!important;
	}
	
}

.nf-form-fields-required {
	display: none;
}

.nf-form-content textarea.ninja-forms-field {
    height: 200px!important;
}

#nf-form-2-cont .nf-form-content textarea.ninja-forms-field {
    height: 200px!important;
}

.nf-form-content .list-select-wrap .nf-field-element>div,
.nf-form-content input:not([type=button]),
.nf-form-content textarea,
.nf-form-content select {
	background: var(--white)!important;
	color: var(--dkblue)!important;
	border: 1px solid var(--dkblue)!important;
	border-radius: 15px!important;
	padding: 14px 11px 15px 11px;
}

.nf-form-content input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: var(--white)!important;
  border: 1px solid var(--dkblue) !important;
  border-radius: 6px !important;
  width: 15px;
  height: 20px;
  cursor: pointer;
  display: inline-block;
  position: relative;
}

.nf-form-content input[type=checkbox]:checked {
  background-color: var(--white) !important;
  border-color: var(--dkblue) !important;
}

.nf-form-content input[type=checkbox]:checked::after {
  content: "✓";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -60%);
  font-size: 14px;
  color: white;
}

.label-above .nf-field-label {
    margin-bottom: 5px!important;
}

label#nf-label-field-10 {
	margin-left: 20px;
}

.entry-content .nf-form-cont li label {
	color: var(--dkblue)!important;
}

.nf-field-label label,
span.nf-label-span {
	font-family: work-sans, sans-serif!important;
	font-weight: 600!important;
	font-style: normal!important;
	font-size: 1.3em!important;
	color: var(--dkblue)!important;
	padding: 0 0 0 0;
	margin: 0 0 0 0;	
}

.nf-form-content input[type=submit] {
	position: relative;
	font-family: work-sans, sans-serif!important;
	font-weight: 600!important;
	font-style: normal!important;
	display: inline-block;
	margin-top: 40px;
	margin-bottom: 0;
	padding: 18px 40px 18px 40px!important;
	text-transform: uppercase;
	text-shadow: none;
	background: var(--dkblue)!important;
	color: var(--white)!important;
	border: 0px solid var(--dkblue)!important;
	border-radius: 15px!important;
	box-shadow: none!important;
	text-decoration: none;
	letter-spacing: 0;
	font-size: 0.9em!important;
    line-height: 1.2em!important;
}

.entry-content .nf-response-msg p {
	text-align: center;
	color: var(--dkblue)!important;
}

/* General placeholder color for all Ninja Forms inputs */
.nf-form-cont input::placeholder,
.nf-form-cont textarea::placeholder {
  color: var(--dkblue); /* Change this to your desired color */
  opacity: 1; /* Ensures full visibility in some browsers */
}

/* Vendor-specific fallbacks for better browser support */
.nf-form-cont input::-webkit-input-placeholder,
.nf-form-cont textarea::-webkit-input-placeholder {
  color: var(--dkblue);
}

.nf-form-cont input:-ms-input-placeholder,
.nf-form-cont textarea:-ms-input-placeholder {
  color: var(--dkblue);
}

.nf-form-cont input::-ms-input-placeholder,
.nf-form-cont textarea::-ms-input-placeholder {
  color: var(--dkblue);
}

/******************** ACCORDIONS ********************/

.x-accordion {
	margin: 0 0 20px 0;
}

.x-accordion-group {
	border: 0; 
	padding: 0;
	margin: 0;
}

.x-accordion-inner {
	border: 0; 
	padding-top: 0!important;
	padding-bottom: 0!important;
	text-align: center;
}

.x-accordion-heading {
	font-family: work-sans, sans-serif!important;
    font-weight: 700!important;
    font-style: normal!important;
	line-height: 1.4em!important;
	color: var(--dkblue)!important;
	letter-spacing: -0.01em!important;
	text-align: center;
	margin: 0!important;
	border-top: 1px solid var(--dkblue);
	background-color: transparent;	
}

.x-accordion-group:first-of-type .x-accordion-heading {
	border-top: 0;
}

.x-accordion-heading .x-accordion-toggle {
	text-transform: none!important;	
}

.entry-content.content .x-accordion-heading a {
	color: var(--dkblue)!important;
}

.entry-content.content .x-accordion-heading a:hover {
	color: var(--red)!important;
}

.x-accordion-heading .x-accordion-toggle,
.x-accordion-heading .x-accordion-toggle.collapsed,
.x-accordion-heading .x-accordion-toggle:hover {
	background-color: transparent;
}

.x-accordion-heading .x-accordion-toggle:before {
    font-size: 60%;
    color: var(--dkblue);
}

a.x-accordion-toggle {
	padding: 20px 0!important;
	border-bottom: 0;
}

.x-accordion-inner p,
.x-accordion-inner ul,
.x-accordion-inner ol {
	font-size: unset!important;
}

.x-accordion-heading .x-accordion-toggle.collapsed .x-shortcode-accordion-icon,
.x-accordion-heading .x-accordion-toggle .x-shortcode-accordion-icon {
    display: none;
}

.entry-content.content .x-accordion-heading a[aria-expanded="true"] {
	color: var(--red)!important;
}

/* Replace default "+" with arrow image */
.x-accordion-heading .x-accordion-toggle:before {
    content: "";
    font-family: none !important;
    font-size: 0 !important;
    line-height: 0 !important;
    /*display: inline-block;
    width: 11px;
    height: 11px;
    margin-right: 8px;
    background-image: url("/wp-content/uploads/2025/08/slider-next.png");
    background-repeat: no-repeat;
    background-size: contain;
    vertical-align: middle;
    transform: rotate(0deg);
    transition: transform 0.3s ease;*/
}

/* Rotate arrow 90° clockwise when accordion is open 
.x-accordion-heading .x-accordion-toggle[aria-expanded="true"]:before,
.x-accordion-heading .x-accordion-toggle:not(.collapsed):before {
    transform: rotate(90deg);
}

/******************** SINGLE ********************/

body.single .entry-content {
    padding: 0!important;
}

/******************** FOOTER ********************/

footer.x-colophon.top {
	background-color: var(--dkblue);
	padding: 0;
	border-top: 0;
	color: var(--white);
	text-align: left;
}

.x-colophon.top .widget {
    margin-top: 40px;
}

footer.x-colophon.top h3,
footer.x-colophon.top p {
	color: var(--white)!important;
	text-transform: none;
}

.x-colophon.top a {
	color: var(--white)!important;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;	
}

footer.x-colophon.top a:hover  {
	color: var(--red)!important;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;	
}

footer.x-colophon.top .widget ul li:first-child, 
footer.x-colophon.top .widget_nav_menu ul {
	border: 0;
}

footer img {
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
}

footer img:hover {
	opacity: 0.8;
	-webkit-transition: all 0.1s ease-in-out;
	-moz-transition: all 0.1s ease-in-out;
	-o-transition: all 0.1s ease-in-out;
	transition: all 0.1s ease-in-out;
}

footer .x-column.x-md.x-1-4.last {
	width: 100%;
	border-top: 1px solid var(--white);
}

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

	.x-colophon.top .x-column .widget:first-child {
        margin-top: 30px;
    }
	
	footer.x-colophon.top {
		padding-top: 40px!important;
		padding-bottom: 20px!important;	
	}

	footer .x-column.x-md.x-1-4.last {
		margin-top: 40px!important;
		padding-top: 40px!important;
	}

	.social-link {
		margin: 20px 5px 20px 0;
	}

	footer .x-column.x-md.x-1-4:nth-child(3) img {
		width: 200px;
		height: auto;
	}
		
}

@media screen and (min-width: 968px) {
	
	footer.x-colophon.top {
		padding-top: 80px!important;
		padding-bottom: 60px!important;	
	}

	footer .x-column.x-md.x-1-4:nth-child(1) {
		width: 50%;
		margin-right: 0;
	}

	footer .x-column.x-md.x-1-4:nth-child(2) {
		width: 50%;
		margin-right: 0;
		text-align: right;
	}

	footer .x-column.x-md.x-1-4:nth-child(3) {
		width: 100%;
		margin-top: 150px;
	}

	footer .x-column.x-md.x-1-4:nth-child(4) {
		margin-top: 40px!important;
		padding-top: 60px!important;
	}
	
}