/*
Theme Name: Template R1
Theme URI: http://rvadv.com
Description: Child theme. Child theme for RVADV Framework.
Template: rvadv_framework_theme
Author: Rearview Advertising Rafa
Author URI: http://rvadv.com
Version: 1.0 
*/
/* ---------------------------------------- */
/* ------------- CSS IMPORTS ---------------*/
/* ---------------------------------------- */
/* @import url('https://fonts.googleapis.com/css2?family=Barlow:wght@100;200;300;400;500;600;700;800;900&display=swap'); */
/* ---------------------------------------- */
/* -------------- CSS RESET ----------------*/
/* ---------------------------------------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
/* ---------------------------------------- */
/* -------------- VARIABLES ----------------*/
/* ---------------------------------------- */
:root {
	--primary: #1a3463;
	--secondary: #f3f3f3;
	--link: #00F;
	--link-hover: #F00;
	--primary-font: Roboto, sans-serif;
	--heading-font: Roboto, sans-serif;
	
	font-size: clamp(1rem, 0.5rem + 1.25vw, 1.25rem);
	background-color: #fff;
}

/* ---------------------------------------- */
/* ------------ GLOBAL STYLES ------------- */
/* ---------------------------------------- */
html {
	box-sizing: border-box;
}
*, *:before, *:after {
	box-sizing: inherit;
}
* {
	touch-action: manipulation;
}
img {
	max-width: 100%;
}
body {
	font-family: var(--primary-font);
}
strong {
	font-weight: bold;
}
em, i {
	font-style: italic;
}
blockquote {
	background: #f9f9f9;
	border-left: 10px solid #ccc;
	margin: 1.5em 10px;
	padding: 0.5em 10px;
	quotes: "\201C""\201D""\2018""\2019";
}
blockquote:before {
	color: #ccc;
	content: open-quote;
	font-size: 4em;
	line-height: 0.1em;
	margin-right: 0.25em;
	vertical-align: -0.4em;
}
blockquote p {
	display: inline;
}
code {
    background-color: #eee;
    border-radius: 3px;
    font-family: courier, monospace;
    padding: 0 3px;
}
pre {
	font-family: monospace;
    white-space: pre;
}
li {
	list-style: none;
}
a {
	text-decoration: none;
	color: var(--links);
}
a:hover {
	color: var(--link-hover);
}
.hide {
	display: none;
}
.bold {
	font-weight: bold;
}
.grid-container {
	max-width: 1400px !important;

}
/* fix for flexbox from unsemantic*/
.grid-container::before, .grid-container::after {
	content: none !important;
}
.grecaptcha-badge {
	display: none !important;
}
.button {
	font-family: var(--primary-font);
	background-color: var(--primary);
	color: white;
	text-transform: uppercase;
	border: none;
	border-radius: 4px;
	padding: 14px 32px;
	text-align: center;
	text-decoration: none;
	display: inline-block;
	font-size: 16px;
	margin: 4px 0px;
	margin-right: 12px;
	cursor: pointer;
	width: fit-content;
	max-width: 300px;
	position: relative;
	white-space: nowrap;
}
.button:hover {
	background-color: var(--secondary);
	color: #000;
	box-shadow: 0px 1px 2px 2px rgba(0, 0, 0, 0.3);
}
.button.secondary {
	background-color: var(--secondary);
	color: var(--primary);
}
.button.secondary:hover {
	background-color: var(--primary);
	color: var(--secondary);
	box-shadow: 0px 1px 2px 2px rgba(255, 255, 255, 0.3);
}
/* Responsive font sizing */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--heading-font);
	font-weight: bold;
}
h1 {font-size: 3.999rem;}
h2 {font-size: 2.999rem;}
h3 {font-size: 2.333rem;}
h4 {font-size: 2.000rem;}
h5 {font-size: 1.666rem;}
h6 {font-size: 1.333rem;}
ul,li,p {
	font-size: 1rem;
	line-height: 1.5rem;
}
ul,li,p {
	font-family: var(--primary-font);
	font-size: 1rem;
	font-weight: 300;
	line-height: 1.5rem;
}

/* CUSTOM SCROLLBAR */
/* width */
::-webkit-scrollbar {
	width: 6px;
	background-color: var(--secondary)
}

/* Track */
::-webkit-scrollbar-track {
	display: none;
}

/* Handle */
::-webkit-scrollbar-thumb {
	background: var(--primary);
	width: 12px;
	border-radius: 0px;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
	background: #979797;
}

/* -------------------------------------------
NOTES:

unsemantic breakpionts : mobile / tablet / desktop 
@media (max-width: 400px) {}
@media (max-width: 767px) {}

------------------------------------------- */
/* ---------------------------------------- */
/* ---------------  NAV BAR   ------------- */
/* ---------------------------------------- */

header {
	--max-width-header: 100%;
	--header-height: 70px;
	--nav-btn-spacing: 20px;
	--nav-btn-height: var(--header-height);
	--nav-bg: #fff;

	height: var(--header-height);
	color: #000;
	width: 100%;
	position: sticky;
	top: 0;
	z-index: 100;
	background-color: var(--nav-bg);
	box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.1);
}
/* ---------------  LOGO   ------------- */
header a.custom-logo-link {
	display: flex;
	margin-left: max(calc(( 100vw - 1400px )/2 ), 0px);
}
header img.custom-logo {
	max-height: var(--header-height);
	height: 100%;
	width: auto;
	padding: 12px 0;
}
/* ------------------------------------- */
header > .grid-container {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	max-width: var(--max-width-header) !important;
	padding-right: 0;
}
header > .grid-container > .hide-on-mobile {
	display: flex;
	justify-content: center;
	align-items: center;
}
header > .grid-container > .hide-on-mobile > .nav {
	white-space: nowrap;
}
header > .grid-container > .hide-on-mobile > .nav > ul.menu {
	display: flex;
}
header > .grid-container > .hide-on-mobile > .nav > ul.menu > li.menu-item {
	display: flex;
}
header > .grid-container > .hide-on-mobile > .nav > ul.menu > li.menu-item:last-child a {
	background: var(--primary);
	color: #FFF;
	transition: background 0.04s ease-in-out;
	border-bottom: 1px solid rgba(255, 255, 255, 0.5);
}
header > .grid-container > .hide-on-mobile > .nav > ul.menu > li.menu-item:last-child a:hover {
	background-color: var(--secondary);
	color: var(--primary);
}
header > .grid-container > .hide-on-mobile > .nav > ul.menu > li.menu-item:not(:last-child) {
	border-right: 2px solid #d6d6d6;
}
header > .grid-container > .hide-on-mobile > .nav > ul.menu > li.menu-item:last-child a {
	padding: 0 60px;
}
header > .grid-container > .hide-on-mobile > .nav > ul.menu > li.menu-item > a {
	padding: 0px var(--nav-btn-spacing);
	height: var(--nav-btn-height);
	display: flex;
	justify-content: center;
	align-items: center;
}
/* ------------  SUBNAV MENU DESKTOP ----------- */
header > .grid-container > .hide-on-desktop {}
header > .grid-container > .hide-on-desktop > .nav {}
header > .grid-container > .hide-on-desktop > .nav > ul.menu {}
header > .grid-container > .hide-on-desktop > .nav > ul.menu > li.menu-item {}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children {
	position: relative;
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children > a::after {
	position: relative;
	font-family: "Font Awesome 5 Pro";
	content: "\f0d7";
	font-size: 14px;
	font-weight: 900;
	padding-left: 8px;
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children .sub-menu {
	top: var(--header-height);
	max-height: 0;
	transition: max-height 0.4s linear;
	overflow: hidden;
	position: absolute;
	right: -2px;
	background-color: var(--nav-bg);
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children .sub-menu .sub-menu {
	right: 0;
	top: 20px;
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children:hover > .sub-menu {
	max-height: 100vh;
	z-index: 101;
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children > .sub-menu > li > a:hover {
	background-color: rgba(0, 0, 0, 0.1);
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children .sub-menu li a {
	width: 100%;
	display: block;
	padding: 8px 20px;
	border-bottom: 1px solid rgba(0,0,0,0.1);
	border-left: 4px solid var(--secondary);
	border-right: 2px solid #00000022;
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children > .sub-menu > li > ul {
	position: relative;
	margin-top: -20px;
	margin-bottom: 20px;
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children > .sub-menu > li > ul > li > a {
	padding-left: 40px !important;
	position: relative;
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children > .sub-menu > li > ul > li > a::before {
	content: "";
	position: absolute;
	display: block;
	left: 15px;
	top: 18px;
	width: 5px;
	height: 5px;
	background-color: var(--secondary);
	transition: left 0.1s ease-in-out;
}
header > .grid-container > .hide-on-mobile > .nav .menu-item-has-children > .sub-menu > li > ul > li > a:hover::before {
	left:25px;
}
/* ------------  SUBNAV MENU MOBILE ----------- */
/* SVG MOBILE MENU ICON ANIMATION */
.hide-on-desktop  .svg-menu {
	width: 32px;
	height: auto;
	padding: 20px;
	cursor: pointer;
	box-sizing: content-box;
}
.svg-menu * { overflow: visible; transition: all 0.2s linear;}
.svg-menu svg rect:nth-child(1) {opacity: 1;}
.svg-menu.active svg rect:nth-child(1) {opacity: 0; transform: translateY(150px);}
.svg-menu.active svg rect:nth-child(2) {transform: rotate(45deg) translateY(-135px) translateX(45px);}
.svg-menu.active svg rect:nth-child(3) {transform: rotate(-45deg) translateY(30px) translateX(-140px);}
/*  */
.hide-on-desktop  .mobile-nav.hidden {
	max-width: 0;
}
.hide-on-desktop  .mobile-nav {
	transition: all 0.2s ease-in-out;
	overflow: hidden;
	max-width: 100%;
	position: fixed;
	background-color: #fff;
	width: 100%;
	right: 0;
	top: var(--header-height);
	height: calc( 100% - var(--header-height));
	box-shadow: inset 0px 2px 2px 0px rgba(0, 0, 0, 0.2);
}
.hide-on-desktop  .mobile-nav .menu-item-has-children {
	position: relative;
}
.hide-on-desktop  .mobile-nav .menu-item-has-children > a::after {
	position: relative;
	font-family: "Font Awesome 5 Pro";
	content: "\f0d7";
	font-size: 14px;
	font-weight: 900;
	padding-left: 8px;
}
.hide-on-desktop  .mobile-nav .menu-item-has-children .sub-menu {
	top: var(--header-height);
	max-height: 0;
	transition: max-height 0.4s linear;
	overflow: hidden;
	left: 0;
	background-color: var(--mobile-nav-bg);
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
}
.hide-on-desktop  .mobile-nav .menu-item-has-children .sub-menu .sub-menu {
	right: 0;
	top: 20px;
}
.hide-on-desktop  .mobile-nav .menu-item-has-children:hover > .sub-menu {
	max-height: 100vh;
	z-index: 101;
}
.hide-on-desktop  .mobile-nav .menu-item-has-children > .sub-menu > li > a:hover {
	background-color: rgba(0, 0, 0, 0.1);
}
.hide-on-desktop  .mobile-nav li a {
	width: 100%;
	display: block;
	padding: 8px 20px;
	border-bottom: 1px solid rgba(0,0,0,0.1);
	border-left: 4px solid var(--secondary);
	border-right: 2px solid #00000022;
}
.hide-on-desktop  .mobile-nav .menu-item-has-children .sub-menu li a {
	border-left: 8px solid var(--secondary);
}
.hide-on-desktop  .mobile-nav .menu-item-has-children > .sub-menu > li > ul {
	position: relative;
	margin-top: -20px;
	margin-bottom: 20px;
}
.hide-on-desktop  .mobile-nav .menu-item-has-children > .sub-menu > li > ul > li > a {
	padding-left: 40px !important;
	position: relative;
}
.hide-on-desktop  .mobile-nav .menu-item-has-children > .sub-menu > li > ul > li > a::before {
	content: "";
	position: absolute;
	display: block;
	left: 15px;
	top: 18px;
	width: 5px;
	height: 5px;
	background-color: var(--secondary);
	transition: left 0.1s ease-in-out;
}
.hide-on-desktop  .mobile-nav .menu-item-has-children > .sub-menu > li > ul > li > a:hover::before {
	left:25px;
}
/* BACK TO TOP BUTTON - FIXED TO BTM RIGHT OF ALL PAGES THROUGH HEADER */
#back-to-top-btn {
	display: inline-block;
	background-color: #000;
	width: 50px;
	height: 50px;
	text-align: center;
	border-radius: 4px;
	position: fixed;
	bottom: 0px;
	right: 20px;
	transition: background-color .3s, 
		opacity .5s, visibility .5s;
	opacity: 0;
	visibility: hidden;
	z-index: 99;
}
#back-to-top-btn::after {
	content: "\f102";
	font-family: 'Font Awesome 5 Pro';
	font-weight: normal;
	font-style: normal;
	font-size: 2em;
	line-height: 50px;
	color: #fff;
}
#back-to-top-btn:hover {
	cursor: pointer;
	background-color: #333;
}
#back-to-top-btn:active {
	background-color: #555;
}
#back-to-top-btn.show {
	opacity: 0.3;
	visibility: visible;
}
@media (min-width: 500px) {
	#back-to-top-btn {
		margin: 30px;
	}
}
@media (max-width: 767px) {
	#back-to-top-btn {
		bottom: 60px;
		right: -4px;
	}
}
/* ---------------  BANNER   ------------- */
.banner {
	--banner-fz: 14px;
	--banner-txt-clr: #979797;

	position: sticky;
	display: flex;
	justify-content: space-between;
	z-index: 101;
	position: relative;
	background-color: #fff;
	box-shadow: 0 1px 1px 0px #d6d6d6;
	padding: 0 10px;
	white-space: nowrap;
	overflow: hidden;
}
.banner .left {
	display: flex;
}
.banner .left p {
	padding: 0 10px;
}
.banner .left i {
	padding: 0 2px;
}
.banner p {
	font-size: 14px;
	font-weight: 300;
	color: var(--banner-txt-clr);
}
.banner .right {
	display: flex;
}
.banner .right a {
	height: fit-content;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
}
.banner .right i {
	padding: 0 10px;
	font-size: 18px;
}

/* ---------------------------------------- */
/* ---------    HOMEPAGE - HERO     ------- */
/* ---------------------------------------- */
.home.hero {
	--hero-height: 72vh;
	/*/////////////////*/
	display: flex;
	color: var(--primary);
}
.home.hero h2 {
	margin-bottom: 10px;
}
.home.hero img {
	max-width: 50%;
	position: absolute;
	right: 0;
	z-index: -1;
	height: var(--hero-height);
	object-fit: cover;	
	filter: grayscale(0);
}
.home.hero .grid-container {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	height: var(--hero-height);
}
.home.hero .grid-container .hero-content {
	max-width: 50%;
	padding-right: 40px;
}
.home.hero .grid-container .hero-content p {
	padding-bottom: 12px;
}
@media (max-width: 767px) {
	.home.hero {
		--hero-height: 100vh;
		height: var(--hero-height);
		max-height: 800px;
		display: flex;
		align-items: center;
		margin-top: -10vh;
	}
	.home.hero h2 {
		text-align: center;
	}
	.home.hero .grid-container {
		justify-content: start;
		height: fit-content;
		width: 100%;
		padding-top: 30px;
	}
	.home.hero img {
		max-width: 100%;
		filter: brightness(2.2) grayscale(1);
	}
	.home.hero .grid-container .hero-content {
		padding-right: 0px;
		max-width: 100%;
	}
	.home.hero .button {
		width: 100%;
		max-width: 100%;
		margin: 6px 0;
	}
}
/* ---------------------------------------- */
/* ------------- CONTACT      ------------- */
/* ---------------------------------------- */
.contact-section {
	display: flex;
	justify-content: center;
	position: relative;
	color: var(--primary);
	background-color: #333;
}
.contact-section > div {
	display: flex;
	border-radius: 16px;
	overflow: hidden;
	margin: 100px 10px;
	padding: 0;
	background: #fff;
}
.contact-section h2 {
	font-size: 44px;
	margin-right: 50px;
	color: var(--primary);
}
.contact-section form {
	position: relative;
}
.contact-section form .call-btn {
	position: absolute;
	right: 0;
	top: -4px;
	background-color: var(--primary);
	margin-bottom: 20px;
	border-radius: 10px;
	font-size: 20px;
	transition: all 0.2s ease-in-out;
}
.contact-section .call-btn:hover,
.contact-section .call-btn:hover::before {
	background-color: #c0c0c0;
	border-radius: 10px;
}
.contact-section form .call-btn::before {
	content: "";
	width: 7px;
	height: 7px;
	background-color: var(--primary);
	display: block;
	position: absolute;
	left: -5px;
	top: -5px;
	border-radius: 10px;
	transition: all 0.2s ease-in-out;
}
.contact-section .call-btn:hover::before {
	left: 2px;
	border-bottom-right-radius: 0px;
	top: 2px;
}
.contact-section form .call-btn i{
	padding: 12px 12px;
	color: #fff;
}
.contact-section .right-side {
	width: 60%;
	display: flex;
	position: relative;
	border-left: 1px solid #1c336430;
}
.contact-section .right-side .logo-watermark {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 80px;
	height: 80px;
	pointer-events: none;
	opacity: 0.5;
	filter: grayscale(1);
}
.contact-section .right-side iframe {
	max-width: 100%;
	width: 100%;
	height: 100%;
	min-width: 500px;
	background-color: #f4f4ff;
	opacity: 0.8;
	background-size: 16px 16px;
	background-image: repeating-linear-gradient(45deg, #9f9f9f 0, #9f9f9f 1px, #ffffff 0, #ffffff 50%);
	filter:grayscale(0.4);

}
.contact-section > div > div.wpcf7 {
	padding: 16px 40px 0px 40px;
	width: 40%;
	min-width: 450px;
	margin: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
}
.contact-section > div > div h2{
	padding-bottom: 10px;
}
.contact-section > div > div p{
	line-height: 22px;
}
.contact-section .grid-container > .wpcf7 {
	position: relative;
	overflow: hidden;
}
.contact-section .grid-container > .wpcf7::before {
	content: "";
	position: absolute;
	left: -170px;
	top: -200px;
	display: block;
	width: 400px;
	height: 800px;
	rotate: 45deg;
	border-radius: 40px;
	background: var(--primary);
	opacity: 0.1;
}
.contact-section .grid-container > .wpcf7::after {
	content: "";
	position: absolute;
	left: -230px;
	top: 330px;
	display: block;
	width: 1200px;
	height: 600px;
	rotate: -45deg;
	border-radius: 40px;
	background: var(--primary);
	opacity: 0.2;
	z-index: 0;
	pointer-events: none;
}
.contact-section form {
	margin-top: 20px;
}
.contact-section form :is(input:not([type="checkbox"]), textarea) {
    -webkit-appearance: none;
    box-sizing: border-box;
	border: 1px solid var(--primary);

	line-height: 22px;
	border-radius: 10px;
	padding: 12px 15px;
	width: 100%;
	margin: 5px 0;
	font-family: var(--primary-font);
	font-size: 16px;
	position: relative;
	z-index: 2;
	
	color: var(--primary);
	outline: 1px solid rgba(0, 0, 0, 0.1);
	filter: drop-shadow(2px 3px 3px rgba(0, 0, 0, 0.1));
}
.contact-section form textarea {
	height: 180px;
	min-height: 150px;
	max-height: 300px;
	resize: vertical;
}
.contact-section form :is(input, textarea)::placeholder {
	color: #0c2d4db0;
} 
.contact-section form input[type="submit"] {
	cursor: pointer;
	-webkit-appearance: none;
	border-color: var(--primary);
	background-color: var(--primary);
	color: #fff;
	margin-top: 16px;
}
.contact-section form input[type="submit"]:hover {
	color: #fff;
	background-color: var(--link-hover);
	border-color: #fff;
}
.contact-section form input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
    transform: translateY(8px);
    margin-left: -15px;
    position: relative;
    width: 20px;
    height: 20px;
    color: black;
    border: 1px solid var(--primary);
    border-radius: 4px;
    appearance: none;
    outline: 0;
    cursor: pointer;
    transition: background 175ms cubic-bezier(0.1, 0.1, 0.25, 1);
	background: #fff;
	z-index: 1;
}
.contact-section form input[type="checkbox"]::before {
    position: absolute;
    content: '';
    display: block;
    top: 2px;
    left: 6px;
    width: 6px;
    height: 11px;
    border-style: solid;
    border-color: white;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    opacity: 0;
}
.contact-section form input[type="checkbox"]:checked::before {
	opacity: 1;
}
.contact-section form input[type="checkbox"]:checked {
    color: white;
    border-color: var(--primary);
    background: var(--primary);
}
@media (max-width: 768px) {
	.contact-section {
		padding-top: 40px;
	}
	.contact-section > div {
		flex-direction: column;
		margin: 16px 10px;
	}
	.contact-section > div > div.wpcf7 {
		padding: 20px;
		width: 100%;
		min-width: 100px;
	}
	.contact-section form .call-btn {
		right: 4px;
		top: -8px;
	}
	.contact-section form .call-btn i {
		font-size: 18px;
	}
	.contact-section > div > div h2{
		font-size: 36px;
	}
	.contact-section > div > div p{
		line-height: 18px;
		font-weight: 500;
		font-size: 16px;
	}
	.contact-section > div > div p > br {
		display: none;
	}
	.contact-section .right-side {
		width: 100%;
	}
	.contact-section .right-side .logo-watermark {
		width: 50px;
		height: 50px;
		top: 20px;
	}
	.contact-section iframe {
		border-top: 1px solid #b4b9c2;
		min-height: 300px;
		min-width: 100%;
		width: 100%;
		border-bottom-left-radius: 10px;
		border-bottom-right-radius: 10px;
	}
	.contact-section form :is(input, textarea) {
		filter: none;
		outline: 0px solid black !important;
		border: none;
	}
}
.contact-section .wpcf7-not-valid-tip {
	color: white !important;
	padding: 20px 10px 4px 10px;
	margin-top: -20px;
	margin-bottom: -16px;
	border-bottom-left-radius: 10px;
	border-bottom-right-radius: 10px;
	font-size: 14px !important;
	background-color: rgb(165, 41, 41);
	width: fit-content;
	position: relative;
	z-index: 1;
}
.contact-section textarea ~ .wpcf7-not-valid-tip {
	margin-bottom: 0;
}
@media (max-width: 768px) {
	.contact-section .wpcf7-not-valid-tip {
		margin-bottom: 0px;
	}
}
.contact-section  .wpcf7-response-output {
	margin-top: 0 !important;
}
/* wiggle animation for phone icon */
@keyframes wiggle {
    0% { transform: rotate(0deg); }
   80% { transform: rotate(0deg); }
   85% { transform: rotate(5deg); }
   95% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}
.wiggle {
  display: inline-block;
  animation: wiggle 2.5s infinite;
}
.wiggle:hover {
  animation: none;
}

/* ---------------------------------------- */
/* ---------------  FOOTER   -------------- */
/* ---------------------------------------- */
footer {
	background-color: var(--primary);
	border-top: 4px solid white;
	color: #A2A2A2;
	width: 100%;
	padding-bottom: 40px;
}
footer a {
	color: var(--secondary);
	font-size: 18px;
}
footer a:hover {
	color: var(--link-hover);
}
footer > div {
	display: flex;
	justify-content: space-between;
}
footer > div > div {
	margin-top: 70px;
	width: 20%;
	padding-right: 20px;
}
footer > div > div:first-of-type {
	width: 40%;
	padding-right: 30px;
}
footer > div > div:first-of-type a{
	margin-top: 20px;
	display: block;
	max-width: fit-content;
}
footer > div > div h3{
	color: #fff;
	margin-bottom: 26px;
}
footer > div p { 
	font-weight: 500;
}
footer .custom-logo{
	width: 200px;
	height: auto;
}
footer .grid-container > div p{
	line-height: 20px;
}
footer .grid-container > div ul li.menu-item-has-children {
	display: none;
}
footer .grid-container > div ul li {
	padding-bottom: 16px;
}
footer .grid-container .nav ul li > ul {
	display: none;
}
footer .footer_social {
	padding: 10px;
	display: flex;
}
footer h3{
	color: var(--link);
}
footer .footer_social i{
	position: relative !important;
	color: var(--secondary);
	border-radius: 60px;
	padding: 0.5em 0.6em;
	margin: 0 10px;
	display: inline-block;
	transition: all 0.04s linear;
}
footer .footer_social a:hover i{
	color: black;
	background-color:rgba(255, 255, 255, 0.7);
	box-shadow: 0 0 2px #888;
}
footer .footer_contact-wrap > div.addy,
footer .footer_contact-wrap > div.phone {
	color: #fff;
}
footer .footer_contact-wrap > div {
	position: relative;
	padding-bottom: 16px;
}
footer .footer_contact-wrap > div i{
	position: absolute;
	left: -25px;
}
footer .footer_contact-wrap > div i.fa-map-marker-alt{
	position: absolute;
	top: 20%;
	transform: translateY(-10%);
	left: -20px;
}

footer .btm-footer{
	text-align: center;
	display: flex;
	flex-direction: column;
	margin-top: 70px;
}
footer .btm-footer *{
	font-size: 14px;
	line-height: 20px;
	margin: 0;
	padding: 0;
	color: #555;
}
footer .btm-footer a{
	text-decoration: underline;
}
@media (max-width: 767px) {
	footer {
		padding:70px 20px 30px 20px;
	}
	footer > div {
		flex-direction: column;
	}
	footer > div > div, 
	footer > div > div:first-of-type {
		width: 100%;
		margin-top: 40px;
		padding: 0;
	}
	footer .footer_social {
		max-width: 300px;
		margin: auto;
		justify-content: space-around;
	}
	footer .footer_contact-wrap > :is(.phone, .addy){
		margin-left: 20px;
	}
	footer .footer_social i{
		font-size: 22px;
	}
}
/*// Footer CTA //*/
.footer-cta {
	display: flex;
	justify-content: center;
	margin: 24px 0;
}
.footer-cta > div {
	width: 33.33%;
	border-radius: 4px;
	margin: 8px;
	padding: 16px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background-size: cover;
	color: #fff;
	text-shadow: 0 0 3px rgb(0 0 0 / 50%);
}
.footer-cta h3 {
	font-weight: 700;
}
.footer-cta p {
	padding: 8px 0;
}
.footer-cta .button {
	padding: 16px;
}
.footer-cta > div:nth-child(1) {
	background-repeat: no-repeat !important;
	background-position: 120% !important;
	background-size: 170% !important;
}
.footer-cta > div:nth-child(2) {}
.footer-cta > div:nth-child(3) {
	background-position: 0% 50% !important;
}
@media (max-width: 767px) {
	.footer-cta {
		flex-direction: column;
	}
	.footer-cta > div {
		width: 96%;
		min-height: 250px;
	}
	.footer-cta > div:nth-child(2) {
		min-height: 100px;
	}
	.footer-cta > div:nth-child(1) { order: 2;}
	.footer-cta > div:nth-child(2) { order: 1;}
	.footer-cta > div:nth-child(3) { order: 3;}
}

/* ---------------------------------------- */
/* -----------   HOMEPAGE SEC1    --------- */
/* ---------------------------------------- */
.sec1 {
	background-color: var(--primary);
	color: var(--secondary);
	padding: 100px 0;
}
.sec1 .grid-container > div {
	display: flex;
	padding: 80px 0;
}
.sec1 .grid-container > div > div {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0 20px;
	width: 50%;
}
.sec1 .grid-container > div:nth-child(2n) {
	flex-direction: row-reverse;	
}
.sec1 :is(h1,h2,h3,h4) {
	padding: 32px 0 14px 0;
}
.sec1 :is(p, ul) {
	padding: 0 0 10px 0;
}
.sec1 img {
	width: 40%;
	min-height: 300px;
	object-fit: cover;
	border-radius: 16px;
	overflow: hidden;
	margin: auto;
}
@media (max-width: 767px) {
	.sec1 {
		padding: 42px 0;
	}
	.sec1 .grid-container > div {
		flex-direction: column !important;
	}
	.sec1 .grid-container > div > div {
		padding: 64px 0;
		width: 100%;
	}
	.sec1 img {
		width: calc(100% + 20px);
		max-width: calc(100% + 20px);
		margin-left: -10px;
		padding: 0;
		border-radius: 0;
	}
}

/* ---------------------------------------- */
/* -----------   HOMEPAGE SEC2    --------- */
/* ---------------------------------------- */
.sec2 {
	padding: 80px 0;
}
.sec2 .grid-container > div {
	display: flex;
	border-radius: 16px;
	overflow: hidden;
	margin: 60px 0px;
}
.sec2 img {
	object-fit: cover;
	max-width: 40%;
}
.sec2 .grid-container > div:nth-child(2n) {
	flex-direction: row-reverse;	
}
.sec2 .grid-container > div > div {
	background-color: var(--primary);
	color: var(--secondary);
	display: flex;
	flex-direction: column;
	padding: 40px;
	justify-content: center;
}
.sec2 a.button {
	margin-top: 40px;
	margin-left: calc(100% - 178px);
}
@media (max-width: 767px) {
	.sec2 img {
		object-fit: cover;
		max-width: 100%;
		max-height: 200px;
	}
	.sec2 .grid-container > div,
	.sec2 .grid-container > div:nth-child(2n) {
		flex-direction: column-reverse;	
		margin: 40px 0;
	}
	.sec2 a.button {
		margin-top: 40px;
		margin-left: calc(100% - 170px);
	}
}
/* ---------------------------------------- */
/* -----------   HOMEPAGE SEC3    --------- */
/* ---------------------------------------- */
.sec3 {
	padding: 100px 0;
	color: var(--primary);
}
.sec3 .grid-container > div {
	display: flex;
	overflow: hidden;
}
.sec3 h4 {
	text-align: center;
	margin-bottom: 40px;
}
.sec3 .rvadv_gallery {
	--image-gap: 12px;
	gap: var(--image-gap);
	padding: 10px;
}
.sec3 .rvadv_gallery .rvadv_gallery_item {
	transition: all 0.04s ease-in-out;
	width: calc(33.333% - (var(--image-gap)*2/3));
	border-radius: 8px;
	overflow: hidden;
}
.sec3 .rvadv_gallery .rvadv_gallery_item:hover {
	box-shadow: 0px 0px 8px 0px #000;
}
.sec3 .rvadv_gallery .rvadv_gallery_item.load_hidden {
	display: none;
}
.sec3 .rvadv_gallery .rvadv_gallery_item img {
	cursor: pointer;
	display: flex;
	filter: grayscale(1);
}
.sec3 .rvadv_gallery .textcenter {
	width: 100%;
}
.sec3 .rvadv_gallery .textcenter .load_more {
	cursor: pointer;
	width: fit-content;
	margin: auto;
}
@media (max-width: 767px) {
	.sec3 .grid-container > div {
		margin: 20px 0px;
	}
	.sec3 .rvadv_gallery .rvadv_gallery_item {
		width: calc(100%);
	}
	.sec3 .rvadv_gallery {
		margin: 0px;
	}
}
/* ---------------------------------------- */
/* -----------   HOMEPAGE SEC4    --------- */
/* ---------------------------------------- */
.sec4 {
	padding: 100px 0;
	color: var(--primary);
}
.sec4 h4 {
	text-align: center;
	margin-bottom: 40px;
}
.sec4 .filter-gallery-container {
	background-color: var(--primary);
	display: flex;
	width: 100%;
	border-radius: 16px;
	overflow: hidden;
	position: relative;
}
.sec4 .filter-gallery-container .options {
	min-width: 240px;
	color: #fff;
	border-right: 4px solid #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 20px 0;
}
.sec4 .filter-gallery-container .options li {
	cursor: pointer;
}
.sec4 .filter-gallery-container .options li.active {
	color: var(--link-hover);
}
.sec4 .filter-gallery-container ul.images { --rows-shown: 2; } /* default */
.sec4 .filter-gallery-container ul.images[rows-shown="1"] { --rows-shown: 1; }
.sec4 .filter-gallery-container ul.images[rows-shown="2"] { --rows-shown: 2; }
.sec4 .filter-gallery-container ul.images[rows-shown="3"] { --rows-shown: 3; }
.sec4 .filter-gallery-container ul.images[rows-shown="4"] { --rows-shown: 4; }
.sec4 .filter-gallery-container ul.images{
	max-height: calc(var(--rows-shown) * 250px);
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	width: 100%;
	gap: 20px;
	padding: 20px;
	padding-bottom: 4px;
	overflow-x: scroll;
	transition: all 0.4s ease-in-out;
	scroll-behavior: smooth;
	align-content: flex-start;
	cursor: grab;
}
.sec4 .filter-gallery-container ul.images li {
	max-width: fit-content;
	border-radius: 10px;
	overflow: hidden;
	height: 200px;
	position: relative;
}
.sec4 .filter-gallery-container ul.images[rows-shown="2"] li:nth-child(3n-2) {
	height: 420px;
} 
.sec4 .filter-gallery-container ul.images[rows-shown="3"] li:nth-child(4n), 
.sec4 .filter-gallery-container ul.images[rows-shown="3"] li:nth-child(4n+1),
.sec4 .filter-gallery-container ul.images[rows-shown="4"] li:nth-child(4n), 
.sec4 .filter-gallery-container ul.images[rows-shown="4"] li:nth-child(4n+1) {
	height: 420px;
}
.sec4 .filter-gallery-container ul.images li:hover {
	box-shadow: 0px 0px 0px 3px #ffffff;
}
.sec4 .filter-gallery-container ul.images li span {
	position: absolute;
	padding: 0 10px;
	color: white;
	background-color: #000;
	z-index: 1;
	opacity: 0.5;
	pointer-events: none;
}
.sec4 .filter-gallery-container ul.images li img {
	width: 250px;
	height: 100%;
	object-fit: cover;
	filter: grayscale(1);
	cursor: pointer;
	transition: all 0.1s ease-in-out;
}
.sec4 .filter-gallery-container ::-webkit-scrollbar-thumb {
	border: 5px solid transparent;
	border-radius: 100px;
	background-color: rgba(255, 255, 255, 0.7);
	background-clip: content-box;
}
.sec4 .filter-gallery-container ::-webkit-scrollbar-thumb:hover {
	background-color: #fff;
}
.sec4 .filter-gallery-container ::-webkit-scrollbar {
	background-color: transparent;
}
.sec4 .filter-gallery-container .overflow-grad {
	background: linear-gradient(90deg, rgba(255,255,255,0) 0%, var(--primary) 100%);
	position: absolute;
	height: 100%;
	width: 80px;
	right: 0;
	top: 0;
	pointer-events: none;
}

@media (max-width: 767px) {
	.sec4 .grid-container {
		padding: 0;
	}
	.sec4 .filter-gallery-container {
		flex-direction: column;
		border-radius: 0;
	}
	.sec4 .filter-gallery-container .options {
		flex-direction: row;
		border-right: none;
		border-bottom: 4px solid #fff;
		gap: 40px;
		padding: 20px 0;
	}
	.sec4 .filter-gallery-container .overflow-grad {
		display: none;
	}
}


/* --------------------------------- */
/* ---- render listing shortcode --- */
/* --------------------------------- */
.render-listings-shortcode {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin: 40px 0;
}
.render-listings-shortcode li {
	overflow: hidden;
	border-radius: 8px;
	width: calc(33.33% - 20px);
	position: relative;
	border: 2px solid rgba(0, 0, 0, 0.1);
}
.render-listings-shortcode li a{
	height: 100%;
	display: block;
}
.render-listings-shortcode li a:hover {
	opacity: 0.7;
	color: black;
}
.render-listings-shortcode .initial-render-image{
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.render-listings-shortcode h2 {
	position: absolute;
	left: 0px;
	width: 100%;
	text-align: center;
	color: #3f3f3f;
	background-color: rgba(255, 255, 255, 0.7);
	font-weight: 500;
	font-size: 20px;
} 