/*
 * Elementor compatibility for pages converted from WPBakery.
 *
 * The converter keeps WPBakery's class names on the Elementor elements
 * (pic-row, vc_col-sm-*, wpb_single_image, vc_cta3 ...). These rules give
 * them the spacing and look WPBakery's own stylesheet used to provide.
 */

/* --- grid --- */
body {
	overflow-x: clip;
}
/*
 * Rows have WPBakery's -15px gutters. Set through Elementor's variables so a
 * row's own margin rules (e.g. .seven-columns in the page CSS) still win.
 */
.elementor .e-con.pic-row:not(.pic-stretch-row) {
	--margin-left: -15px;
	--margin-right: -15px;
	--width: auto;
	max-width: none;
}
/* Full-width rows break out of the theme's 1170px .row */
.elementor .e-con.pic-stretch-row {
	--width: 100vw;
	--margin-left: calc(50% - 50vw);
	--margin-right: calc(50% - 50vw);
	max-width: 100vw;
}
/*
 * The PDF Layout template (tmpl_pdf.php) has no footer, so WPBakery's
 * stretch script never ran there: "full width" rows stayed in the grid.
 */
/*
 * Its header floats can reach past the header at tablet widths. WPBakery's
 * rows flowed past them; Elementor's flex rows would be squeezed beside them.
 */
.page-template-tmpl_pdf-php .elementor {
	clear: both;
}
.page-template-tmpl_pdf-php .elementor .e-con.pic-stretch-row {
	--width: auto;
	--margin-left: -15px;
	--margin-right: -15px;
	max-width: none;
}
/*
 * WPBakery columns are ordinary blocks, so the vertical margins of the
 * elements in them collapse (35px + 50px gives 50px). Elementor's are flex
 * columns, where margins add up; make them blocks again. Rows stay flex.
 */
.elementor .e-con.pic-col {
	display: block;
}
/*
 * The theme's spacing classes, used as row classes. Elementor's container
 * rule loads after style.css and resets margin/padding, so set them through
 * Elementor's variables instead.
 */
.e-con.page-margin-top {
	--margin-top: 50px;
}
.e-con.page-margin-top-section {
	--margin-top: 65px;
}
.e-con.page-padding-top {
	--padding-top: 50px;
}
.e-con.page-padding-top-section {
	--padding-top: 65px;
}
.e-con.padding-bottom-17 {
	--padding-bottom: 17px;
}
.e-con.padding-bottom-50 {
	--padding-bottom: 50px;
}
/*
 * WPBakery rows clear the floated columns before them, which cancelled the
 * page CSS's negative top margin on .green rows (Contact Us).
 */
.elementor .e-con.pic-row + .e-con.pic-row.green {
	margin-top: 0;
}

/*
 * --- element spacing (WPBakery's .wpb_content_element) ---
 * Same specificity as Elementor's ".e-con .elementor-widget.elementor-widget
 * { margin-block-end: 0 }" and loaded after it, so these win over Elementor
 * but the site's own CSS (Additional CSS, loaded later) still wins over these,
 * as it did over WPBakery's defaults.
 */
.e-con .elementor-widget.wpb_content_element {
	margin-bottom: 35px;
}
/* Containers take margins through Elementor's variables, at lower specificity */
.e-con.vc_cta3-container {
	--margin-bottom: 35px;
}
.e-con .elementor-widget.vc_btn3-container,
.e-con .elementor-widget.vc_tta-container {
	margin-bottom: 21.73913043px;
}
/* WPBakery drops the margin on the last element in a tab or accordion panel */
.elementor .e-con.vc_tta-panel-body > .elementor-widget:last-child {
	margin-bottom: 0;
}

/*
 * Elementor makes everything border-box; the theme's CSS (forms, tables,
 * floated columns) was written for the browser default.
 */
.elementor .elementor-widget-text-editor *,
.elementor .elementor-widget-shortcode *,
.elementor .elementor-widget-html * {
	box-sizing: content-box;
}

/* The site's CSS underlines links; Elementor turns that off inside its content. */
.elementor a {
	text-decoration: underline;
}
.elementor a.elementor-button,
.elementor .elementor-widget-image a,
.elementor .elementor-widget-image-gallery a,
.elementor .elementor-widget-icon a,
.elementor .elementor-widget-heading a {
	text-decoration: none;
}

/* --- text --- */
.elementor .elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

/*
 * --- headings ---
 * Elementor sets .elementor-heading-title { line-height: 1 }; put back the
 * theme's line-heights (style.css and responsive.css). :where() keeps these
 * at Elementor's specificity, so more specific theme rules still win.
 */
:where(h1).elementor-heading-title { line-height: 34px; }
:where(h2).elementor-heading-title { line-height: 40px; }
:where(h3).elementor-heading-title { line-height: 34px; }
:where(h4).elementor-heading-title { line-height: 28px; }
:where(h5).elementor-heading-title { line-height: 24px; }
:where(h6).elementor-heading-title { line-height: 24px; }
:where(div, p, span).elementor-heading-title { line-height: inherit; }
@media screen and (max-width: 1189px) {
	:where(h4).elementor-heading-title { line-height: 24px; }
}
@media screen and (max-width: 767px) {
	:where(h2).elementor-heading-title { line-height: 36px; }
	:where(h3).elementor-heading-title { line-height: 28px; }
}
@media screen and (max-width: 479px) {
	:where(h2).elementor-heading-title { line-height: 32px; }
	:where(h3).elementor-heading-title { line-height: 26px; }
}
/* WPBakery put a heading's custom class on the heading tag itself */
.elementor .pdf-heading .elementor-heading-title {
	font-size: 40px;
	font-weight: 300;
	text-align: center;
}

/* --- images --- */
.elementor .elementor-widget-image img {
	vertical-align: top;
}
.elementor .pic-image-vc-box-border img {
	padding: 6px;
	background-color: #ebebeb;
}

/* --- buttons (WPBakery "modern" style) --- */
.elementor .pic-btn .elementor-button {
	font-family: inherit;
	font-size: 14px;
	font-weight: normal;
	line-height: normal;
	padding: 14px 20px;
	border: 1px solid transparent;
	border-radius: 5px;
	color: #fff;
	background-color: #6dab3c;
	text-decoration: none;
}
.elementor .pic-btn.pic-btn-size-xs .elementor-button {
	font-size: 11px;
	padding: 8px 12px;
}
.elementor .pic-btn.pic-btn-size-sm .elementor-button {
	font-size: 12px;
	padding: 11px 16px;
}
.elementor .pic-btn.pic-btn-size-lg .elementor-button {
	font-size: 18px;
	padding: 18px 25px;
}
/* WPBakery's button icons are slightly larger than the text */
.elementor .pic-btn.pic-btn-size-sm .elementor-button-icon {
	font-size: 14px;
}
.elementor .pic-btn.pic-btn-size-md .elementor-button-icon {
	font-size: 16px;
}
.elementor .pic-btn.pic-btn-shape-square .elementor-button {
	border-radius: 0;
}
.elementor .pic-btn.pic-btn-shape-round .elementor-button {
	border-radius: 2em;
}
.elementor .pic-btn.pic-btn-color-green .elementor-button {
	background-color: #6dab3c;
	border-color: #6dab3c;
	color: #fff;
}
.elementor .pic-btn.pic-btn-color-green .elementor-button:hover,
.elementor .pic-btn.pic-btn-color-green .elementor-button:focus {
	background-color: #5f9434;
	border-color: #5f9434;
	color: #f7f7f7;
}
.elementor .pic-btn.pic-btn-color-grey .elementor-button {
	background-color: #ebebeb;
	border-color: #ebebeb;
	color: #666;
}
.elementor .pic-btn.pic-btn-color-grey .elementor-button:hover,
.elementor .pic-btn.pic-btn-color-grey .elementor-button:focus {
	background-color: #dcdcdc;
	border-color: #dcdcdc;
	color: #5e5e5e;
}

/* --- call to action --- */
.elementor .e-con.vc_cta3 {
	border: 1px solid transparent;
	word-wrap: break-word;
}
.elementor .e-con.vc_cta3.vc_cta3-style-classic {
	border-color: #f0f0f0;
	background-color: #f7f7f7;
}
.elementor .e-con.vc_cta3.vc_cta3-style-flat.vc_cta3-color-classic {
	background-color: #f0f0f0;
}
.elementor .e-con.vc_cta3.vc_cta3-style-flat.vc_cta3-color-white {
	background-color: #fff;
	color: #5e5e5e;
}
.elementor .e-con.vc_cta3.vc_cta3-style-flat.vc_cta3-color-green {
	background-color: #6dab3c;
	color: #e5f2da;
}
.elementor .e-con.vc_cta3.vc_cta3-style-flat.vc_cta3-color-black {
	background-color: #2a2a2a;
	color: #d9d9d9;
}
.elementor .e-con.vc_cta3 .vc_cta3-content-header .elementor-heading-title {
	color: inherit;
}
/* The text takes the free space and the button keeps its natural width. */
.elementor .e-con.vc_cta3 > .e-con.vc_cta3-content {
	--width: auto;
	flex: 1 1 0%;
	min-width: 0;
}
/* WPBakery spaces the text from the button with padding (page CSS may change it) */
.e-con.vc_cta3-actions-right > .e-con.vc_cta3-content {
	padding-right: 28px;
}
.e-con.vc_cta3-actions-left > .e-con.vc_cta3-content {
	padding-left: 28px;
}
.elementor .e-con.vc_cta3 .elementor-widget.vc_cta3-actions {
	margin-bottom: 0;
	white-space: nowrap;
	flex: 0 0 auto;
}
/*
 * WPBakery makes the text and button table cells inside an ordinary block,
 * so the browser wraps them in a shrink-to-fit table: short text keeps the
 * button beside it, long text fills the width. Only the same CSS does that.
 */
@media (min-width: 768px) {
	.elementor .e-con.vc_cta3.vc_cta3-actions-right,
	.elementor .e-con.vc_cta3.vc_cta3-actions-left {
		display: block;
	}
	.elementor .e-con.vc_cta3.vc_cta3-actions-right > *,
	.elementor .e-con.vc_cta3.vc_cta3-actions-left > * {
		display: table-cell;
	}
	.elementor .e-con.vc_cta3 > .e-con.vc_cta3-content {
		vertical-align: top;
	}
	.elementor .e-con.vc_cta3 > .elementor-widget.vc_cta3-actions {
		vertical-align: middle;
		max-width: 30%;
	}
}

/* --- accordions and tabs (WPBakery "modern" style) --- */
.elementor .pic-accordion {
	--n-accordion-padding: 9px 15px;
	--n-accordion-border-color: #f7f7f7;
	--n-accordion-border-width: 1px;
	--n-accordion-border-style: solid;
	--n-accordion-title-font-size: 14px;
	--n-accordion-title-normal-color: #666;
	--n-accordion-title-hover-color: #666;
	--n-accordion-title-active-color: #666;
	--n-accordion-icon-normal-color: #666;
	--n-accordion-icon-hover-color: #666;
	--n-accordion-icon-active-color: #666;
	--n-accordion-icon-size: 10px;
	--n-accordion-icon-gap: 12px;
	--n-accordion-item-title-space-between: 0px;
	--n-accordion-item-title-distance-from-content: 0px;
}
.elementor .pic-accordion .e-n-accordion-item-title {
	position: relative;
	background-color: #fff;
	font-family: 'Raleway';
}
/* WPBakery placed the icon in the title's left padding */
.elementor .pic-accordion .e-n-accordion-item-title-icon {
	position: absolute;
	left: 15px;
	top: 50%;
	transform: translateY(-50%);
}
.elementor .pic-accordion .e-n-accordion-item-title-icon svg {
	width: 10px;
	height: 10px;
}
/* Neighbouring items share a border, as in WPBakery */
.elementor .pic-accordion .e-n-accordion-item + .e-n-accordion-item {
	margin-top: -1px;
}
.elementor .pic-accordion .e-n-accordion-item-title:hover {
	background-color: #f7f7f7;
}
.elementor .pic-accordion .e-n-accordion-item-title-text {
	margin: 0;
	font-size: 14px;
	font-weight: normal;
	line-height: 1;
}
.elementor .pic-accordion .e-n-accordion-item > .e-con {
	--padding-top: 14px;
	--padding-right: 20px;
	--padding-bottom: 14px;
	--padding-left: 20px;
	background-color: #fff;
}
.elementor .pic-tabs {
	--n-tabs-title-background-color: #fff;
	--n-tabs-title-background-color-hover: #f0f0f0;
	--n-tabs-title-background-color-active: #f8f8f8;
	--n-tabs-title-color: #666;
	--n-tabs-title-color-hover: #666;
	--n-tabs-title-color-active: #666;
	--n-tabs-title-font-size: 14px;
	--n-tabs-title-padding-top: 14px;
	--n-tabs-title-padding-right: 20px;
	--n-tabs-title-padding-bottom: 14px;
	--n-tabs-title-padding-left: 20px;
	--n-tabs-title-gap: 0px;
	--n-tabs-title-border-radius: 0;
	--n-tabs-gap: 0px;
	--n-tabs-heading-justify-content: flex-start;
	--n-tabs-title-flex-grow: 0;
}
.elementor .pic-tabs .e-n-tab-title {
	font-family: 'Raleway';
	font-size: 14px;
	line-height: 24px;
	border: 1px solid #f7f7f7;
}
.elementor .pic-tabs .e-n-tab-title[aria-selected="true"] {
	border-color: #f0f0f0;
	border-bottom-color: #f8f8f8;
}
.elementor .pic-tabs .e-n-tabs-content > .e-con {
	--padding-top: 14px;
	--padding-right: 20px;
	--padding-bottom: 14px;
	--padding-left: 20px;
	border: 1px solid #f0f0f0;
	background-color: #f8f8f8;
}

/* --- Google map (WPBakery's frame) --- */
.elementor .wpb_gmaps_widget {
	background-color: #f7f7f7;
	padding: 5px;
}
.elementor .wpb_gmaps_widget .wpb_map_wraper iframe {
	display: block;
	width: 100%;
	margin-bottom: 0;
	padding: 0;
	border: none;
}

/* --- gallery, menu, icon --- */
.elementor .elementor-widget-wp-widget-nav_menu ul {
	margin: 0;
}

@media only screen and (max-width: 767px) {
	.elementor .e-con.vc_cta3 .elementor-widget.vc_cta3-actions {
		display: none;
	}
}
