/**
 * All of the CSS for your public-facing functionality should be
 * included in this file.
 */


.grid{
    display: -ms-grid;
    display: -moz-grid;
    display: grid;
}

.grid-1-1{
    grid-template-columns: repeat(2,1fr);
}

.grid-2-1{
    grid-template-columns: 1.5fr 1fr;
}

@media(max-width: 767px){
	.grid-2-1{
    	grid-template-columns: 1fr;
}
	.single-post{
		min-height: 350px !important;
		max-height: 350px;
	}
	.featured-image{
		max-height: 350px;
	}
	.grid-1-1-1{
    	grid-template-columns: 1fr !important;
	}
}

.grid-1-1-1{
    grid-template-columns: repeat(3,1fr);
}

.gap-s{
    gap:15px;
}

.flex{
    display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */ 
    display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */ 
    display: -ms-flexbox; /* TWEENER - IE 10 */ 
    display: -webkit-flex; /* NEW - Chrome */ 
    display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
}
.flex-1{
    flex: 1;
}

.flex-column{
    flex-direction: column;
}

.clamp-2{
  display: -webkit-box;
  -webkit-line-clamp: 2;     /* Limit to 2 lines */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.single-project,
.single-post{
    position: relative;
    line-height:0;
}
.single-project .featured-image > a,
.single-post .featured-image > a{
    position: absolute;
    top: 0px;
    height: 100%;
    width: 100%;
    z-index: 1;
}
.single-project .featured-image img,
.single-post .featured-image img{
    transition: 250ms;
    height: 100%;
    object-fit: cover;
}
.single-project .featured-image:hover img,
.single-post .featured-image:hover img{
    filter: brightness(1.1);
}
.single-project .details,
.single-post .details{
    flex:1;
    justify-content: space-between;
}
.single-project .description p,
.single-post .description p{
    line-height: 24px;
    margin-bottom: 12px;
    color: #fff;
}
.single-project .data,
.single-post .data{
    position: absolute;
    bottom: 0px;
    padding: 20px;
    background: linear-gradient(0deg, #0082d4ad 60%, #ffffff00);
    z-index: 2;
}
.single-post .data{
    background: linear-gradient(0deg, #0082d4ad 80%, #ffffff00);
}
.single-project .title h3,
.single-post .title h3{
    color:var(--e-global-color-secondary);
    margin-bottom: 12px;
}

.load-more-action{
    text-align: center;
    margin-top: 20px;
}

.tesla-distribution-button.load-more{
    padding: 12px 24px 12px 24px;
    background: var(--e-global-color-primary);
    color: #fff;
    cursor: pointer;
}

.tesla-distribution-button{
    padding: 12px 36px 12px 24px;
    display: inline-block;
    width: auto;
}
.tesla-distribution-button.secondary{
    background: var(--e-global-color-secondary);
    color: #fff;
}

.tesla-distribution-button .icon{
    vertical-align: middle;
    padding-left: 5px;
}

.tesla-distribution-button.secondary:hover{
    color:#fff;
}
.tesla-distribution-button:hover svg{
    transform: translateX(75%) !important;
}

.tesla-distribution-button svg{
    transition: 250ms;
    transform: translateX(0%) !important;
}
.tesla-distribution-project-filter .filter{
    gap:15px;
}
.tesla-distribution-project-filter .single-filter{
    transition: 250ms;
    padding: 12px 24px;
    background: var( --e-global-color-primary );
    color: #fff;
    font-weight: 500;  
    cursor: pointer;
	display: flex;
	align-items: center;
}
.tesla-distribution-project-filter .single-filter:hover{
    background: #3ba6e9;
}
.tesla-distribution-project-filter .single-filter.active{
    background: var( --e-global-color-secondary );
}

.tesla-distribution-project-filter .filter-content{
    margin-top:15px;
    gap:10px;
}

.tesla-distribution-project-filter .single-project{
    background: var(--e-global-color-primary);
    line-height: inherit;
}

.single-project.card .details{
    padding:10px;
}

.tesla-distribution-project-filter .single-project .featured-image{
    line-height: 0;
    position: relative;
    height: 250px;
}

.tesla-distribution-posts-filter .filter{
    gap:15px;
}
.tesla-distribution-posts-filter .single-filter{
    transition: 250ms;
    padding: 12px 24px;
    background: var( --e-global-color-primary );
    color: #fff;
    font-weight: 500;  
    cursor: pointer;
	display: flex;
	align-items: center;
}
.tesla-distribution-posts-filter .single-filter:hover{
    background: #3ba6e9;
}
.tesla-distribution-posts-filter .single-filter.active{
    background: var( --e-global-color-secondary );
}

.tesla-distribution-posts-filter .filter-content{
    margin-top:15px;
    gap:10px;
}

.tesla-distribution-posts-filter .single-post{
    line-height: inherit;
}

.single-post.card .details{
    padding:10px;
}

.single-post.card .description h3{
    color:#fff;
}

.installation-details .single-detail{
    justify-content: space-between;
    align-items: center;
    padding: 12px 0px;
    border-bottom: 1px solid #fff;
}

.installation-details .single-detail .title{
    color: var(--e-global-color-secondary);
}

.installation-details .single-detail .value{
    color: #fff;
}

.tesla-distribution-project-filter .single-project .actions{
    margin-top: 20px;
    text-align: right;
}

.tesla-distribution-project-filter .single-project .tesla-distribution-button{
    padding:10px 28px 10px 16px;
}

.single-project .featured-image .project-category{
    position: absolute;
    bottom: -15px;
    left: 0px;
    padding: 8px;
    background: var(--e-global-color-secondary);
    display: block;
    font-size: 14px;
    line-height: 14px;
    color: #fff;
    z-index: 2;
}

.single-project.card.skeleton-loader{
    background: transparent;
    height: 100%;
    width: 100%;
    min-height: 651px;
}

/* Base styling for the skeleton loader */
.skeleton-loader {
  display: inline-block;
  height: 1em; /* adjust height as needed */
  width: 100%; /* or a fixed width */
  border-radius: 4px;
  background: #f0f0f0;
  position: relative;
  overflow: hidden;
}

/* Subtle gradient shimmer */
.skeleton-loader::after {
  content: '';
  position: absolute;
  top: 0;
  left: -150px;
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, rgba(240, 240, 240, 0) 0%, rgb(0 130 212 / 10%) 50%, rgba(240, 240, 240, 0) 100%);
  animation: shimmer 1.5s infinite;
}

.single-search-result.skeleton-loading{
    position: relative;
    background: #f0f0f0;
    height: 90px;
    overflow: hidden;
}

.single-search-result.skeleton-loading.active:hover{
    background: #f0f0f0;
}

.single-search-result.skeleton-loading::after {
  content: '';
  position: absolute;
  height: 100%;
  width: 100%;
  top: 0px;
  left: -50%;
  background: linear-gradient(90deg, rgba(240, 240, 240, 0) 0%, rgb(0 130 212 / 10%) 50%, rgba(240, 240, 240, 0) 100%);
  animation: shimmer 1.5s infinite;
}

.related-projects .single-project,
.single-post{
    min-height: 450px;
}
.single-post .featured-image,
.single-post .featured-image img,
.related-projects .single-project .featured-image,
.related-projects .single-project .featured-image img{
    height: 100%;
}

.related-projects .single-project .title h3,
.single-post .title h3{
    font-size: 26px;
}

details.e-n-accordion-item[open] > summary {
    border-bottom: 0px;
}

details.e-n-accordion-item[open] > div{
    border-top: 0px;
}

.tesla-distribution-featured-posts .other-posts .single-post{
    min-height: 300px;
}

.tesla-distribution-featured-posts .featured-post,
.tesla-distribution-featured-posts .single-post,
.tesla-distribution-featured-posts .single-post img{
    height: 100%;
}

.solar-calculator-steps .solar-step{
    align-items: center;
    justify-content: space-between;
}

.solar-calculator-steps .solar-step .step-circle{
    align-items: center;
    position: relative;
    cursor: pointer;
}

.solar-calculator-steps .solar-step .step-circle .value{
    font-size: 18px;
    background: var(--e-global-color-primary);
    text-align: center;
    width: 50px;
    height: 50px;
    line-height: 50px;
    color: #fff;
    font-weight: 600;
    transition: 500ms;
}

.solar-calculator-steps .solar-step .step-circle.active .value{
    background: var(--e-global-color-secondary);
}

.solar-calculator-steps .solar-step .progress-bar-wrap{
    position: absolute;
    top: 25px;
    left: 0px;
    width: 100%;
    height: 2px;
    background: #e3e3e3;
    z-index: 0;
}

.solar-calculator-steps .solar-step .progress-bar{
    display: block;
    width: 10%;
    height: 100%;
    background-color: var(--e-global-color-secondary);

}

.solar-calculator-content{
    margin-top:50px;
}

.location-search-wrap .single-input{
    position: relative;
    flex:1;
}

.location-results .single-search-result .actions .td-button{
    padding: 5px 20px;
    color: #fff;
    background: var(--e-global-color-primary);
    display: flex;
    align-items: center;
    cursor: pointer;
    height: 100%;
    font-size: 15px;
    cursor: pointer;
}

.location-results{
    margin-top: 20px;

}

.location-results .single-search-result{
    padding: 15px 20px;
    background: #e8f4fb;
    cursor: pointer;
    transition: 250ms;
}

.location-results .single-search-result .result-details{
    flex:1;
}

.location-results .single-search-result:hover {
    background: #ffe97b;
}

.location-results .single-search-result p{
    margin: 0;
    font-size: 24px;
}

.location-results .single-search-result span{
    font-size: 14px;
}

.loading-animation svg{
    height: 100%;
    width: 100%;
}

.loading-animation{
    position: absolute;
    top: 0px;
    right: 10px;
    height: 100%;
    padding: 10px;
}

.hds-flight-icon--animation-loading{
    transform-origin: center;
    animation: rotate 500ms infinite;
}
.animate-wrap.active > .advanced-section-label .td-icon{
    transform: rotate(180deg);
}
.advanced-section-label,
.advanced-section-label label{
    width: max-content;
    cursor: pointer;
}
.advanced-section-label label .td-icon{
    width: 18px;
    height: 18px;
    display: inline-block;
    vertical-align: middle;
    margin-left: 10px;
    transform: rotate(0deg);
    transition: 500ms;
}
.animate-height .advanced-customer-need-options{
    overflow: hidden;
}

.td-icon svg{
    height: 100%;
    width: 100%;
}

.animate-height {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  transition: grid-template-rows 500ms;
}
.animate-content {
  min-height: 0;
  transition: visibility 500ms;
  visibility: hidden;
}
.animate-wrap.active > .animate-height {
  grid-template-rows: 1fr;
}
.animate-wrap.active > .animate-height .animate-content{
  visibility: visible;
}

.solar-calculator-content .advanced-customer-need-consumption {
    padding-top: 5px;
    margin-top: 25px;
    border-top: 1px solid #e1e1e1;
}

.solar-calculator-content .td-input{
    position: relative;
}

.solar-calculator-content .input-symbol{
    position: absolute;
    bottom: 13px;
    right: 35px;
    font-size: 18px;
}

#roof-topology-map{
    height: 650px;
}

.roof-topology-wrap{
    position: relative;
}
.toplogy-data-wrap .topology-header{
    margin: 0px;
    font-size: 24px;
    text-align: center;
    margin-bottom: 20px;
}
.toplogy-data-wrap{
    position: absolute;
    top: 70px;
    z-index: 9999;
    padding: 10px 15px;
    background: #ffffffeb;
    left: 15px;
    min-width: 350px;
}
.toplogy-data-wrap .topology-data{
    padding:10px 0px;
}
.toplogy-data-wrap .icon{
    width: 32px;
    height: 32px;
    display: inline-block;
    vertical-align: bottom;
    margin-right: 5px;
}
.toplogy-data-wrap .icon svg{
    height: 100%;
    width: 100%;
}
h3.topology-header{
    position: relative;
    margin-bottom: 15px;
}
h3.topology-header::after{
    content: '';
    position: absolute;
    bottom: -5px;
    width: 60%;
    height: 2px;
    background: var(--e-global-color-secondary);
    left: 20%;
}

.topology-data .text,
.topology-data .data{
    line-height: 32px;
    vertical-align: top;
}

.topology-month-selector-wrap{
    position: absolute;
    left: 50%;
    z-index: 9999;
    bottom: 50px;
    min-width: 400px;
    transform: translate(-50%);
}

.topology-month-selector{
    background: #ffffffeb;
    padding: 20px;
}

.topology-month-selector > .flex{
    align-items: center;
    justify-content: space-between;
}

.topology-month-selector .month-selector{
    flex: 1;
    max-width: 250px;
}

.exposure-bar-legend{
    background: linear-gradient(90deg,#0000e6,#ff0000);
    height: 4px;
}

.exposure-bar-legend-wrap{
    margin-top: 15px;
}

.exposure-bar-legend-wrap .legend{
    position: absolute;
    bottom: -30px;
    font-size: 12px;
    color: #fff;
    font-weight: 400;
}

.exposure-bar-legend-wrap .legend.low{
    left: 5px;
}

.exposure-bar-legend-wrap .legend.high{
    right: 5px;
}

.topology-month-selector .slider.month-selector{
    border-radius: 0px;
}

.topology-month-selector .ui-slider-handle {
    border: 0px;
    border-radius: 0px;
    background: var(--e-global-color-secondary);
}

/* The switch - the box around the slider */
.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

/* Hide default HTML checkbox */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

/* The slider */
.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider {
  background-color: #2196F3;
}

input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}


.calc-switch{
    width: 52px !important;
    height: 24px !important;
    background-color: #e8f4fb !important;
}

.calc-switch .slider:before{
    height: 16px;
    width: 16px;
    background-color: var(--e-global-color-secondary) !important;
}
.chart-wrap{
    position: relative;
}
.chart-wrap .icon svg{
    width: 100%;
    height: 100%;
}
.chart-wrap .icon{
    position: absolute;
    transform: translate(-50%);
    width: 25%;
    height: 25%;
    bottom: 35px;
    left: 50%;
}
.solar-data-box-wrap{
    position: relative;
    height: 100%;
    padding: 10px;
    background: #ffffff;
    border: 1px solid #ededed;
}
.solar-data-box{
    position: absolute;
    width: 50%;
    left: 50%;
    bottom: 0;
    transform: translate(10px, 10px);
    left: 15px;
    bottom: 35px;  
}
.customer-recommendations h3{
    text-align: center;
}
canvas.chart {
    width: 100% !important;
    height: 100% !important;
}
.solar-data-box-wrap .text{
    width: 100%;
    display: block;
    text-align: center;
    font-size: 24px;
}
.solar-data-box-wrap .title{
    width: 100%;
    display: block;
    text-align: center;
    font-size: 24px;
    font-weight: 600;
}
.grow-column-2{
    grid-column: span 2;
}
.month-selector::before{
    content: unset !important;
}
.advanced-section-label{
    padding: 5px 0px 10px 0px;
}
.animate-content .single-input{
    padding: 5px 0px;
}
.toplogy-data-wrap.skeleton-loader{
    width: 300px;
    height: 200px;
}
.topology-month-selector-wrap.skeleton-loader{
    width: 300px;
    height: 100px;
}

.installation-details > div.skeleton-loader{
    height: 500px;
    width: unset;
    flex: 1;
}

.installation-details > div.skeleton-loader > div{
    display: none;
}
.icon.warning{
    position: absolute;
    top: 45px;
    left: 15px;
    width: 64px;
    height: 64px;
}

.icon.warning svg{
    height: 100%;
    width: 100%;
    fill: none;
}

.tesla-tooltip{
    position: absolute;
    background: #333;
    color: #fff;
    padding: 8px 12px;
    font-size: 14px;
    border-radius: 4px;
    white-space: nowrap;
    z-index: 9999;
    display: none;
}

.solar-calculator-content .actions{
    margin-top: 50px;
}

.solar-calculator-content .actions .td-button{
    padding: 20px;
    margin: auto;
    background: var(--e-global-color-secondary);
    display: block;
    max-width: 400px;
    text-align: center;
    font-weight: 600;
    cursor: pointer;
}
.required{
    color: #ff0000;
}
.mt-10{
    margin-top:10px;
}

#solar-calculator-inquiry .form-actions .td-button{
    padding: 15px 30px;
    color: #fff;
    background: var(--e-global-color-primary);
    display: flex;
    align-items: center;
    height: 100%;
    font-size: 15px;
    cursor: pointer;
    display: block;
    width: max-content;
}
.form-notice{
    display: block;
    padding: 10px;
}
.form-notice.error{
    background: #f9d7d7;
}
.form-notice.success{
    background: #00d42440;
}

.leaflet-container svg{
    width: auto !important;
    fill: unset !important;
}
@media (max-width:768px){
    .toplogy-data-wrap.skeleton-loader{
      width: 100%;
      height: 200px;
    }
    .solar-calculator-content > .actions {
        position: fixed;
        bottom: 0px;
        left: 0px;
        z-index: 9999999;
        width: 100%;
    }
    .mobile-column{
        flex-direction: column;
    }
    .roof-topology-wrap > h3{
        display: none;
    }
    .location-results .single-search-result .actions .td-button{
        height: 50px;
    }
    .location-results .single-search-result{
        flex-direction: row;
        gap:15px;
    }

    #roof-topology-map{
        height: 450px;
    }
    .solar-calculator-content.topology-data{
        order:2;
    }
    .step-circle .description{
        margin-top: 5px;
        font-size: 14px;
    }
    .location-results .single-search-result .result-details p{
        font-size: 21px;
    }

    .location-results .single-search-result .result-details .actions .td-button{
        height: 50px;
    }
    .topology-month-selector-wrap,
    .toplogy-data-wrap{
        min-width: 300px;
    }
    .leaflet-control-zoom{
        display: none;
    }
    .advanced-section-label, .advanced-section-label label{
        width: 100% !important;
    }
    .advanced-section-label .calc-switch.switch{
        width: 52px !important;
    }
    .solar-calculator-content .installation-details{
        flex-direction: column;
    }
    .toplogy-data-wrap{
        position: relative !important;
        top: 0px !important;
        left: 0px !important;
        background: #e8f4fb !important;
    }
    .customer-recommendations h3{
        width: 100%;
        color: var(--e-global-color-secondary) !important;
        background: var(--e-global-color-primary);
        padding: 10px 0px;
    }
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg)
  }
}

/* Keyframes for the shimmer animation */
@keyframes shimmer {
  0% {
    transform: translateX(-50%);
  }
  100% {
    transform: translateX(135%);
  }
}