/*!
Theme Name: Concept Canvas
Author: Concept Marketing
Author URI: https://conceptmrk.com
Description: Base theme developed by Concept Marketing
Version: 2.0
Text Domain: concept

Last Consolidation: 2.20.23

Concept Canvas is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later. 
*/

/**************************  1  ****************************
----------------------- BASE STYLES ------------------------
-----------------------------------------------------------*/

/* hacks/fixes/enhancements  ------------------------------*/
.hidden{
	display: none!important;
}
.clear:before,.clear:after{ /* clearfix fallback for wpbakery */
	content: "";
	display: table;
	table-layout: fixed;
}
.clear:after{
	clear: both;
}
.ltd *{
	color: #fff;
}
.fancybox__container{
	z-index: 99999999;
}

/* html tags ----------------------------------------*/
html, body{
	width:100%;
  	overflow-x:hidden;
  	background:#fff;
  	margin:0;
  	font-family: var(--font1);
}


/* text */
h1{
	font-size: 2.25em;
}
h2{
	font-size: 1.75em;
    line-height: 105%;
}
h3{
	font-size: 1.5em;
	line-height: 110%;
}
h4{
	line-height: 130%;
}
h5{
	font-size: 1em;
}
h6{
	font-size: 0.9em;
}
p{
	font-size: 0.9em;
}
a{
	text-decoration: none;
	transition: all 0.3s;
}
a:hover{
	transition: all 0.3s;
}

/* structure */
.wrapper,
.entry-header-inner,
.vc_row-inner{
	margin: 0 auto;
	padding: 0 3%;
	max-width: 1500px;
}

/* overlays */
.vc_row-has-overlay,
.vc_row-has-overlay .vc_row-inner,
.entry-header,
.site-footer,
.has-overlay,
.has-overlay > *,
.site-footer .wrapper {
	position: relative;
}
.vc_row-has-overlay .vc_row-inner{
	z-index: 2;
}
.row-overlay,
.has-overlay:before {
	position:absolute;
	display: block;
	top:0;
	right:0;
	left:0;
	bottom:0;
	width:100%;
	height: 100%;
	z-index: 1;
	content: '';
	visibility: visible;
}


/**************************  2  ****************************
--------------------- HEADER + TOPBAR ----------------------
-----------------------------------------------------------*/
#masthead, #masthead * {
/*    transition: all 0.3s;*/
}
.site-header{
	padding: 10px 0;
	position: relative;
    z-index: 999;
}
.site-header > .wrapper{
	display: flex;
	align-items: center;
    justify-content: space-between;
}

.logo-wrap{
    position: relative;
}
.logo-wrap img{
	display: block;
}
a.cncpt-logo-link{
	position: absolute;
	top: 0;
	left: 0;
	border-bottom: 0;
}
a.cncpt-logo-link.ltd-logo-link{
	display: none;
}

/*transparent header*/
.site-header.transparent-header{
	position: absolute;
    width: 100%;
}
.transparent-header a.cncpt-logo-link:not(.ltd-logo-link){
	display: none;
}
.transparent-header a.cncpt-logo-link.ltd-logo-link{
	display: block;
}
.transparent-header .menu-toggle,.transparent-header ul.nav-menu li a, .transparent-header ul.nav-menu li a:visited,.transparent-header:not(.scrl) ul.nav-menu li svg{
	color: #fff;
}

/* fixed header */
#masthead, #masthead * {
/*	transition: all 0.3s;*/
}
.fix-header.scrl a.cncpt-logo-link{
	display: inline-block;
}
.fix-header.scrl a.cncpt-logo-link.ltd-logo-link{
	display:none;
}
.fix-header.scrl{
	position: fixed;
	background-color: #fff;
	z-index: 999;
	box-shadow: 0 1px 5px #11111199;
}
body:not(.admin-bar) .fix-header.scrl{
	top: 0;
}
.fix-header.scrl .menu-toggle{
	color: var(--color1);
}

/* Topbar  -----------------------------------------------*/
#topbar{
	height: 50px;
	display: none;
}
.site-topbar{
	padding: 5px 0;
}
.site-topbar .widget-area{
	display: flex;
	justify-content: flex-end;
	align-items: center;
    flex-wrap: wrap;
}
.topbar-widget-item{
	padding: 0 15px;
}
.topbar-widget-item:last-child{
	padding-right: 0;
}
.topbar-widget-item p{
	margin: 0;
}
.topbar-widget-item a.btn{
	padding: 0.35em 2em;
}


/**************************  3  ****************************
--------------------- SITE NAVIGATION ----------------------
-----------------------------------------------------------*/
.main-navigation {
	width: auto;
}
.main-navigation .menu.nav-menu{
	position: absolute;
    z-index: -1;
    top: 0;
    width: 100%;
    left: 0;
    padding: 0 0 35px 0;
    height: 100vh;
    display: block;
}
.menu-main-container,.menu-main-menu-container,.menu-mobile-menu-container,.menu-close, .btn-toggled .menu-open{
	display: none;
}
.main-navigation.toggled .menu-main-menu-container{
	display: block;
}
.main-navigation a{
	padding: 0.8em 1.5em;
	font-size: 1.3em;
    border-top: 1px solid #ffffff1f;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.main-navigation ul li:last-child a{
	border-bottom: 1px solid #ffffff1f;;
}
.main-navigation ul ul > li{
	padding: 0;
}
.main-navigation ul ul > li a{
	padding-left: 3em;
}
.main-navigation.toggled ul ul{
	width: 100%;
}


.transparent-header.fix-header:not(.scrl) .main-navigation .menu.nav-menu{
	margin-top:0;
}
.transparent-header.fix-header.scrl .main-navigation .menu.nav-menu{
	padding-top:0;
}

/* mobile menu controls */
/* 6.16.22 ENB - changed how button toggle works */
.btn-toggled .menu-close {
	display: inline-block;
}
.menu-toggle{
    background-color: transparent;
    border: 0;
    font-size: 2.5em;
    cursor: pointer;
    padding: 0.4em 0.6em 0.4em;
}
.main-navigation.toggled .menu-main-menu-container,
.main-navigation.toggled .menu-main-container,
.main-navigation.toggled .menu-mobile-menu-container{
	display: block;
}

/* highlight styles for menu item with class .cta */
#masthead li.cta a{
	width: 100%;
    padding: 0.8em 1.5em;
    border: 0;
    border-radius: 0;
    background-color: var(--color2);
    text-align: left;
}

/* mobile submenu styles */
#mobile-menu li.menu-item-has-children a{
	display: flex;
    width: 100%;
    align-items: center;
    justify-content: space-between;
	cursor:pointer;
}
#mobile-menu .sub-menu{
	display: none;
}
#mobile-menu .menu-open > .sub-menu{
	display: block;
}
#mobile-menu{
    padding-top: 0;
}
#mobile-menu li a, #mobile-menu li a:visited{
	color: #fff;
	border-bottom: 0;
	height: 4em;
	display: flex;
    width: 100%;
    align-items: center;
}



/**************************  4  ****************************
------------------------ TITLE AREA ------------------------
-----------------------------------------------------------*/
.entry-header {
	background-size:cover;
	background-position:center center;
	display: flex;
    align-items: stretch;
}
.entry-header-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	align-content:center;
    position: relative;
    min-height: 170px;
    z-index: 2;
}
.entry-header h1 {
	margin:0;
	font-size: 2.25em;
	line-height:120%;
	max-width:900px;
	padding:25px 0 10px 0;
}
/* TODO title area description */
.entry-desc {
	color:#fff;
	text-align: center;
	padding-top: 30px;
}

/* title cta */
.title-cta-wrap{
	width: 100%;
    text-align: center;
    padding: 10px 0 20px 0;
}

/* sizes */
.entry-header.md{
	min-height:225px;
}
.entry-header.md .entry-header-inner{
	min-height:28vh;
}
.entry-header.lg{
	min-height:290px;
}
.entry-header.lg .entry-header-inner{
	min-height:40vh;
}
.entry-header.xlg{
	min-height:350px;
}
.entry-header.xlg .entry-header-inner{
	min-height:55vh;
}
.entry-header.full{
	min-height:550px;
}
.entry-header.full .entry-header-inner{
	min-height:100vh;
}


/**************************  5  ****************************
----------------------- SITE FOOTER ------------------------
-----------------------------------------------------------*/
.widget-area-footer {
	display:flex;
	justify-content: space-around;
	flex-wrap: wrap;
}
.widget-area-footer section {
	padding: 1em;
}
.widget-area-footer ul {
	list-style-type: none;
	margin: 0;
	padding: 0;
}
.widget-area-footer, .widget-area-footer a,.widget-area-footer a:visited {
	text-decoration: none;
	color: #fff;
}
h2.widget-title{
	font-size:1.15em;
}

/**************************  6  ****************************
---------------- ORIGINAL CONTENT ELEMENTS -----------------
-----------------------------------------------------------*/

/*  wpb slickslider  --------------------------------------*/
.ltd .slick-dots li button:before{
	color: #fff;
}
.cncpt-slickslider-inner{
	margin: 0 10px;
	padding: 0;
}
.cncpt-slickslider-item{
	padding: 5px;
}
.cncpt-slickslider-item-inner{
	border: 1px solid #ffffff75;
    border-radius: 10px;
	overflow: hidden;
}
.slick-slide img{
	margin: 0 auto;
}

/* slickslider fontawesome vector arrows */
button.slick-prev,button.slick-next{
	width: auto;
	height:auto;
	font-size: 1.5em;
}
button.slick-prev span,button.slick-next span{
	font-size:0;
}
button.slick-prev:before, button.slick-next:before {
    content:none;
}
button.slick-prev{
	left: -10px;
}
button.slick-next{
	right: -13px;
}


/*  Buttons  ----------------------------------------------*/
a.btn,.site-header li.cta a,button.btn{
	text-decoration: none;
	display: inline-block;
	min-width: 150px;
    padding: 0.85em 2em;
    text-align: center;
	transition: .5s all;
	border-width: 2px;
	border-style:solid;
}
.btn-ol,.btn-ol.btn-alt{
	background-color: transparent;
} 
.cncpt-btn-wrap.btn-align-center{
	text-align: center;
}
.cncpt-btn-wrap.btn-align-right{
	text-align: right;
}
.wpb_wrapper > a.btn{
	margin-bottom: 35px;
}

/*  Icon List  --------------------------------------------*/
.icon-list-item{
	text-align: center;
	margin-bottom: 35px;
}
.icon-list-icon,.icon-list-content{
	padding:0 10px;
}
.icon-list-icon {
	margin-bottom: 10px;
	color: var(--color1);
}
.icon-list-title{
	margin:0 0 10px 0;
}
.icon-list-content > div > p:first-child{
	margin-top:0;
}

/*  Mini List  --------------------------------------------*/
.icon-list-item .icon-list-icon.mini-list-icon {
	margin: 0 10px 0 0;
}


/* Testimonial Slider  ------------------------------------*/
.tslider-wrap .cncpt-slickslider-item-inner{
	border:0;
	padding:0 10px;
	text-align: center;
}
.testimonial-meta h5,.testimonial-meta h6{
	margin:5px 0 0 0;
/*	text-align: right;*/
}


/**************************  7  ****************************
---------------------- DEFAULT PAGES -----------------------
-----------------------------------------------------------*/
/* 404 Page -----------------------------------------------*/
/* TODO */
.error-404 {
	text-align: center;
}
.error-404 .page-title {
	text-transform: uppercase;
	font-size: 6em;
	margin-bottom: 0px;
}

/* Search Results -----------------------------------------*/
/* TODO */
input.search-field {
	border-radius: 1px;
	padding: 6px;
	margin-right: 15px;
}
input.search-submit {
	border-radius: 1px;
	padding: 10px;
	background-color: var(--color1);
	color: white;
	font-weight: bold;
}
.search-results .page-header {
	padding: 5%;
	color: white;
	background-color: #296148;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.search-wrapper {
	display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    grid-gap: 20px;
    grid-auto-rows: minmax(100px, auto);
	margin: 5%;
}
.search-wrapper header {
	background-image: none;
	background-color: transparent;
	height: auto;
	color: black;
}
.search-wrapper a {
	color: black;
	font-weight: 900;
	line-height: 1;
}

/* mobile-to-desktop-nav query aka the only one written in ems */
@media screen and (min-width:55.5em){
	/* nav/menu */
	#mobile-menu{
		display: none;
	}
	#primary-menu{
		display: flex!important;
		margin:0;
	}
	.menu-main-container,.menu-main-menu-container{
		display: block;
	}
	.main-navigation ul.menu.nav-menu{
		display: flex;
		height: auto;
		background-color: transparent;
		position: static;
		align-items: center;
		justify-content: flex-end;
		padding: 0;
	}
	.main-navigation ul.menu li {
		padding: 0.5em;
		border: 0;
		padding: 0.25em;
	}
	.main-navigation ul.menu li a{
		border: 0;
		font-size: 1em;
		padding: 0.5em 1em;
	}
	.main-navigation ul.menu li:last-child,.site-topbar ul.menu li:last-child a,.main-navigation ul.menu li:not(.cta):last-child a,.site-topbar ul.menu li:last-child a{
		padding-right: 0;
	}

	/* subnav dropdowns */
	.menu-item-has-children > a svg{
		margin-left:5px;
	}
	.main-navigation ul ul {
		display: block;
	    float: none;
	    height: auto;
	    padding: 0;
	    margin-left: -2px;
	}

	#masthead.fix-header .main-navigation .menu.nav-menu{
		padding-top:0;
	}
	#masthead li.cta a{
		padding: 0.5em 2em;
		border-radius: 5px;
		text-align: center;
		border: 2px solid;
		color: var(--color1);
		background-color: transparent;
	}
	#masthead.transparent-header:not(.scrl) li.cta a{
		border-color: #fff;
		color: #fff;
	}

	/* topbar + topbar nav */
	.site-header.has-topbar{
		margin-top: 45px;
	}
	.site-header.has-topbar.fix-header.scrl{
		margin-top: 0;
	}
	#topbar{
		display: block;
		height: auto;
	}
	.site-topbar{
		position: absolute;
		z-index: 100;
		width: 100%;
		padding-top: 5px;
		top: 32px;
	}
	body:not(.admin-bar) .site-topbar{
		top: 0;
	}
	.site-topbar .widget{
		margin: 0;
	}
	.site-topbar ul.menu{
		display: flex;
		align-items: center;
    	justify-content: flex-end;
		list-style-type: none;
		margin: 0;
	}
	.site-topbar ul.menu ul.sub-menu{
		position: absolute;
		display: none;
		background-color: #fff;
		list-style-type: none;
		margin: 0;
		padding: 0;
	}
	.site-topbar ul.menu > li:hover ul.sub-menu{
		display: block;
	}
	.site-topbar ul.menu li{
		padding: 0.5em 0.25em;
		position: relative;
	}
	.site-topbar ul.menu li a,.site-topbar ul.menu li a:visited{
		padding: 0.5em;
		font-size: 0.85em;
		border: 0;
		transition: all 0.3s;
		text-decoration: none;
		color:#fff;
	}
}

@media screen and (min-width:350px){
	/* icon list */
	.icon-list-item{
		display: flex;
		align-items: center;
		text-align: left;
	}
}

@media screen and (min-width:560px){
	/* slickslider */
	button.slick-prev, button.slick-next{
		font-size:2em;
	}
}

@media screen and (min-width: 650px){
	/* basics */
	p{
		font-size: 1em;
	}
}

@media screen and (min-width:768px){
	/* basics */
	h1{
		font-size: 2.5em;
	}
	h2{
		font-size: 2.25em;
	}
	h3{
		font-size: 1.75em;
	}

	/* structure */
	.entry-header h1, .cc-alt-titlebar h1 {
		font-size: 3em;
	}

	/* icon list - determine structure breakpoints via wpb column class */
	.vc_col-sm-3 .icon-list-item{
		display: block;
		text-align:center;
	}
	.vc_col-sm-3 .icon-list-item .icon-list-title{
		margin:15px 0 10px 0;
	}
}

@media screen and (min-width:950px){
	/* nav */
	.main-navigation ul li {
	    padding: 0 5px;
	}
	.main-navigation ul ul {
		margin-left: -5px;
	}
}

@media screen and (min-width: 1100px){ 
	/* basics */
	h1{
		font-size: 2.75em;
	}
	h2{
		font-size: 2.5em;
	}
	h3{
		font-size:2em;
	}
	/* structure */
	.entry-header h1, .cc-alt-titlebar h1 {
		font-size: 3.5em;
	}
	/* nav */
	.main-navigation ul.menu li{
		padding: 0.5em;
	}
	.main-navigation ul.menu li a{
		font-size: 1em;
	}
}

