/*
Theme Name: Websavers Theme
Version: 5.2
Description: Custom child theme for Websavers builds (requires bb-theme)
Author: Websavers Inc.
Author URI: https://websavers.ca
template: bb-theme

 * Custom CSS: If you need to add custom CSS it's best to do it in the Customizer
 * or in BeaverBuilder's global CSS areas. Please do not add it here so we can easily
 * update this child theme.
*/

/**
** Default Subtle Transitions / Animations
***/
.fl-logo-text,
.fl-page-nav ul.navbar-nav > li,
.fl-submenu-toggle-icon::after,
.fl-page a:link, .fl-page a:link span,
.fl-page button,
.fl-page a.fl-button *{
 transition: color 0.3s ease-out, background-color 0.3s;
}

.fl-fixed-header .fl-page-header-primary{
  transition: background-color 0.6s ease-in-out;
}

.fl-page-header-primary .fl-logo-img{
  max-width: 100%;
}

/*
** Nav Improvements
**/

/* logo / Nav spacing: ensures logo col width is tight to logo */
@media (min-width: 768px){
  .fl-page-nav-left .fl-page-header-row,
  .fl-page-nav-right .fl-page-header-row,
  .fl-page-nav-bottom .fl-page-header-row
  { 
    display: flex; 
    align-items: center; 
  }
  
	.fl-page-nav-left .fl-page-header-row .fl-page-header-logo-col,
  .fl-page-nav-right .fl-page-header-row .fl-page-header-logo-col,
  .fl-page-nav-bottom .fl-page-header-row .fl-page-header-logo-col,
  .fl-page-nav-left .fl-page-header-row .fl-page-logo-wrap,
  .fl-page-nav-right .fl-page-header-row .fl-page-logo-wrap,
  .fl-page-nav-bottom .fl-page-header-row .fl-page-logo-wrap
  {
		width: auto;
		flex-grow: 0;
	}
  
	.fl-page-nav-left .fl-page-header-row .fl-page-nav-col,
  .fl-page-nav-right .fl-page-header-row .fl-page-nav-col,
  .fl-page-nav-bottom .fl-page-header-row .fl-page-nav-col
  {
		flex: 1;
		width: 100% !important;
		max-width: 100% !important;
	}
  
  .fl-page-header-vertical:not(.fl-page-nav-toggle-visible-always) .item-left ul.navbar-nav>li>a{
    float:none;
    display:block;
    padding: 14px;
  }
  .fl-page-header-vertical:not(.fl-page-nav-toggle-visible-always) .fl-page-nav-collapse ul.navbar-nav>li>ul.sub-menu{
    top: 0;
  }

}

/* Fade in Nav */
.fl-page-nav-right .fl-page-nav-collapse{ width: 100%; }

.fl-fixed-header .fl-page-nav-col .fl-page-nav-wrap,
.fl-shrink-header-enabled .fl-page-nav-col .fl-page-nav-wrap{ 
  background-color: transparent; 
  border-color: transparent; 
}
.fl-page-nav-wrap{
  border-color: transparent;
}

@media screen and (max-width: 767px){
  .fl-page-header.fl-page-nav-toggle-visible-mobile .fl-page-nav-collapse ul.navbar-nav > li,
  .fl-page-header.fl-page-nav-toggle-visible-mobile .fl-page-nav ul.sub-menu li{
    border-color: transparent;
  }
} 

/* Fade in navbar/header */
.fl-page-nav-collapse.navbar-collapse.collapse{ width: 100%; }
@media screen and (min-width: 768px){
  .fl-page-nav-collapse.navbar-collapse.collapse ul.navbar-nav > li{ float:none; display:inline-block; }
}
 
 /* Submenu indicator arrow
  * L1: Horizontal nav
  * L2+L3: vertical nav
  */
.fl-submenu-indicator .fl-page-nav ul.navbar-nav > li.menu-item-has-children > a.nav-link:after
{
	content: "⇧";
  float: none;
  font-size: 20px;
	font-weight: 100;
	overflow: hidden;
	line-height:1.3;
	height: 10px;
	margin-top: 5px;
  margin-left: 1px;
	vertical-align:middle;
	
	-webkit-transform: rotate(180deg);
	-moz-transform: rotate(180deg);
	transform: rotate(180deg);
}
/* .fl-page-header-vertical:not(.fl-page-nav-toggle-visible-always) .item-left ul.navbar-nav>li>.fl-submenu-icon-wrap{ display:none; } */

/* Mobile Nav Button: override absolute only when button (not when icon) */
.fl-nav-mobile-offcanvas.fl-responsive-nav-enabled.fl-fixed-header .fl-nav-offcanvas-active .fl-page-nav-toggle-button .navbar-toggle{
  position: relative;
}

/* Off-canvas mobile nav submenu indicator */
.fl-nav-mobile-offcanvas.fl-responsive-nav-enabled  .fl-page-nav-toggle-icon .fl-submenu-icon-wrap .fl-submenu-toggle-icon{
  line-height: 1em;
  vertical-align: middle;
}
.fl-nav-mobile-offcanvas.fl-responsive-nav-enabled  .fl-page-nav-toggle-icon .fl-submenu-icon-wrap .fl-submenu-toggle-icon:after{
  display: block;
  content: "+";
  font-family: "Courier" sans-serif;
  font-weight: 100;
}
.fl-page-nav-toggle-icon .fl-submenu-icon-wrap .fl-submenu-toggle-icon{
  top: 0.35em;
}

/* Open state */
.fl-nav-mobile-offcanvas.fl-responsive-nav-enabled.fl-submenu-indicator .fl-page-nav-toggle-icon ul.navbar-nav li.menu-item-has-children.fl-mobile-sub-menu-open>.fl-submenu-icon-wrap .fl-submenu-toggle-icon:after{
  content: "–";
}

/* Off-canvas mobile nav submenu item bullet */
.fl-nav-mobile-offcanvas.fl-responsive-nav-enabled .fl-page-nav-toggle-icon .fl-page-nav ul.sub-menu li a:before{
  content: "∙";
  font-family: "Times New Roman", Times, serif;
}

 
/* Smooth open/close animation */
.fl-page-nav-toggle-button .fl-page-nav-collapse{
	padding-bottom: 0 !important;
}
.fl-page-nav-collapse ul.navbar-nav > li:last-child{
	border-bottom: none !important;
}

/* Ensures fly-in side menu displays each menu item full-width */
@media screen and (max-width: 991px){
  .fl-page-nav-right .fl-page-nav-collapse,
  .fl-page-nav-left .fl-page-nav-collapse{ display:block !important; }
}
.fl-nav-offcanvas-collapse ul.navbar-nav > li{
  display:block !important;
}
.fl-page-nav-toggle-icon .fl-submenu-icon-wrap .fl-submenu-toggle-icon{
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}

/* Customizer button styles add a border: this overrides it */
.fl-page button.navbar-toggler:hover{ 
  border-style: none;
}

/*
 * Nav Search Box Overrides
**/

/* nav fading */
.fl-page-nav ul.navbar-nav{ transition: opacity 0.4s; } 

.fl-page-nav-search{
  top: 2px;
}
.fl-page-nav-right .fl-page-nav-search{
	position: static;
}
.fl-page-nav-search form{
	top: 0.25em;
	width: 0;
  padding: 0;
  border-top: none;
	z-index: 1000;
	transition: width 0.3s, border-color 0.3s;
  background-color: transparent;
  box-shadow: none;
}

.fl-page-nav-search.boxshowing{
  display: block;
  position: absolute;
  width: 100%;
  left: 0;
  text-align: right;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.fl-page-nav-search.boxshowing form{
	width: 100%;
}
.fl-page:not(.fl-nav-offcanvas-active) > header:not(.fl-page-nav-bottom) .fl-page-nav-search a.fa-search, 
.fl-page:not(.fl-nav-offcanvas-active) > header:not(.fl-page-nav-bottom) .fl-page-nav-search form{
  top: auto !important;
  bottom: 0 !important;
}
.fl-page-nav-search.boxshowing a.fa-search{
	position: absolute !important;
	z-index: 1001 !important;
  right: 13px !important;
  padding-bottom: 10px !important;
}
.fl-page-nav-search form input.fl-search-input{
	background-color: transparent;
  padding: 1em 0.5em;
  font-size: 1.1em; 
  border-radius: 0;
  border: none;
  /* border-color: rgba(255,255,255,0.7); */
  transition: border-color 0.3s;
}
.fl-page-nav-search form input.fl-search-input::placeholder{
  color: rgba(255,255,255,0.5);
}
.fl-page-nav-search.boxshowing a.fa-search::before{
  color: rgba(255,255,255,0.5);
}

/*
** Vertical Header/Nav
**/

.fl-page-header-vertical:not(.fl-page-nav-toggle-visible-always) .fl-page-nav-search{
  padding: 12px 3px; /* same padding as nav elements above */
}
.fl-page-nav-vertical-right .fl-page-nav-search form,
.fl-page-nav-vertical-left .fl-page-nav-search form{
  position: relative !important;
  left: auto !important;
  right: auto !important;
  padding: 0;
  padding-right: 12px;
}
.fl-page-header-vertical .fl-page-nav-search form input.fl-search-input{
  padding: 0;
}
.fl-page-header-vertical .fl-page-nav-search a.fa-search{
  bottom: 7px;
}

/*
** Off-Canvas Nav overrides
**/

/* Add opacity to transition */
.fl-nav-mobile-offcanvas.fl-responsive-nav-enabled .fl-offcanvas-opacity{
  transition: opacity 0.5s ease-in;
}

.fl-nav-mobile-offcanvas.fl-responsive-nav-enabled header[class*=" fl-page-nav-toggle-visible-"].fl-page-header .fl-nav-offcanvas-collapse{
 	box-shadow: 0 0 4px #666;
  border: none;
}

.fl-nav-mobile-offcanvas.fl-responsive-nav-enabled .fl-page-nav-toggle-icon.fl-page-nav-toggle-visible-medium-mobile .fl-page-nav-collapse ul.navbar-nav{
  width: 100%;
}

.fl-nav-mobile-offcanvas .fl-page-nav-toggle-button.fl-page-nav-toggle-visible-medium-mobile .fl-page-nav-collapse ul.navbar-nav > li,
.fl-nav-mobile-offcanvas .fl-page-nav-toggle-icon.fl-page-nav-toggle-visible-medium-mobile .fl-page-nav-collapse ul.navbar-nav > li,
.fl-nav-mobile-offcanvas .fl-page-nav-toggle-icon.fl-page-nav-toggle-visible-medium-mobile .fl-page-nav ul.sub-menu li{
  border-color: rgba(155,155,155,0.2);
}

.fl-nav-mobile-offcanvas .navbar-nav li > a{
  padding-top: 12px;
  padding-bottom: 12px;
}

.fl-nav-offcanvas-collapse .fl-button-close .fa-times{
 	color: transparent !important;
 	border: 1px solid white;
 	padding: 0 7px 4px 7px;
 	opacity: 0.6;
 	transition: opacity 0.3s;
}
.fl-nav-offcanvas-collapse .fl-button-close .fa-times:hover{
 	opacity: 1;
}
.fl-nav-offcanvas-collapse .fl-button-close .fa-times:before{
  font-family: "Helvetica" sans-serif;
 	content: '×';
 	font-size: 18.4px;
 	font-weight: 100;
 	color: white !important;
 	vertical-align:top;
}
.fl-nav-offcanvas-collapse .fl-button-close .fa-times:after{
 	content: 'CLOSE MENU';
 	font-family: "Helvetica", sans-serif !important;
 	font-size: 12px;
 	font-weight: 400;
 	margin-left: 8px;
 	letter-spacing: 1px;
 	color: white !important;
}

.fl-nav-offcanvas-active .fl-page-nav-search,
.fl-nav-offcanvas-active .fl-page-nav-search form{
  display: block !important;
  position: relative !important;
  width: 100%;
  
}
.fl-nav-offcanvas-active .fl-page-nav-search form{
  margin: 0 5% !important;
  width: 90%;
}

.fl-nav-offcanvas-active header .fl-page-nav-search a.fa-search{
  position: absolute !important;
  padding:0;
  width: 30px;
  top: 15px !important;
  left: 13px !important; 
  font-size: 0.8em;
}
.fl-nav-offcanvas-active .fl-page-nav-search a.fa-search::before{
  color: rgba(255,255,255,0.5);
}
.fl-nav-offcanvas-active .fl-page-nav-search form input.fl-search-input{ 
  padding: 5px 10px 5px 24px;
  opacity: 1 !important;
  font-size: 1em;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}

/**
 * BeaverBuilder Bugs / Weird Behaviour
 */
 
/* Align full width row content with fixed width row content */
.fl-row-full-width .fl-row-content-wrap .fl-row-fixed-width{
	max-width: 1060px; /* 1100 - 20 padding left/right */
}

/* Elminiate their odd choice of fixed width small cols */
@media (max-width: 768px){
 .fl-col-small:not(.fl-col-small-full-width) {
   max-width: 100%;
 }
}

/* Can't be more than 10 otherwise it overlaps the mobile offcanvas menu */
.fl-nav-mobile-offcanvas.fl-responsive-nav-enabled.fl-fixed-header .fl-nav-offcanvas-active .fl-page-bar{
  z-index: 10; 
}

/**
 * Social Icons 
 */
.fl-social-icons .fa-stack{
  width: 2em; /* Match the height so it lines up against right edge when right aligned */
}

/**
 * Footer Spacing Improvements
 */
.fl-page-footer-container{
	padding-bottom: 20px;
}
footer .fl-page-footer-text{
  vertical-align: top;
  margin-top: 3px;
  padding-bottom: 0;
}
@media screen and (min-width: 768px){
	footer .fl-page-footer-text,
	footer .fl-social-icons{
		display:inline-block;
	}
  footer .fl-social-icons .fa-stack{
  	margin-bottom: 0;
  }
}

/**
 * Button Overrides
 */

.fl-button.fl-button-icon-animation:hover i.fl-button-icon-after{
  margin-right: 1em;
}

/** Contact Form button and recaptcha more app-like on mobile **/
@media screen and (min-width: 600px){
	.fl-recaptcha{ float:left; }
	.fl-recaptcha + .fl-button-width-auto.fl-button-right{ float:right; }
}

@media screen and (max-width: 599px){
	.fl-recaptcha .g-recaptcha div{ margin: auto; }
	.fl-recaptcha + .fl-button-width-auto{ text-align:center; }
	.fl-recaptcha + .fl-button-width-auto a{ width: 100% }
}

/** Tribe Events Button Borders **/
.tribe-events-header button,
.tribe-events-calendar-list-nav button{ border: none !important; }

/**
* Archive Category/Tag Title Overrides to Handle Display of Descriptions
*/
.fl-archive .fl-archive-header h1.fl-archive-title{
	margin-bottom: 5px;
	border-bottom-style: dashed;
}
.fl-archive .fl-archive-header h1.fl-archive-title + .fl-archive-description{
	margin-bottom: 30px;
	padding-bottom: 5px;
	border-bottom: 1px dashed #e6e6e6;
}
.fl-archive .fl-archive-header h1.fl-archive-title + .fl-archive-description p:last-child{
	margin-bottom: 0;
}

/**
 * WS Custom Buttons (Shortcode). Generate similar CSS as BB does when it's loaded
 */
.ws-button{
	display: block;
	padding: 15px;
	text-align: center;
	font-size: 1.2em;
}
.ws-button:hover{
	text-decoration: none;
}
/* When button is in header */
@media screen and (min-width: 768px){
	.fl-page-header-text{ text-align:right; }
	.fl-page-header-text .ws-button-wrap{ display: inline-block; }
}

/* 
** Form Input Styles 
**/

/* Remove/Reset Default Form Styles */
input[type=text],input[type=tel],input[type=url],input[type=number],input[type=email],input[type=password],input[type=range],
.woocommerce form .form-row input.input-text,textarea {   
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  height: auto;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  height: auto;
  margin-top:-8px;
}
label{ font-weight: normal; }
/* End Reset */

.fl-input-group label,
.woocommerce form .form-row:not(.wc-pao-addon-wrap) label:not(.checkbox),
.fl-page .wpforms-container-full .wpforms-form .wpforms-field-label,.fl-page .wpforms-container .wpforms-field-label,
.frm_form_fields .frm_primary_label{
  text-transform: uppercase;
  font-size: 0.75em;
  font-weight: 600;
  margin-bottom: 3px;
  margin-left: 1px;
}

.frm_form_fields .frm_description,
.fl-page label.wpforms-field-sublabel{ font-size: 0.65em; font-weight: 300; }

/* Checkboxes */
input[type=checkbox],input[type=radio]{ opacity: 0; }
input[type=checkbox]+label,
input[type=radio]+label{ 
  position: relative !important; 
  display: inline !important; 
  margin-left: 9px !important; 
}

input[type=checkbox]+label:after,
input[type=checkbox]+label:before,
input[type=radio]+label:after,
input[type=radio]+label:before{
    box-sizing: border-box !important;
    content: '';
    position: absolute;
    bottom: 0.1em;
    left: -23px;
    width: 20px;
    height: 20px;
    border: 1px solid #AAA;

    z-index: 1;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}

/* Checked Box */
input[type=checkbox]:checked+label:before,
input[type=radio]:checked+label:before{
  background-color: #AAA;
  z-index: 0;
  border-radius: 20px;
}

/* Unchecked Mark */
input[type=checkbox]:not(:checked)+label:after,
input[type=radio]:not(:checked)+label:after{
  width: 0;
  height: 0;
  opacity: 0;
  -webkit-transform: rotateZ(37deg);
  transform: rotateZ(37deg);
  -webkit-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}

/* Checked Mark */
input[type=checkbox]:checked+label:after,
input[type=radio]:checked+label:after{
  opacity: 1;
  width: 8px;
  height: 13px;
  bottom: 5.5px;
  margin-top: 0;
  margin-left: 1.3px;
  border-radius: 1.5px;
  border-top: 2px solid #0000;
  border-left: 2px solid #0000;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  -webkit-transform: rotateZ(37deg);
  transform: rotateZ(37deg);
  -webkit-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
}

/* Disabled Box */
input[type=checkbox]:disabled+label:before,
input[type=radio]:disabled+label:before{ 
  border-color: #ccc;
  background-color: #eee;
}

/* Inline Spacing */
input[type=checkbox]+label+input[type=checkbox],
input[type=radio]+label+input[type=radio]{ 
  margin-left: 20px;
}

/* Gravity Forms Adjustment */
.gform_wrapper .gfield_checkbox li input + label{ margin-left: 8px }

/* END CHECKBOXES */

/* SLIDERS */
input[type="range"]{ 
  vertical-align: middle; 
  margin: 5px 5px 5px 0; 
}
/* 3x */
input[type=range]::-ms-thumb{
  height: 28px;
  width: 28px;
  border-radius: 20px;
  color: #ffffff;
  border: 1px solid rgba(34,34,34,0.6);
  background-color: rgba(34,34,34,1);
  cursor: pointer;
}
input[type=range]::-moz-range-thumb{
  height: 28px;
  width: 28px;
  border-radius: 20px;
  color: #ffffff;
  border: 1px solid rgba(34,34,34,0.6);
  background-color: rgba(34,34,34,1);
  cursor: pointer;
}
input[type=range]::-webkit-slider-thumb{
	height: 28px;
	width: 28px;
	border-radius: 20px;
	color: #ffffff;
	border: 1px solid rgba(34,34,34,0.6);
	background-color: rgba(34,34,34,1);
	cursor: pointer;
}
/* 3x */
input[type=range]::-ms-track{
  border-radius: 25px;
  border: none;
  height: 10px;
  animation: 0.2s;
  border-color: transparent;
  border-width: 39px 0;
  color: transparent;
  background-color: rgba(34,34,34,0.2);
}
input[type=range]::-moz-range-track{
  border-radius: 25px;
  border: none;
  height: 10px;
  animation: 0.2s;
  border-color: transparent;
  border-width: 39px 0;
  color: transparent;
  background-color: rgba(34,34,34,0.2);
}
input[type=range]::-webkit-slider-runnable-track{
	border-radius: 25px;
	border: none;
	height: 10px;
	animation: 0.2s;
	border-color: transparent;
	border-width: 39px 0;
	color: transparent;
	background-color: rgba(34,34,34,0.2);
}

/**
 * WP-Forms
 */
 
/* Weird bug where can't fill fields within */
.wpforms-widget .wpforms-container .wpforms-field{ position: static; }

.wpforms-container input[type=checkbox], .wpforms-container input[type=radio]{
  margin: 2px !important; /* Our checkboxes override anyway */
}
/* Select field Fixes */
.pp-wpforms-content div.wpforms-container-full .wpforms-form select{
    padding: 0 7px !important;
}
/* Box Padding */
@media screen and (max-width: 450px){
	.pp-wpforms-content{
		padding: 10px 15px !important;
	}
}

/**
 Select2 
**/
.select2-container{ max-width: 100%; }
.select2-container .select2-selection--multiple{ padding: 0.3em 0.2em 0; }
.select2-container .select2-selection span.select2-selection__rendered{
	line-height: 32px;
}

.select2-container--default .select2-selection--single{ border-color: #e6e6e6; }
.select2-container--default .select2-selection--single .select2-selection__arrow{
  height: 100%;
  top: 0;
}

.select2-container--default .select2-results__option--highlighted[aria-selected]{
  background-color: #D3D3D3; /* Make grey to eliminate blue tone for selections */
}

/**
 * WordPress Galleries: [gallery]
 */
.fl-page .gallery{
   display:table;
}
.fl-page .gallery .gallery-item{
   float:none !important;
   display:table-cell;
   vertical-align: middle;
   margin: 5px 0 !important;
   padding: 0 5px !important;
}
.fl-page .gallery .gallery-item img{ border: none !important; }

@media screen and (max-width: 450px){
	.gallery .gallery-item{
		width: 100% !important;
	}
}
/* Gallery lightbox tweaks */
.mfp-iframe-holder .mfp-close, .mfp-image-holder .mfp-close{
	right: 6px;
}

/**
 * Force equalize heights
 * - PP Pricing Tables
 * - PP Content Module
 */
@media screen and (min-width: 768px){
	.pp-pricing-table,
	.pp-pricing-table .pp-pricing-table-col{
		display: flex;
	}
	
	.pp-content-post{ display:flex; flex-direction: column; }
	.pp-content-body{ height: 100%; }

	.pp-pricing-table .pp-pricing-table-col .pp-pricing-table-inner-wrap,
	.pp-content-post-data{
		display:flex;
		height: 100%;
		/* show flex items as 1 column */
		flex-direction: column;
		/* equalize spacing between elements of the column, so last element is at bottom */
		justify-content: space-between; 
	}
    .pp-pricing-table .pp-pricing-table-features li{
        display: block;
    }
}
.pp-content-post-data .pp-add-to-cart a:hover{ text-decoration: none; }

/*===================================*/

/**
 * Nav CTA class which can be applied to any menu entry: .cta
 * or via customizer
 */
 @media screen and (min-width: 795px){
 	li.menu-item.cta{
 		display: block;
 		border-radius: 2px;
 		background-color: #000;
 		transition: background-color 0.3s;
 	}

 	li.menu-item.cta a{
 		color: #fff;
 		transition: color 0.3s;
 	}
  
 	li.current-menu-item.cta>a{ color: #fff; }
  
 	/* Fixed Header Tweaks */
 	.fl-page-header-fixed li.menu-item.cta{ margin: 0.3em 0.1em; }
 	.fl-page-header-fixed li.menu-item.cta a{ padding: 7px 10px 4px !important; }
 }

 /*===================================*/
 
 /**
  * twocol class which can be applied to PowerPack accordions to split
  * them into two columns
  */

@media screen and (min-width: 768px){
	
	.twocol.fl-module-pp-advanced-accordion .pp-accordion{
		-webkit-column-count: 2;
		-moz-column-count: 2;
		-o-column-count: 2;
		column-count: 2; 
	}
	.twocol.fl-module-pp-advanced-accordion .pp-accordion .pp-accordion-item{
		-webkit-column-break-inside: avoid;
							page-break-inside: avoid;
									 break-inside: avoid;
	}

}

 /*===================================*/
