/* Globals */
.truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Lenis Smooth Scroll */
html.lenis,
html.lenis body {
  height:auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis.lenis-smooth iframe {
  pointer-events: auto;
}

/* Left Edge Layout */
.edge-align-left {
  padding-left: calc((100vw - 1200px) / 2);
}
.edge-right .e-con-inner{
	margin-left:0 !important;
	margin-right:0 !important;
}
/* Right Edge Layout */
.edge-align-right {
  padding-right: calc((100vw - 1200px) / 2);
}
.edge-left .e-con-inner{
	margin-left:auto !important;
	margin-right:0 !important;
}

.ip-country-block { display: none; }
.country-info{display: none;}
.country-info.is-active{display: block;}
.ip-country-flag {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
}
.ip-country-flag img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}
.reveal-text{
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end; /* bottom-align children in a column */
  min-height: 220px; 
}
.reveal-text .reveal-inner{
  transition: transform .4s ease;
  will-change: transform;
}
.reveal-text{
  --reveal-offset: 90px; /* <-- adjust */
}
.reveal-text .reveal-inner{
  transform: translateY(var(--reveal-offset));
}
.reveal-text:hover .reveal-inner{
  transform: translateY(0);
}
@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}
.bounce-forever {
  animation: floatY 2.6s ease-in-out infinite;
  will-change: transform;
}
/* Navigation Styles */
.scroll-header--alt,
.scroll-header--alt * {
    overflow:visible !important;
}
.header-default,
.header-default * {
    overflow:visible !important;
}
.scroll-header--alt{
    position:fixed;
    top:0; 
    left: 0; 
    right: 0;
    width: 100%;
    z-index: 9999;
    transform: translateY(-110%);
    transition: transform 240ms ease;
    will-change: transform;
}
.scroll-header--alt.is-visible { /* Slide it into view */
    transform: translateY(0);
}
.mainnav .sub-menu {
    position:absolute;
    z-index:100000;
}
.mainnav li.quote-btn a{
	background-color:#68b9e2;
	color:#003B4F !important;
	padding:12px 20px;
	transition:color .3s linear, background-color .3s linear;
}
.mainnav li.quote-btn a:hover{
	background-color:#000;
	color:#fff !important;
}
.mainnav .elementor-menu-toggle{
	padding:6px;
	transition:background .3s linear; 
}
.mainnav .elementor-menu-toggle svg{
	width: 1.2em;
}
.mainnav span.elementor-menu-toggle__icon--close, 
.mainnav span.elementor-menu-toggle__icon--open {
    line-height:0;
}
.mainnav ul.sub-menu li.menu-item a{
	padding:14px 20px !important;
}
ul.elementor-nav-menu--dropdown a, 
ul.elementor-nav-menu--dropdown a:focus, 
ul.elementor-nav-menu--dropdown a:hover {
    border-inline-start:none !important;
    text-shadow:none;
}

/* Footer */
#footer-nav .elementor-nav-menu--layout-horizontal .elementor-nav-menu{
	flex-direction:column;
}
#footer-nav .elementor-nav-menu a{
	padding-left:0 !important;	
}

.colophon-links ul li a span{
	text-decoration:underline !important;
}
/* Hero Styles */
.why-hero::after{
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  height: 100%;
  width: 50%;
  background: rgba(15, 23, 42, 0.25);
  /*background: rgba(103, 184, 225, 0.9);*/
  clip-path: polygon(0 0, 50% 0, 100% 100%, 0% 100%);
  z-index:1;
}
.our-hero::after{
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  height: 100%;
  width: 50%;
  background: rgba(104, 184, 225, 0.25);
  clip-path: polygon(0 0, 50% 0, 100% 100%, 0% 100%);
  z-index:1;
}

/* Tall Video */
.tall-video{
	width:50%;
	height:100%;
	overflow:hidden;
}

/* CF7: Installer Login Styles */
.wpcf7-form{
	font-family:'Roboto',sans-serif;
}
.wpcf7-form .form-row{
	margin-top:0.75rem;
}
.wpcf7-form .form-row h5{
	font-family:"Montserrat", Sans-serif;
	font-weight:700;
	font-size:0.845rem;
	text-transform:uppercase;
    display:flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;              
    text-align: center;
    margin: 1.5rem 0;
}
.wpcf7-form .form-row h5::before,
.wpcf7-form .form-row h5::after {
    content: "";
    flex: 1; 
    height: 1px;
    background:rgb(226, 232, 240);
    opacity: 0.35; 
}
.wpcf7-form label{
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.wpcf7-form label span{
	color:red;
}
.rfp .wpcf7-form label{
    color:#fff;
}
.wpcf7-form .form-row .password-row{
	display:flex;
	flex-direction:row;
	justify-content:space-between;
	align-items:center;
}
.wpcf7-form .form-row .password-row a{
	font-size: 0.875rem;
    line-height: 1.25rem;
	color:#003B4F;
	text-decoration:none;
	transition:color .3s linear;
}
.wpcf7-form .form-row .password-row a:hover{
	color:#68B8E1;
}
.wpcf7-form .form-columns{
	margin-top:0.75rem;
	display:flex;
	flex-direction:row;
	gap:10px;
} 
.wpcf7-form .form-columns .form-col{
	display:flex;
	flex-direction:column;
	width:50%;
} 
.wpcf7-form input,
.wpcf7-form textarea{
	border:1px solid rgb(226, 232, 240);
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1rem !important;
    padding-right:1rem !important;
	/*border-radius:0.75rem;*/
	width:100%;
	margin-top:0.5rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
}
.wpcf7-form select{
	background:#fff;
	border:1px solid rgb(226, 232, 240);
	padding-top:0.75rem !important;
    padding-bottom:0.90rem !important; /* offset quirk with CF7 select*/
	padding-left:1rem !important;
    padding-right:1rem !important;
	/*border-radius:0.75rem;*/
	width:100%;
	margin-top:0.5rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
}
.wpcf7-form input.wpcf7-submit{
	background:#003B4F;
	border:0 !important;
	color:#fff !important;
	font-weight: 600;
	cursor: pointer;
	width:100%;
	transition:background 0.3s linear;
}
.wpcf7-form input.wpcf7-submit:hover{
	background:#68B8E1;
}
.wpcf7-form .submit-btn{
	background:#003B4F;
	border:0 !important;
	color:#fff !important;
	font-weight: 600;
	cursor: pointer;
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1rem !important;
    padding-right:1rem !important;
	/*border-radius:0.75rem;*/
	width:100%;
	margin-top:0.5rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
	transition:background 0.3s linear;
}
.wpcf7-form .submit-btn:hover{
	background:#68B8E1;
}
/* Grey Inputs */
.wpcf7-form .grey-fields input,
.wpcf7-form .grey-fields select,
.wpcf7-form .grey-fields textarea{
	background-color:#f8f8f8;
}
.wpcf7-not-valid-tip{
	font-size:0.875rem !important;
    line-height:1.25rem;
	font-weight:500 !important;
	color:#7f1d1d !important;
}
/* CF7: nicer spinner */
.wpcf7-spinner {
  width:18px;
  height:18px;
  margin-top:10px;
  border-radius:999px;
  border:2px solid rgba(0,0,0,.15);
  border-top-color:rgba(0,0,0,.55);
  background:transparent !important;
  opacity:1;
  display:none;
  animation:ip-spin 0.8s linear infinite;
}
/* Remove CF7 pseudo-elements */
.wpcf7-spinner::before,
.wpcf7-spinner::after {
  display: none !important;
  content: none !important;
}
/* Modern alert banners */
.wpcf7-response-output{
  margin:0.5rem 0 0 0 !important;
  padding:8px 14px 8px 38px !important;
  border-radius:8px;
  font-size:0.86rem !important;
  line-height:1.45;
  border:1px solid transparent;
}
.wpcf7 form.sent .wpcf7-response-output {
  background-color: #ecfdf5;      
  border-color: #6ee7b7;         
  color: #065f46;                
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
  background-color:#fef2f2;    
  border-color:#fca5a5;         
  color: #7f1d1d;                
}
.wpcf7 form.submitting .wpcf7-response-output {
  background-color: #f9fafb;   
  border-color: #e5e7eb;        
  color: #374151;                
}
.wpcf7-response-output {
  border-width: 1px !important;
}
.wpcf7-response-output {
  animation: ip-fade-slide 0.25s ease-out both;
}
/* Password Reset Success */
.wpcf7-response-output.wpcf7-mail-sent a.reset-now-login{
	color:#003B4F;
	text-decoration:underline;
	transition:color .3s linear;
}
.wpcf7-response-output.wpcf7-mail-sent a:hover.reset-now-login{
	color:#68B8E1;
	text-decoration:none;
}
.wpcf7-response-output::before{
  content:"";
  position:absolute;
  left:14px;
  top:10px;  
  width:18px;
  height:18px;
  background-repeat: no-repeat;
  background-size: 18px 18px;
}
.wpcf7 form.sent .wpcf7-response-output::before {
  font-weight: 600;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23065f46'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z' /%3E%3C/svg%3E%0A");	
}
.wpcf7 form.invalid .wpcf7-response-output::before,
.wpcf7 form.failed .wpcf7-response-output::before {
  font-weight: 600;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%237f1d1d'%3E%3Cpath fill='none' stroke-linecap='round' stroke-linejoin='round' d='M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z' /%3E%3C/svg%3E%0A");	
}
/* Subscribe Form */
.subscribe-form{
	display:flex;
	flex-direction:row;
	justify-content:start;
	align-content:stretch;
	gap:8px;
	width:100%;
}
.wpcf7-form > .subscribe-form  .wpcf7-form-control-wrap{
	flex-grow:1;
}
.wpcf7-form > .subscribe-form  .wpcf7-form-control-wrap input{
	border-radius:0px !important;
	width:100% !important;
}
.wpcf7-form > .subscribe-form  input.wpcf7-submit{
	border-radius:0px !important;
	width:25% !important;
	background:#68B8E1 !important;
	color:#003B4F;
	font-family:'Montserrat', sans-serif;
	transition:background .3s linear;
}
.wpcf7-form > .subscribe-form  input.wpcf7-submit:hover{
	background:#000 !important;
}

/* Reset Pass word Errors*/
.wpcf7-response-output.wpcf7-validation-errors{
  margin:0.5rem 0 0 0 !important;
  padding:8px 14px 8px 14px !important;
  border-radius:8px;
  font-size:0.86rem !important;
  line-height:1.45;
  border:1px solid;
  background-color:#fef2f2;    
  border-color:#fca5a5;         
  color: #7f1d1d;                
}

/* Installer Dashboard Styles */
/* Installer Logout Button in Dashboard Nav */
a.installer-logout{
	background-color:#003B4F;
	color:#fff;
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1.95rem !important;
    padding-right:1rem !important;
	border-radius:0.75rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
	background-position:12px 12px;
	background-size:18px 18px;
	font-family:'Roboto', sans-serif;
	background-repeat:no-repeat;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='white'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='M8.25 9V5.25A2.25 2.25 0 0 1 10.5 3h6a2.25 2.25 0 0 1 2.25 2.25v13.5A2.25 2.25 0 0 1 16.5 21h-6a2.25 2.25 0 0 1-2.25-2.25V15m-3 0-3-3m0 0 3-3m-3 3H15' /%3E%3C/svg%3E%0A");
	transition:background-color .3s linear;
}
a.installer-logout:hover{
  background-color:#68B8E1;	
}
/* Installer Display Name in Dashboard Nav */
.dashboard-user-name{
	font-family:"Montserrat", Sans-serif;
	font-weight:700;
	font-size:1rem;
}
a.dashboard-card-btn,
a.dashboard-card-btn{
	background-color:#003B4F;
	color:#fff;
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1rem !important;
    padding-right:1rem !important;
	border-radius:0.75rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
	font-family:'Roboto', sans-serif;
	transition:background-color .3s linear;	
}
a.dashboard-card-btn:hover,
a.dashboard-card-btn:hover{
  background-color:#68B8E1;		
}

.acf-fields > .acf-field{
	padding:0;
	border:none !important;
	margin-top: 0.75rem;
}
.acf-label label{
	font-weight:600 !important;
    font-size: 0.875rem;
    line-height: 1.25rem;
}
.acf-label p.description{
	 font-size: 0.775rem;
    line-height: 1.05rem;
}
.acf-input input{
	border:1px solid rgb(226, 232, 240);
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1rem !important;
    padding-right:1rem !important;
	border-radius:0.75rem;
	width:100%;
	margin-top:0.5rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
}
.acf-input input:focus{
	outline:none !important;
}
.acf-input textarea{
	border:1px solid rgb(226, 232, 240);
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1rem !important;
    padding-right:1rem !important;
	border-radius:0.75rem;
	width:100%;
	margin-top:0.5rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
}
.acf-input select{
	border:1px solid rgb(226, 232, 240);
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1rem !important;
    padding-right:1rem !important;
	border-radius:0.75rem;
	width:100%;
	margin-top:0.5rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
	background:#fff;
	margin-bottom:1rem;
}
.acf-input .acf-gallery{
	height:280px !important;
} 
.acf-form-submit input{
	background-color:#003B4F;
	color:#fff;
	width:100%;
	font-weight:700;
	border:none !important;
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1rem !important;
    padding-right:1rem !important;
	border-radius:0.75rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
	font-family:'Roboto', sans-serif;
	transition:background-color .3s linear;	
}
.acf-form-submit input:hover{
	background-color:#68B8E1;		
}
a.acf-repeater-add-row,
.acf-image-uploader a.acf-button{
	background-color:#003B4F;
	color:#fff;
	font-weight:700;
	border:none !important;
	padding-top:0.55rem !important;
    padding-bottom:0.55rem !important;
	padding-left:0.80rem !important;
    padding-right:0.80rem !important;
	border-radius:0.45rem;
	font-size:0.815rem !important;
    line-height:1.15rem;
	font-family:'Roboto', sans-serif;
	transition:background-color .3s linear;	
	margin-bottom:0.75rem;
} 
.acf-image-uploader a.acf-button{
	margin-left:0.75rem;
}
.acf-image-uploader .hide-if-value p{
	font-family:'Roboto', sans-serif;
}
.acf-gallery-main li a.acf-button{
	background-color:#003B4F;
	color:#fff;
	font-weight:700;
	border:none !important;
	padding-top:0.55rem !important;
    padding-bottom:0.55rem !important;
	padding-left:0.80rem !important;
    padding-right:0.80rem !important;
	border-radius:0.45rem;
	font-size:0.815rem !important;
    line-height:1.15rem;
	font-family:'Roboto', sans-serif;
	transition:background-color .3s linear;	
	margin-bottom:0.75rem;
} 
.acf-gallery-main li.acf-fr{
	display:none !important;
}

/* Banner Basic */
.alert-banner-blue p{
	margin-bottom:0 !important
}
.installer-dash-title{
	font-family: "Montserrat", Sans-serif !important;
    font-weight: 600;
    color: #0F172A;
	margin:0 0 12px 0;
}
.installer-dash-text{
	font-family:'Roboto',sans-serif;
	font-size:0.875rem;
	margin:0 0 12px 0;
}
a.back-to-projects{
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: #003B4F;
  margin-bottom:0.75rem;	
	display:inline-block;
  text-decoration: none;
  transition: color .3s linear;
}

/* Notices on Edit Project */
.ip-notice{   
	border:1px solid #6ee7b7;
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:2.35rem !important;
    padding-right:1rem !important;
	border-radius:0.75rem;
	width:100%;
	font-size:0.925rem !important;
    line-height:1.25rem;
	background-color:#ecfdf5;
	font-family:"Roboto", sans-serif;
	display:flex;
	font-weight:700;
	color:#065f46;
	background-size:18px 18px;
	background-position:15px 13px;
	background-repeat:no-repeat;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23065f46'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z' /%3E%3C/svg%3E");
}
/* project Cards */
.ip-project-card{
	border:1px solid rgb(226, 232, 240);
	padding:1rem !important;
    border-radius:0.75rem;
	background:#fafbfd;
}
.ip-project-card .ip-project-title{
	font-family: "Montserrat", Sans-serif !important;
    font-weight: 600;
    color:#0F172A;
	font-size:18px;
	margin:0 0 12px 0;
}
.ip-project-card .ip-project-actions{
	display:flex;
	flex-direction:row;
	gap:10px;
	padding-top:0.4rem;
}
.ip-project-card .ip-project-actions a.ip-btn-edit{
	background-color:#003B4F;
	color:#fff;
	font-weight:700;
	border:none;
    padding:0.50rem;
	border-radius:0.45rem;
	font-size:0.815rem;
    line-height:1.15rem;
	text-align:center;
	font-family:'Roboto', sans-serif;
	transition:background-color .3s linear;		
	width:50%;
	background-repeat:no-repeat;
	background-size:16px 16px;
	background-position:12px 9px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='white'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125' /%3E%3C/svg%3E%0A");
}
.ip-project-card .ip-project-actions a.ip-btn-delete{
	background-color:red;
	color:#fff;
	font-weight:700;
	border:none !important;
    padding:0.50rem;
	border-radius:0.45rem;
	text-align:center;
	font-size:0.815rem;
    line-height:1.15rem;
	font-family:'Roboto', sans-serif;
	transition:background-color .3s linear;	
	width:50%;
	background-repeat:no-repeat;
	background-size:16px 16px;
	background-position:12px 9px;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='white'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0' /%3E%3C/svg%3E%0A");
}
.ip-project-card .ip-project-actions a.ip-btn-edit:hover,
.ip-project-card .ip-project-actions a.ip-btn-delete:hover{
	background-color:#000;
}
.ip-project-card .ip-project-body .title-row{
	display:flex;
	flex-direction:row;
	align-items:center;
	gap:8px;
	margin-bottom:0.5rem;
}
.ip-project-card .ip-project-body .title-row .icon-box{
	padding:0.65rem;
	border-radius:0.45rem;
	margin:0;
	display:flex;
	justify-content:center;
	background:#dbeafe;
}
.ip-project-card .ip-project-body .title-row .icon-box svg{
	width:18px;
	height:18px;
}
.ip-project-card .ip-project-body .title-row h3{
	font-family: "Montserrat", Sans-serif !important;
    font-weight: 600;
    color:#0F172A;
	font-size:18px;
	margin:0;
}
.ip-project-card .ip-project-body .meta-row{
	display:flex;
	flex-direction:row;
	justify-content:center;
	align-items:center;
	gap:8px;
	margin-bottom:0.5rem;
	font-size:0.82rem;
}
.ip-project-card .ip-project-body .meta-row .split{
	flex-shrink:3;
}
.ip-project-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;  
  overflow: hidden;
  border-radius: 12px;   
  background: #f3f4f6;    
  margin-bottom: 12px;
}
.ip-project-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ip-project-thumb--empty {
  background:#eef2ff; 
}
/* Zip Code Finder */
.installer-finder-form{
	display:flex;
	flex-direction:row;
	align-items:flex-end;
	width:100%;
	gap:10px;
	margin-bottom:1rem;
}
.installer-finder-form label{
    font-weight: 600;
    font-size: 0.875rem;
    line-height: 1.25rem;
	color:#fff;
}
.installer-finder-form .zip-block{
	flex-grow:1
}
.installer-finder-form input{
	border:1px solid rgb(226, 232, 240);
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1rem !important;
    padding-right:1rem !important;
	/*border-radius:0.75rem;*/
	width:100%;
	margin-top:0.5rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
}
.installer-finder-form select{
	background:#fff;
	border:1px solid rgb(226, 232, 240);
	padding-top:0.75rem !important;
    padding-bottom:0.90rem !important; /* offset quirk with CF7 select*/
	padding-left:1rem !important;
    padding-right:1rem !important;
	/*border-radius:0.75rem;*/
	width:100%;
	margin-top:0.5rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
}
.installer-finder-form .btn-block{
	display:flex;
	flex-direction:column;	
}
.installer-finder-form .btn-block button{
	margin-top:auto;
	background:#68B8E1;
	border:0 !important;
	color:#fff !important;
	font-weight: 600;
	cursor: pointer;
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:1rem !important;
    padding-right:1rem !important;
	/*border-radius:0.75rem;*/
	width:100%;
	font-size:0.875rem !important;
    line-height:1.25rem;
	transition:background 0.3s linear;
}
.installer-finder-form .btn-block button:hover{
	background:#191919;
}
.installer-finder-results-count p{   
	border:1px solid #6ee7b7;
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:2.35rem !important;
    padding-right:1rem !important;
	border-radius:0.75rem;
	width:100%;
	font-size:0.925rem !important;
    line-height:1.25rem;
	background-color:#ecfdf5;
	font-family:"Roboto", sans-serif;
	display:flex;
	font-weight:700;
	color:#065f46;
	background-size:18px 18px;
	background-position:15px 13px;
	background-repeat:no-repeat;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23065f46'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z' /%3E%3C/svg%3E");
}
p.installer-finder-empty{   
	border:1px solid #cf1111;
	padding-top:0.75rem !important;
    padding-bottom:0.75rem !important;
	padding-left:2.35rem !important;
    padding-right:1rem !important;
	border-radius:0.75rem;
	width:100%;
	font-size:0.925rem !important;
    line-height:1.25rem;
	background-color:#ffc5c5;
	font-family:"Roboto", sans-serif;
	display:flex;
	font-weight:700;
	color:#cf1111;
	background-size:18px 18px;
	background-position:15px 13px;
	background-repeat:no-repeat;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23cf1111'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z' /%3E%3C/svg%3E");
}
.installer-finder-list{
 	display:grid;
 	grid-template-columns:repeat(3, minmax(0, 1fr)); /* example */
 	gap:24px;
 	align-items:stretch;
}
.installer-card{
	display: flex;
 	flex-direction: column;
 	height: 100%;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
	/*border-radius:8px;*/
	border: 1px solid rgba(0,0,0,.08);
	overflow:hidden;
}
.installer-results-card-body{
	flex:1;                
 	display:flex;
 	flex-direction: column;
	padding:1.5rem 1.5rem 1rem 1.5rem;
}
.installer-top-section{
	display:flex;
	flex-direction:row;
	justify-content:space-between;
	align-items:center;
	margin-bottom:0.55rem;
}
.installer-addy p{
	text-align:right;
	font-size:0.825rem;
	line-height:0.975rem;
}
.installer-logo{
 	width:96px;           
 	height:96px;
 	border-radius:50%;     
 	overflow:hidden;       
 	background-color:#fff; 
 	display: flex;
 	align-items: center;
 	justify-content: center;
 	border:1px solid rgba(0,0,0,.08);
}
.installer-logo__img{
 	width:100%;
 	height:100%;
 	object-fit:contain;
	padding:10%;         
}
/* Fallback monogram */
.installer-logo__fallback{
 	width:100%;
 	height:100%;
 	background:#68B8E1;
 	color:#fff;
 	font-weight:700;
 	font-size:34px;
 	letter-spacing:.06em;
 	display:flex;
 	align-items:center;
 	justify-content:center;
 	text-transform:uppercase;
	font-family:"Montserrat", sans-serif !important;
}
.installer-results-card-body h5{
    font-family:"Montserrat", sans-serif !important;
    font-weight:600;
	margin-bottom:0.25rem;
}
.installer-results-card-body p{
	margin-bottom:0.25rem;
}
.installer-results-card-body p.phone{
	padding-left:18px;
	background-repeat:no-repeat;
	background-size:15px 15px;
	background-position:0px 5px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23111111'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='M10.5 1.5H8.25A2.25 2.25 0 0 0 6 3.75v16.5a2.25 2.25 0 0 0 2.25 2.25h7.5A2.25 2.25 0 0 0 18 20.25V3.75a2.25 2.25 0 0 0-2.25-2.25H13.5m-3 0V3h3V1.5m-3 0h3m-3 18.75h3' /%3E%3C/svg%3E");
}
.installer-results-card-body p.link{
	padding-left:18px;
	background-repeat:no-repeat;
	background-size:15px 15px;
	background-position:0px 5px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23111111'%3E%3Cpath stroke-linecap='round' fil='none' stroke-linejoin='round' d='M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418' /%3E%3C/svg%3E");
}
.installer-results-card-body p.phone a,
.installer-results-card-body p.link a{
	color:#003B4F;
	transition:color .3s linear;
}
.installer-results-card-body p.link a{
	text-decoration:underline;
}
.installer-results-card-body p.phone a:hover,
.installer-results-card-body p.link a:hover{
	color:#68B8E1;
}
.installer-view-profile{
  	display:flex;
	flex-direction:row;
	justify-content:space-between;
	margin-top: auto;
	border-top: 1px solid rgba(0,0,0,.08);
	background:#fff;
	padding:1.5rem;
	font-size:0.875rem !important;
    line-height:1.25rem;
}
.installer-view-profile svg{
	width:10px;
	height:auto;
}
.installer-view-profile a{
	padding:8px 12px 8px 32px;
	/*border-radius:8px;*/
	background-color:#003B4F;
	background-repeat:no-repeat;
	background-size:15px 15px;
	background-position:12px 11px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23ffffff'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z' /%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z' /%3E%3C/svg%3E%0A");
	color:#fff;
	font-weight:500;
	text-decoration:none;
	transition:background-color .3s linear;
}
.installer-view-profile a:hover{
	background-color:#68B8E1;
}
/* Company Profile Public */
.ip-company-profile__meta{
	flex:1;
}
.ip-company-profile__header{
	display:flex;
	flex-direction:row;
	gap:20px;
	justify-content:start;
	align-items:start;
}
.ip-company-profile__header .ip-logo-frame{
	width:96px;           
 	height:96px;
 	border-radius:50%;     
 	overflow:hidden;       
 	background-color:#fff; 
 	display: flex;
 	align-items: center;
 	justify-content: center;
 	border:1px solid rgba(0,0,0,.08);	
}
.ip-company-profile__header .ip-logo-frame .ip-logo-img{
 	width:100%;
 	height:100%;
 	object-fit:contain;
	padding:10%;         
}
.ip-company-profile__header .ip-logo-fallback{
	background:#68B8E1 !important;
}
.ip-company-profile__header .ip-logo-monogram{
	background:#68B8E1;
 	color:#fff;
 	font-weight:700;
 	font-size:34px;
 	letter-spacing:.06em;
}
.ip-company-detail{
	margin:0 0 0.5rem 0;
}
.ip-company-address{
 	border-bottom:1px solid rgba(0,0,0,.08);	
	padding:0 0 0.55rem 0;
	margin-bottom:0.55rem;
}
h1.ip-company-name{
	font-family:"Montserrat", sans-serif !important;
	font-weight:700;
	font-size:1.645rem;
	text-transform:uppercase;
	letter-spacing:1.3px;
	margin:0 0 0.25rem 0;
	padding:0;
}
.ip-address{
	font-size:1.025rem;
}
.ip-company-detail .ip-phone{
	display:block;
	color:#003B4F;
	padding-left:20px;
	background-repeat:no-repeat;
	background-size:15px 15px;
	background-position:0px 4px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23111111'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='M10.5 1.5H8.25A2.25 2.25 0 0 0 6 3.75v16.5a2.25 2.25 0 0 0 2.25 2.25h7.5A2.25 2.25 0 0 0 18 20.25V3.75a2.25 2.25 0 0 0-2.25-2.25H13.5m-3 0V3h3V1.5m-3 0h3m-3 18.75h3' /%3E%3C/svg%3E");
	transition:.3s color linear;
	margin-bottom:0.25rem;
}
.ip-company-detail .ip-phone:hover{
	color:#68B8E1;
}
.ip-company-detail .ip-email{
	display:block;
	color:#003B4F;
	padding-left:20px;
	background-repeat:no-repeat;
	background-size:15px 15px;
	background-position:0px 4px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23111111'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75' /%3E%3C/svg%3E");
	transition:.3s color linear;
	margin-bottom:0.25rem;
}
.ip-company-detail .ip-email:hover{
	color:#68B8E1;
}
.ip-company-detail .ip-web{
	display:block;
	color:#003B4F;
	padding-left:20px;
	background-repeat:no-repeat;
	background-size:15px 15px;
	background-position:0px 4px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23111111'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418' /%3E%3C/svg%3E");
	transition:.3s color linear;
	margin-bottom:0.25rem;
}
.ip-company-detail .ip-web:hover{
	color:#68B8E1;
}
h2.ip-project-title{
	font-family:"Montserrat", sans-serif !important;
	font-weight:600;
	font-size:1.645rem;
	margin:0 0 0.65rem 0;	
}
.ip-project-header h3.ip-project-title{
	display:block;
	color:#003B4F;
	padding-left:20px;
	background-repeat:no-repeat;
	background-size:15px 15px;
	background-position:0px 4px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23111111'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='M11.42 15.17 17.25 21A2.652 2.652 0 0 0 21 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 1 1-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 0 0 4.486-6.336l-3.276 3.277a3.004 3.004 0 0 1-2.25-2.25l3.276-3.276a4.5 4.5 0 0 0-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437 1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008Z' /%3E%3C/svg%3E");
}
.ip-project-meta{
	border-bottom:1px solid rgba(0,0,0,.08);	
	padding:0 0 0.55rem 0;
}

/* Dropdowns for Resources Countries */
.resource-country-dropdown {
  position: relative;
  display: inline-block;
}
button.resource-country-trigger{
	background:#fff;
	min-width:260px;
}
.resource-country-trigger {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #ddd;
  background: #fff;
  cursor: pointer;
}
.resource-country-selected {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: 100%;	
}
.resource-country-flag {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  object-fit: cover;
}
.resource-country-menu {
  position: absolute;
  z-index: 999;
  top: calc(100% + 6px);
  left: 0;
  min-width: 240px;
  border: 1px solid #ddd;
  background: #fff;
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  padding: 6px;
}
.resource-country-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 10px;
  text-decoration: none;
  color: inherit;
  border-radius: 6px;
}
.resource-country-option:hover {
  background: #f5f5f5;
}
.resource-country-option.is-active {
  background: #111;
  color: #fff;
}
/* Resource Grid */
.resource-thumb {
  position: relative;
  width: 100%;
  height: 150px;
  overflow: hidden;
}
/* Image (equivalent to w-full h-full object-cover) */
.resource-thumb img,
.resource-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Post Info */
#post-info h2{font-size:28px;}
#post-info h3{font-size:24px; margin-top:1rem;}
#post-info h4{font-size:21px; margin-top:1rem;}
#post-info h5{font-size:19px; margin-top:1rem;}
#post-info ul{margin-bottom:1.5rem;}
#post-info ul li{margin:0.25rem 0;}
#post-info p{font-size:17px; line-height:29px; margin-top:0.45rem;}
#post-info p a,
#post-info ul li a{text-decoration:underline;}
#post-info .elementor-author-box{
	margin-top:1.5rem;
	border:1px solid #E2E8F0;
	padding:20px;
}
.post-thumb > .elementor-widget-image a{
  display: block;
}
.elementor-widget-wp-widget-categories h5{
	padding-left:20px;
	background-repeat:no-repeat;
	background-size:15px 15px;
	background-position:0px 4px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor'%3E%3Cpath stroke-linecap='round' fill='none' stroke-linejoin='round' d='M3.75 6.75h16.5M3.75 12H12m-8.25 5.25h16.5' /%3E%3C/svg%3E");
}
.elementor-widget-wp-widget-categories nav ul{
	margin:0;
	padding:0;
	list-style: none;
}
.elementor-widget-wp-widget-categories nav ul li a{
	font-family:"Montserrat", Sans-serif !important;
	font-size:13px;
	padding:8px 10px;
	border-top:1px dotted #E2E8F0;
	border-radius:4px;
	display:block;
	transition:color .3s linear, background .3s linear;
	background:transparent;
}
.elementor-widget-wp-widget-categories nav ul li a:hover{
	background:#68B8e1;
	color:#fff;
}
.elementor-widget-wp-widget-categories nav ul li.current-cat a{
	background:#68B8e1;
	color:#fff;
}

/* Site Terms | Privacy | Cookies  */
#terms-content h2{font-size:24px; border-bottom:1px solid #E2E8F0; margin-top:1.25rem;}
#terms-content h3{font-size:20px; margin-top:1rem;}
#terms-content h4{font-size:18px; margin-top:1rem;}
#terms-content ul{margin-bottom:1.5rem;}
#terms-content ul li a,#terms-content p a{text-decoration:underline; color:#68B8E1 !important;}
#terms-content ul li{margin:0.25rem 0;}
#terms-content p.update-tag{
	display:inline-block;
	padding:8px 14px; 
	background:#E2E8F0;
	font-size:12px;
	border-radius:25px;
}

/* Custom Animations */
@keyframes spin-dynamic {
  0% {
    transform: rotate(0deg);
    animation-timing-function: ease-in;
  }
  20% {
    transform: rotate(360deg);
    animation-timing-function: linear;
  }
  50% {
    transform: rotate(1440deg); /* 4 fast spins */
    animation-timing-function: ease-out;
  }
  80% {
    transform: rotate(1800deg); /* 5 total spins */
    animation-timing-function: ease-out;
  }
  100% {
    transform: rotate(2160deg); /* 6 total spins */
  }
}
.ventillation {
  animation: spin-dynamic 2.8s infinite;
  transform-origin: center;
  display: inline-block;
}
@keyframes ip-spin {
  to { transform: rotate(360deg); }
}
@keyframes ip-fade-slide {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* Desktop only */
@media (min-width: 1025px) {
 	.mainnav nav.elementor-nav-menu--main { 
	  position: relative; 
	}
 	.mainnav nav.elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item{
    	display:inline-flex;
    	align-items:center;
    	gap:.35em;
    	white-space:nowrap;
 	}
  	.mainnav nav.elementor-nav-menu--main .ip-nav-underline{
    	position:absolute;
    	left:0;
    	bottom:-20px;
    	height:3px;
    	background:#68b9e2;
    	width:0;
    	transform:translateX(0) scaleX(0);
    	transform-origin:left center;
    	transition: transform 0.35s cubic-bezier(0.25, 1, 0.5, 1), width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    	will-change:transform, width;
    	pointer-events:none;
  	}
  	.mainnav nav.elementor-nav-menu--main .ip-nav-underline.is-on{
    	transform: translateX(var(--ip-underline-x, 0px)) scaleX(1);
    	width: var(--ip-underline-w, 0px);
 	}
  	.mainnav nav.elementor-nav-menu--main .elementor-nav-menu > li > ul.sub-menu {
    	box-shadow:0 10px 30px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.04);
    	border-radius:8px;
    	background:#fff;
    	padding:0;
    	transform:translateY(12px) !important;
    	overflow:hidden !important;
  	}
  	html.ip-sm-js .mainnav nav.elementor-nav-menu--main .elementor-nav-menu > li > ul.sub-menu {
    	opacity:0;
    	transform:translateY(-8px);
    	transition:opacity .22s ease, transform .22s ease;
    	will-change:opacity, transform;
  	}
  	html.ip-sm-js .mainnav nav.elementor-nav-menu--main .elementor-nav-menu > li > ul.sub-menu.ip-sm-open {
    	opacity:1;
    	transform:translateY(0);
  	}
}
/* Hover fallback ONLY on real hover devices */
@media (hover: hover) and (pointer: fine) and (min-width: 1024px){
	.mainnav nav.elementor-nav-menu--main .elementor-nav-menu > li:hover > ul.sub-menu {
    	opacity:1;
    	transform:translateY(0);
 	}
}
/* Tablet */
@media (max-width: 1024px){	
 	.scroll-header--alt { /* Hide Sticky Nav */ 
	 	display:none; 
	}
	.elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--main { /* Hide Desktop Nav Instance */
    	display: none !important;
	}	 
	.elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown {/* Drawer container */
    	display: block !important;
    	overflow: visible !important; 
	}
	.elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown ul.sub-menu{
		width:100% !important;
		position:relative !important;
		overflow: hidden !important;
	    max-height: 0;
	    opacity: 0;
	  transition: max-height .25s ease, opacity .2s ease;
	}
	.elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown ul.sub-menu[aria-hidden="false"]{
 		opacity: 1;
	}
	.elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown li:hover > ul.sub-menu{
    	max-height: 0;
    	opacity: 0;
 	}
  	.elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown li.ip-open:hover > ul.sub-menu{
    	opacity: 1; /* only open if JS says open */
  	}
	  /* 1) Make hover irrelevant on mobile (touch devices can “stick” :hover) */
  .elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown li:hover > ul.sub-menu{
    max-height: 0 !important;
    opacity: 0 !important;
  }

  /* 2) Only open when our JS says it's open */
  .elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown li.ip-open > ul.sub-menu{
    max-height: 2000px !important; /* JS will set exact px; this is a fallback */
    opacity: 1 !important;
  }

  /* 3) And even if hovered, keep it open when .ip-open */
  .elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown li.ip-open:hover > ul.sub-menu{
    max-height: 2000px !important;
    opacity: 1 !important;
  }
	.elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown *{
    		-webkit-tap-highlight-color: transparent;
  	}
	.elementor-widget-nav-menu.mainnav nav.elementor-nav-menu--dropdown ul.sub-menu.ip-sm-open {/* Neutralize desktop class if it ever appears */
    	transform: none !important;
	}
  	.mainnav nav.elementor-nav-menu--dropdown ul li a{
    	padding:20px 24px !important;
    	font-size:16px;
    	font-family:"Montserrat", Sans-serif !important;
	}
  	.mainnav nav.elementor-nav-menu--dropdown > ul.elementor-nav-menu > li.menu-item-has-children > a{
    	display:flex;
    	flex-direction:row;
    	justify-content:space-between;
    	width:100%;
  	}
	.mainnav li.quote-btn a{
    	background-color:#003B4F;
    	color:#fff !important;
  	}
	.installer-finder-list{
    	grid-template-columns: repeat(2, minmax(0, 1fr));
  	}
	/* Tall Video */
	.tall-video{
		width:100%;
		height:100%;
		overflow:hidden;
	}
}

/* Mobile */
@media (max-width: 640px){
    .installer-finder-list{
        grid-template-columns: 1fr;
    }
}

