<!DOCTYPE html>
<html class="no-js" lang=en>
<head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="twitter:card" content="summary_large_image">
        <title>Michael Gardner | Malibu Real Estate Agent</title>
        <meta property="og:title" content="Michael Gardner | Malibu Real Estate Agent">
        <meta name="twitter:title" content="Michael Gardner | Malibu Real Estate Agent">
        <meta name="description" content="Michael Gardner is a 12-year veteran real estate agent. With his expertise, he makes home buying &amp; selling a great experience for his clients. Contact him now!">
        <meta property="og:description" content="Michael Gardner is a 12-year veteran real estate agent. With his expertise, he makes home buying &amp; selling a great experience for his clients. Contact him now!">
        <meta name="twitter:description" content="Michael Gardner is a 12-year veteran real estate agent. With his expertise, he makes home buying &amp; selling a great experience for his clients. Contact him now!">
        <meta property="og:image" content="https://media-production.lp-cdn.com/media/2c2b9d16-05e5-48a9-9ff2-850c7cf86cdc">
        <meta name="twitter:image" content="https://media-production.lp-cdn.com/media/2c2b9d16-05e5-48a9-9ff2-850c7cf86cdc">
        <meta property="og:url" content="https://themaliburealestateblog.com/">
        <link rel="canonical" href="https://themaliburealestateblog.com/">
    <script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Playfair%20Display:400,500,600,700,800,900,400i,500i,600i,700i,800i,900i"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Karla:200,300,400,500,600,700,800,200i,300i,400i,500i,600i,700i,800i">
    <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
    <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript>
    <link rel="icon" type="image/x-icon" href="/favicon.ico">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png">
    <style id="global-css">:root{--global-primary-font-family:'Playfair Display',serif;--global-primary-font-family-short:Playfair Display;--global-secondary-font-family:Karla,sans-serif;--global-secondary-font-family-short:Karla;--global-body-padding:0px;--global-background-color:#fff;--global-body-font-size:16px;--global-h1-font-size:70px;--global-h2-font-size:43px;--global-h3-font-size:30px;--global-h4-font-size:21px;--global-h5-font-size:17px;--global-h6-font-size:16px;--global-section-padding:96px;}@media (max-width: 768px){:root{--global-section-padding:64px;}}body{padding:0px;background-color:#fff;font-family:Karla,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:'Playfair Display',serif;}h1{font-size:70px;}h2{font-size:43px;}h3{font-size:30px;}h4{font-size:21px;}h5{font-size:17px;}h6{font-size:16px;}</style>
        <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/producer/index.css" />
    <style id="website-css">nav#global-navbar.scroll{background-color:#000!important;}nav#global-navbar.scroll li.navigation__item a.navigation__link{color:#fff;}nav#global-navbar.scroll button.hamburger-component.hamburger{color:#fff;}nav#global-navbar .header .logo img{max-width:200px;}.lp-btn,.redesign .lp-btn{padding:20px 46px;}#modal-global-contact-us .contact-form .section-message form .submitButton{padding:14px 20px;}div#modal-global-contact-us .contact-form .info-zone_contact_link{color:#fff;}@media only screen and (max-width: 820px){#modal-global-contact-us .close{margin-top:-20px;}}</style>
    <style id="wow-hide-elements">.wow{visibility:hidden!important}</style>
        <style id="page-css">
            #section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.4));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/s9yp0vnxhgrotyjgalyt');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .video-wrapper video,#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .video-wrapper div.poster{z-index:0!important;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35>.video-wrapper>.full-screen-video-component>.video-wrapper::before{content:'';position:absolute;width:100%;height:100%;top:0;left:0;background-color:#000;z-index:-1000;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35>.video-wrapper>.full-screen-video-component>.video-wrapper >video{-webkit-transition:opacity 2s cubic-bezier(0.835, 0, 0.19, 1);transition:opacity 2s cubic-bezier(0.835, 0, 0.19, 1);opacity:0;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35>.video-wrapper>.full-screen-video-component>.video-wrapper.playing>video{opacity:1;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection{padding:120px 0 0;min-height:100vh;margin:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}@media (max-width: 768px){#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection.slick-initialized{pointer-events:none;}}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .item{text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;min-height:calc(100vh - 240px);}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .btn-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:23px;margin-top:32px;}@media(max-width: 560px){#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .btn-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:10px;}}@media (max-width: 768px){#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .lp-btn{pointer-events:initial;}}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .slick-active .animation{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);opacity:1;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .animation{-webkit-transition:all .6s;transition:all .6s;-webkit-transform:translateX(-100px);-moz-transform:translateX(-100px);-ms-transform:translateX(-100px);transform:translateX(-100px);opacity:0;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .lp-title-group,#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .lp-text--pretitle{max-width:100%;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .slick-dots{margin:30px auto 85px;padding:0;position:relative;top:0;bottom:0;left:0;right:0;list-style-type:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:360px;max-width:100%;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .slick-dots li{margin:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;width:auto;height:auto;position:static;display:block;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .slick-dots li.slick-active button:after{opacity:1;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .slick-dots button{display:block;font-size:0;color:inherit;border-radius:0;border:none;width:100%;height:30px;cursor:pointer;position:relative;background-color:transparent;padding:0;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .slick-dots button:before{display:none;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection .slick-dots button:after{display:block;content:'';width:100%;position:absolute;left:0;top:50%;height:1px;background-color:currentColor;opacity:0.5;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection:not(.slick-initialized) .item{margin-bottom:145px;}#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35 .collection:not(.slick-initialized) .item:nth-child(n + 2){display:none;}@media (min-width: 960px) and (orientation: landscape){#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/s9yp0vnxhgrotyjgalyt');}}@media (min-width: 1280px) and (orientation: landscape){#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/s9yp0vnxhgrotyjgalyt');}}@media (min-width: 1920px) and (orientation: landscape){#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/s9yp0vnxhgrotyjgalyt');}}@media (min-width: 2560px) and (orientation: landscape){#section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/s9yp0vnxhgrotyjgalyt');}}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104{color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(241, 241, 241, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:95%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:rgba(241, 241, 241, 1);}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .contact-section{font-family:var(--global-primary-font-family);}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104{-webkit-transition:all 0.5s cubic-bezier(0.23, 1, 0.32, 1);transition:all 0.5s cubic-bezier(0.23, 1, 0.32, 1);margin-top:-59px;overflow:visible;z-index:2;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104#section-temp{margin-top:0;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104.sticky{position:-webkit-sticky;position:sticky;z-index:101;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104.opened{z-index:1100;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar{display:block;opacity:1;padding:1em 0;position:relative;z-index:3;height:59px;color:inherit;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar .search-bar-wrapper{text-align:left;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar .search-bar-wrapper .search-input-container{-webkit-flex-basis:75%;-ms-flex-preferred-size:75%;flex-basis:75%;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar .search-bar-wrapper .search-input-container .search-icon{margin-right:0.5em;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar .search-bar-wrapper .search-input-container .search-input{z-index:2;margin-right:2em;outline:none;border:none;padding-bottom:calc(0.2em + 1px);width:50%;background-color:transparent;color:inherit;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar .contact-section{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 1em;cursor:pointer;border-left:1px solid #282828;position:absolute;right:0;top:0;bottom:0;background:none;color:inherit;border:none;outline:none;cursor:pointer;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar .contact-section .link-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;opacity:0.75;padding:1em;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar .contact-section .link-content .link-label{padding:1px 6px;font-size:13px;margin-right:1em;font-weight:bold;letter-spacing:0.1em;text-transform:uppercase;}@media (max-width: 768px){#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar .link-label{display:none;}}@media Screen and (max-width: 767px){#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-bar .search-bar-wrapper .search-input-container .search-input{width:75%;}}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container{position:absolute;bottom:58px;z-index:101;width:100%;color:inherit;background:none;visibility:hidden;opacity:0;-webkit-transition:visibility 200ms,opacity 200ms;transition:visibility 200ms,opacity 200ms;}@media (max-width: 768px){#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container{width:100%;}}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container.show{visibility:visible;opacity:1;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container.at-bottom{top:56px;bottom:unset;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container.at-bottom .height-limited{max-height:calc(100vh - 150px);}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:80%;margin-left:auto;margin-right:auto;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .container h6{padding-bottom:10px;margin-bottom:0;font-size:12px;font-family:var(--global-secondary-font-family);}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .container a{-webkit-text-decoration:none;text-decoration:none;color:inherit;}@media (max-width: 768px){#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .height-limited{overflow-y:auto;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .address-results{display:none;padding:30px;width:50%;background:#000;-webkit-transition:opacity 200ms;transition:opacity 200ms;-webkit-flex:1 1 50%;-ms-flex:1 1 50%;flex:1 1 50%;}@media (max-width: 768px){#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .address-results{width:100%;-webkit-flex:initial;-ms-flex:initial;flex:initial;}}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .address-search{padding:30px;width:50%;background:#000;-webkit-transition:opacity 200ms;transition:opacity 200ms;-webkit-flex:1 1 50%;-ms-flex:1 1 50%;flex:1 1 50%;}@media (max-width: 768px){#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .address-search{width:100%;-webkit-flex:initial;-ms-flex:initial;flex:initial;}}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .neighborhood-search,#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .area-search{padding:30px;width:25%;background:#000;margin-left:2px;-webkit-transition:opacity 200ms;transition:opacity 200ms;-webkit-flex:1 1 25%;-ms-flex:1 1 25%;flex:1 1 25%;}@media (max-width: 768px){#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .neighborhood-search,#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .area-search{display:none;-webkit-flex:initial;-ms-flex:initial;flex:initial;}}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .item-container{float:left;width:50%;min-width:190px;padding-right:10px;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .item-container >.link-container{min-width:100px;display:inline-block;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .result-container{margin-bottom:20px;background:inherit;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .result-container h6{padding-bottom:20px;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .result-container .result{display:block;font-size:15px;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .place-link{cursor:pointer;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .link-container{display:block;margin-top:10px;cursor:pointer;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .link-container i{margin-right:1em;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .link-container span{display:inline-block;font-size:15px;}#section-7dadc30e-c952-4d4e-a20a-9418f8ef3104 .search-result-container .links{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b{color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:rgba(255, 255, 255, 1);}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .redesign.featured-agent-section{padding:96px 0;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .redesign.featured-agent-section p{white-space:normal;}@media(max-width: 768px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .redesign.featured-agent-section{padding:64px 0;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .redesign.featured-agent-section .container{max-width:1200px;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media(max-width: 768px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent{display:block;max-width:325px;margin:0 auto;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__photo{margin-right:36px;}@media(max-width: 768px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__photo{margin:0;width:100%;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__image img{width:auto;height:auto;vertical-align:top;}@media(min-width: 1024px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__image img{max-width:525px;max-height:525px;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info{width:100%;padding-top:70px;}@media(max-width: 1024px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info{padding-top:20px;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .h2{position:relative;margin:0;padding-bottom:35px;}@media(max-width: 768px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .h2{padding-bottom:30px;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .h2:after{content:'';position:absolute;bottom:0;left:-114px;right:230px;height:1px;background-color:#c0c0c0;}@media(max-width: 768px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .h2:after{width:1000px;right:100%;left:auto;margin-right:-120px;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .bio-container{margin:0 0 32px;white-space:pre-line;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .links-row{list-style:none;margin:0;padding:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .links-row >li:last-child{margin-right:0;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .links-row >li{margin-right:35px;margin-bottom:30px;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .link{cursor:pointer;position:relative;display:inline-block;vertical-align:top;font-size:14px;line-height:1.63;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .link.link--share-visible .socials{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media(max-width: 768px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .featured-agent__info .link.link--share-visible{margin-bottom:110px;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .link{background:transparent;border:none;padding:0;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .share-links{display:none;width:276px;height:55px;position:absolute;top:100%;left:0;margin-top:5px;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .share-links li{width:25%;height:100%;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .share-links li .socials__link{width:100%;height:100%;}@media(max-width: 768px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .share-links{width:154px;height:113px;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .featured-agent .share-links li{width:50%;height:50%;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .socials-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-8px;margin-right:-8px;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .socials-container.desktop{padding-top:16px;}@media (max-width: 768px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .socials-container.desktop{display:none;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .socials-container.mobile{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}@media (min-width: 769px){#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .socials-container.mobile{display:none;}}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .socials-container.socials.socials>li{margin:16px 8px 0 8px;padding:0;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .link:before,#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .link:after{background-color:currentColor;}#section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b .link:before{opacity:0.5;}#section-42184e31-83b8-4e3a-809d-b27f9407c48f{color:rgba(255, 255, 255, 1);--fontColor:rgba(255, 255, 255, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(0, 0, 0, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:0%;--bgColor_A:1;--bgColor_darkenDir:1;background-color:rgba(0, 0, 0, 1);}#section-42184e31-83b8-4e3a-809d-b27f9407c48f{background-attachment:fixed;-webkit-background-position:center;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;}@media only screen and (max-width: 768px){#section-42184e31-83b8-4e3a-809d-b27f9407c48f{background-attachment:unset;}}#section-42184e31-83b8-4e3a-809d-b27f9407c48f .carousel-entity{height:105px;width:250px;}#section-42184e31-83b8-4e3a-809d-b27f9407c48f .section-title{text-align:center;padding:0;margin:0 0 40px 0;}@media(max-width: 768px){#section-42184e31-83b8-4e3a-809d-b27f9407c48f .section-title{margin:0 0 20px 0;}}#section-42184e31-83b8-4e3a-809d-b27f9407c48f .press-carousel-component{padding:80px 0;}@media(max-width: 786px){#section-42184e31-83b8-4e3a-809d-b27f9407c48f .press-carousel-component{padding:50px 0;}}#section-42184e31-83b8-4e3a-809d-b27f9407c48f .press-item-inner{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;height:100%;border-left:1.5px solid hsla(0,7%,78%,.35);}#section-42184e31-83b8-4e3a-809d-b27f9407c48f .press-item-inner img{width:50%;height:100%;object-fit:contain;}#section-42184e31-83b8-4e3a-809d-b27f9407c48f .carousel-slide:not(.slick-slide):first-child .press-item-inner{border-left:none;}#section-42184e31-83b8-4e3a-809d-b27f9407c48f .slick-track{will-change:transform;}@media (-webkit-min-device-pixel-ratio: 1.5){#section-42184e31-83b8-4e3a-809d-b27f9407c48f .slick-track{image-rendering:-webkit-optimize-contrast;}}#section-42184e31-83b8-4e3a-809d-b27f9407c48f .carousel-container:not(.slick-initialized){display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow:hidden;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6{color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:rgba(255, 255, 255, 1);}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section span.link--white:not(.slick-disabled){color:#000;border-color:#000;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section span.link--white:not(.slick-disabled):after{background-color:#000;color:#000;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section ul.slick-links-nav span.spacer{background-color:#000;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section ul.slick-links-nav li span.link:before{background-color:#ccc;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section span.link.slick-disabled{color:#a6a6a6;cursor:default;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section span.link.slick-disabled:hover{color:#a6a6a6;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section span.link:after{background-color:#a6a6a6;color:#a6a6a6;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section ul.featured-properties div.slick-track li.featured-properties__item-cover span.featured-properties__label{background:#000;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section ul.featured-properties .featured-properties__item{background-color:#000;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section ul.featured-properties .featured-properties__text{background-color:#000;padding:35px;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section ul.featured-properties .featured-properties__text p{color:#fff;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section ul.featured-properties .featured-properties__text h4{color:#fff;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.redesign.featured-properties-section ul.featured-properties .featured-properties__text h5{color:#fff;}@media only screen and (max-width:1024px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 div.featured-properties-button-holder{margin-top:20px;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section{padding:140px 0;}@media (max-width: 991px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section{padding:100px 0;}}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section{padding:40px 0;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-list{width:100%;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-track{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-slide{height:inherit!important;display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-arrow:not(.slick-disabled){cursor:pointer;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav{display:inline-block;list-style:none;vertical-align:top;margin:0 0 0;padding:28px 0 0;white-space:nowrap;}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav{padding:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav li{display:inline-block;vertical-align:top;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav li+li{margin-left:40px;position:relative;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav .slick-hidden+.spacer{display:none;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav .spacer{position:absolute;left:-23px;width:1px;height:10px;margin-top:-5px;top:50%;background-color:#fff;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav .link.slick-disabled{cursor:default;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav .link.slick-disabled:hover{color:inherit;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav .link.slick-disabled:before,#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .slick-links-nav .link.slick-disabled:after{opacity:0;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .btn{min-width:250px;}@media (min-width: 561px) and (max-width: 1024px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-section .btn{width:275px;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:60px;text-align:center;}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-header{display:block;margin-bottom:40px;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-header h2{color:var(--fontColor);margin:0;}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-header h2{margin-bottom:25px;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-button-holder{text-align:center;margin-top:80px;}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-button-holder{margin-top:40px;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav .slick-arrow{position:relative;left:auto;right:auto;bottom:auto;top:auto;text-align:left;font-size:14px;line-height:24px;width:auto;height:24px;text-transform:uppercase;margin-top:15px;color:#C6C6C6;opacity:1!important;-webkit-transform:translate(0, 0);-moz-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0);font-family:var(--global-secondary-font-family);}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav .slick-arrow:hover{color:#fff;opacity:1;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav .slick-arrow:before{content:'';}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav .slick-arrow{margin-top:0;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav .slick-arrow:after{content:'';position:absolute;bottom:3px;height:1px;background-color:#fff;left:0;right:0;-webkit-transition:opacity .3s;transition:opacity .3s;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav .slick-arrow.slick-prev:before{content:none;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav .slick-arrow.slick-next{margin-left:41px;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav .slick-arrow.slick-next:before{left:-21px;width:1px;height:12px;background-color:#fff;pointer-events:none;top:8px;opacity:1;position:absolute;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties-nav .slick-arrow.slick-disabled:after{opacity:0;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties{padding:0;margin:0 -40px;color:#000;}@media (max-width: 991px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties{margin-left:-12px;margin-right:-12px;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item-cover{padding:0 40px;}@media (max-width: 991px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item-cover{padding:0 12px;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item-cover:focus{outline:none;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item{background-color:#fff;text-align:center;font-weight:bold;position:relative;height:100%;color:var(--fontColor);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media (min-width: 1025px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item{min-height:500px;}}@media (hover: none) and (pointer: coarse){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item{min-height:1px;background-color:transparent;}}@media (hover: hover) and (pointer: fine){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item:hover .featured-properties__hover{opacity:1;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item h4{text-transform:none;color:black;margin:0 0 7px;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item p{color:black;margin:0 0 7px;}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item p{margin-bottom:3px;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item h5{color:black;margin:0;font-family:var(--global-secondary-font-family);text-transform:none;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__item >a{width:100%;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__img{vertical-align:top;width:100%;height:315px;background-color:gray;position:relative;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__img img{width:100%;height:100%;object-fit:cover;}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__img{height:200px;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__text{color:var(--fontColor);background-color:#fff;padding:25px 15px 15px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@media (hover: none) and (pointer: coarse){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__text{padding:13px;min-height:175px;}}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__text h4{max-height:56px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__text p{white-space:normal;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__label{position:absolute;top:0;right:0;background:#000;color:#fff;padding:4px 35px;z-index:2;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__hover{color:var(--bgColor);padding:15px;position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255, 255, 255, 0.75);opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear;z-index:3;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}@media(max-width: 991px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__hover{display:none;}}@media(max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__hover h4{display:none;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__hover >a{position:absolute;top:0;left:0;width:100%;height:100%;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__buttons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:10px 24px;position:relative;z-index:2;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__share{display:inline-block;position:relative;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__share.featured-properties__share--opened .socials{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (hover: none) and (pointer: coarse){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__share{display:block;width:100%;margin-top:4px;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__share .btn.btn--primary-light{display:block;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__share .socials{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;position:absolute;top:100%;left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);display:none;}@media (hover: none) and (pointer: coarse){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__share .socials{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:static;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);top:auto;left:auto;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__share .socials .socials__link{width:69px;}@media (hover: none) and (pointer: coarse){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties .featured-properties__share .socials .socials__link:hover{border-bottom:transparent!important;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties:not(.slick-initialized){display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;overflow:hidden;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties:not(.slick-initialized) >.featured-properties__item-cover{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:100%;}@media (min-width: 769px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties:not(.slick-initialized) >.featured-properties__item-cover{width:50%;}}@media (min-width: 1100px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .three-slides .featured-properties:not(.slick-initialized)>.featured-properties__item-cover{width:33%;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties__item-info{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;height:100%;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties__item-info:has(.mls-compliance-container) .featured-properties__text{padding-bottom:0;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties__item-mls-attribution{text-shadow:none;margin:0!important;color:#000!important;width:calc(100% - 200px);}@media (max-width: 1024px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties__item-mls-attribution{width:100%;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties__item .featured-properties__item-mls-attribution+.featured-properties__item-mls-logo{position:absolute!important;right:15px!important;bottom:15px!important;display:inline-block;}@media (max-width: 1024px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties__item .featured-properties__item-mls-attribution+.featured-properties__item-mls-logo{position:static!important;}}@media (max-width: 1024px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties__item .featured-properties__item-mls-logo{display:inline-block!important;}}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .mls-compliance-container{margin-top:auto;padding:15px!important;}#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties__open-house{position:absolute;bottom:0;left:0;width:100%;padding:8px 0;color:black;background:rgba(255, 255, 255, 0.7);}@media (max-width: 768px){#section-77a55aad-9562-40b0-b006-a0e7da4a0ff6 .featured-properties__open-house{font-size:12px;}}#section-f3880da9-ac15-47ea-aec3-62adde528f11{color:rgba(255, 255, 255, 1);--fontColor:rgba(255, 255, 255, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#ffffff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.4));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/xeazik65nnkehdu16chh');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-f3880da9-ac15-47ea-aec3-62adde528f11{background-attachment:fixed;-webkit-background-position:center;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;}@media only screen and (max-width: 768px){#section-f3880da9-ac15-47ea-aec3-62adde528f11{background-attachment:unset;}}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .redesign .link:before{background-color:#ccc;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .redesign .link:after{background-color:#fff;}#section-f3880da9-ac15-47ea-aec3-62adde528f11.parallax-enabled{-webkit-clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);}#section-f3880da9-ac15-47ea-aec3-62adde528f11.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:-9999;}#section-f3880da9-ac15-47ea-aec3-62adde528f11.parallax-enabled .featured-testimonials:before{display:block;content:'';left:0;top:0;width:100%;background:var(--sectionBackground) center no-repeat;-webkit-background-size:cover;background-size:cover;position:fixed;z-index:-1;height:100%;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials{padding:140px 0;position:relative;max-height:100vh;}@media(max-width: 768px){#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials{padding:40px 0;max-height:unset;}}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .container{max-width:1300px;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .container:after{content:'';clear:both;display:block;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .slick-arrow:not(.slick-disabled){cursor:pointer;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left{text-align:right;padding-right:45px;max-width:500px;width:100%;float:left;}@media(max-width: 991px){#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left{max-width:350px;width:inherit;padding-right:30px;}}@media(max-width: 768px){#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left{text-align:center;padding-right:0;margin-bottom:30px;float:none;max-width:100%;}}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left h2{margin:0 0 15px;width:100%;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left .slick-links-nav{display:inline-block;list-style:none;vertical-align:top;margin:0;padding:0;white-space:nowrap;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left .slick-links-nav li{display:inline-block;vertical-align:top;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left .slick-links-nav .separator{margin-left:40px;position:relative;pointer-events:none;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left .slick-links-nav .separator:before{content:'';position:absolute;left:-23px;width:1px;height:10px;margin-top:-5px;top:50%;background-color:currentColor;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left .slick-links-nav .link.slick-disabled:hover{color:inherit;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left .slick-links-nav .link.slick-disabled:before,#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__left .slick-links-nav .link.slick-disabled:after{opacity:0;color:inherit;background-color:inherit;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__right{padding-left:45px;max-width:700px;overflow:hidden;}@media(max-width: 991px){#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__right{padding-left:30px;}}@media(max-width: 768px){#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials .featured-testimonials__right{overflow:visible;padding-left:0;}}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials__slider{border-left:solid 1px #d5d5d5;margin-left:-45px;padding-left:45px;margin-bottom:40px;}@media(max-width: 991px){#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials__slider{margin-left:-30px;padding-left:30px;}}@media(max-width: 768px){#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials__slider{margin-left:0;padding:0;margin-bottom:30px;border:none;}}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials__slider blockquote{margin:0 0 25px;white-space:pre-line;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials__slider cite{font-weight:bold;font-size:14px;line-height:18px;text-transform:uppercase;font-style:normal;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials__slider .slick-slide{vertical-align:top;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials__slider:not(.slick-initialized){display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-f3880da9-ac15-47ea-aec3-62adde528f11 .featured-testimonials__slider:not(.slick-initialized) li:not(:first-child){display:none;}@media (min-width: 960px) and (orientation: landscape){#section-f3880da9-ac15-47ea-aec3-62adde528f11{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/xeazik65nnkehdu16chh');}}@media (min-width: 1280px) and (orientation: landscape){#section-f3880da9-ac15-47ea-aec3-62adde528f11{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/xeazik65nnkehdu16chh');}}@media (min-width: 1920px) and (orientation: landscape){#section-f3880da9-ac15-47ea-aec3-62adde528f11{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/xeazik65nnkehdu16chh');}}@media (min-width: 2560px) and (orientation: landscape){#section-f3880da9-ac15-47ea-aec3-62adde528f11{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/xeazik65nnkehdu16chh');}}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-bottom:calc(0 / 4 * var(--global-section-padding));background-color:#fff;}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid{text-align:center;}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .lp-text--pretitle,#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .lp-text--subtitle{margin-left:auto;margin-right:auto;}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items.items-1 .item{margin-left:auto;margin-right:auto;}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items.three-columns .item{width:calc(100% / 3);}@media (max-width: 768px){#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items.three-columns .item{width:100%;}}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item{width:50%;overflow:hidden;}@media (max-width: 768px){#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item{width:100%;}}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item h3{margin-bottom:1.666rem;}@media (max-width: 768px){#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item h3{margin-bottom:0;}}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item .item-wrapper{padding-bottom:70%;position:relative;display:block;}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item .item-wrapper .image-holder{-webkit-transition:all .4s ease-in-out;transition:all .4s ease-in-out;position:absolute;left:0;right:0;top:0;bottom:0;background:center no-repeat;-webkit-background-size:cover;background-size:cover;background-color:#eeeeee;}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item .item-wrapper .image-holder img{position:absolute;width:100%;height:100%;top:0;left:0;object-fit:cover;}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item .item-wrapper .overlay{position:absolute;left:0;right:0;top:0;bottom:0;background-color:rgba(0, 0, 0, 0.3);}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item .item-wrapper .content-container{color:white;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);max-width:600px;width:70%;}@media (max-width: 1024px){#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item .item-wrapper .content-container{width:calc(100% - 40px);}}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item .item-wrapper .content-container .button-wrapper{-webkit-transition:all linear 0.4s;transition:all linear 0.4s;}@media (min-width: 1025px){#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item .item-wrapper .content-container .button-wrapper{max-height:0;opacity:0;}}@media (max-width: 1024px){#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item .item-wrapper .content-container .button-wrapper{display:none;}}@media (min-width: 1025px){#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item:hover .item-wrapper .image-holder{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}}@media (min-width: 1025px){#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .featured-neighborhoods-grid .items .item:hover .item-wrapper .content-container .button-wrapper{max-height:90px;opacity:1;}}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .neighborhood-name{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .button-container{padding-top:60px;}@media(max-width: 768px){#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911 .button-container{padding-top:40px;}}#section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911>div:last-child{padding-bottom:calc(0 / 4 * var(--global-section-padding))!important;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d{color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:rgba(255, 255, 255, 1);}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .redesign .btn{min-width:250px;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d div.blog-posts__section div.container{max-width:1200px;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block>*{font-family:var(--global-secondary-font-family);font-weight:700;font-size:17px;line-height:1.4;text-transform:uppercase;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts__section{padding:140px 0;text-align:center;}@media(max-width: 768px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts__section{padding:40px 0;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts__section h2{margin:0 0 35px;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts__section .container{max-width:980px;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts{list-style:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:0;margin:0 -6px 60px;color:#ffffff;}@media(max-width: 768px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts{margin:0 -25px;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block{-webkit-text-align-last:auto;text-align-last:auto;min-width:calc(50% - 12px);max-width:calc(50% - 12px);margin:6px;min-height:270px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;position:relative;padding:17px 25px;text-align:left;}@media(max-width: 768px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block{min-width:calc(100% - 50px);max-width:calc(100% - 50px);margin-bottom:30px;margin-left:25px;margin-right:25px;min-height:235px;padding-left:19px;padding-right:18px;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block.blog-posts__block--full-width{min-width:calc(100% - 12px);max-width:calc(100% - 12px);text-align:center;min-height:310px;padding-left:100px;padding-right:100px;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block.blog-posts__block--full-width .blog-posts__label-cover{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}@media(max-width: 768px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block.blog-posts__block--full-width{min-width:calc(100% - 50px);max-width:calc(100% - 50px);margin-bottom:30px;margin-left:25px;margin-right:25px;min-height:235px;padding-left:19px;padding-right:18px;text-align:left;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block:before{content:'';position:absolute;bottom:0;top:0;left:0;right:0;background-color:#000;opacity:.4;z-index:1;-webkit-transition:opacity .3s;transition:opacity .3s;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block >*{position:relative;z-index:2;}@media(min-width: 1025px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block:hover:before{opacity:.7;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block:hover p{opacity:1;margin-bottom:5px;max-height:1000px;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__block:hover .blog-posts__label-cover{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__image{position:absolute;top:0;left:0;right:0;bottom:0;object-fit:cover;height:100%;width:100%;z-index:0;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .label{max-width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__label-cover{margin-bottom:10px;display:none;}@media(max-width: 1024px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts .blog-posts__label-cover{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts p{white-space:normal!important;margin:0;max-height:1px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-transition:all .5s;transition:all .5s;overflow:hidden;opacity:0;}@media(min-width: 1025px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;}}@media(max-width: 1024px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts p{margin-bottom:10px;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts h4{margin:0 0 10px;}@media(min-width: 1025px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts h4{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts h5{margin:0 0 5px;}@media(min-width: 1025px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts h5{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts strong{font-size:17px;line-height:1.71;text-transform:uppercase;}@media(max-width: 1024px){#section-d34dd8f7-cbdd-4352-84c9-f155a809528d .blog-posts strong{font-size:14px;}}#section-d34dd8f7-cbdd-4352-84c9-f155a809528d>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-afd5b524-043d-40cc-9cd3-279654dad980{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.4));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/bw6xrj7q116hs3ajiykh');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-afd5b524-043d-40cc-9cd3-279654dad980.parallax-enabled{-webkit-clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);}#section-afd5b524-043d-40cc-9cd3-279654dad980.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:-9999;}#section-afd5b524-043d-40cc-9cd3-279654dad980.parallax-enabled .work-with-us:before{display:block;content:'';left:0;top:0;width:100%;background:var(--sectionBackground) center no-repeat;-webkit-background-size:cover;background-size:cover;position:fixed;z-index:-1;height:100%;}#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us{position:relative;color:var(--fontColor, #ffffff);}#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us .container{text-align:center;max-width:750px;min-height:689px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:50px;padding-bottom:50px;position:relative;z-index:1;}@media (max-width: 768px){#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us .container{min-height:auto;padding-top:100px;padding-bottom:100px;}}#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us h2{position:relative;padding-bottom:28px;margin:0 0 30px;}@media(max-width: 768px){#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us h2{padding-bottom:40px;}}#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us h2:after{content:'';position:absolute;bottom:0;left:50%;margin-left:-55px;width:110px;height:1px;background-color:var(--fontColor, #ffffff);}#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us p{margin:0 0 30px;}@media(max-width: 768px){#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us p{margin-bottom:40px;}}#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us .btn-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:23px;margin-top:32px;}@media(max-width: 560px){#section-afd5b524-043d-40cc-9cd3-279654dad980 .redesign.work-with-us .btn-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:10px;}}@media (min-width: 960px) and (orientation: landscape){#section-afd5b524-043d-40cc-9cd3-279654dad980{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/bw6xrj7q116hs3ajiykh');}}@media (min-width: 1280px) and (orientation: landscape){#section-afd5b524-043d-40cc-9cd3-279654dad980{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/bw6xrj7q116hs3ajiykh');}}@media (min-width: 1920px) and (orientation: landscape){#section-afd5b524-043d-40cc-9cd3-279654dad980{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/bw6xrj7q116hs3ajiykh');}}@media (min-width: 2560px) and (orientation: landscape){#section-afd5b524-043d-40cc-9cd3-279654dad980{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/bw6xrj7q116hs3ajiykh');}}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34{color:#000000;--fontColor:#000000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#fff;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed{padding:80px 0;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .title{margin:0 20px 0 0;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .instagram-link{display:block;margin:0 20px 0 0;color:var(--global-primary-font-color);}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .instagram-link .instagram-name{display:inline;margin:0;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .title+.instagram-link{margin-top:5px;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .top-wrapper{margin-bottom:20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .top-right{margin-left:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .follow-button{margin:20px 0 0 0;display:block;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .nav-button{margin-top:20px;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:42px;color:#1a1a1a;border:1px solid currentColor;cursor:pointer;transition-property:color,background-color,border-color;transition-duration:.3s;transition-timing-function:ease;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .nav-button:not(.slick-disabled):hover{background-color:#1a1a1a;border-color:#1a1a1a;color:#fff;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .top-nav-prev{margin-left:30px;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .top-nav-next{margin-left:10px;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .hidden-control{display:none;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-single,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi{position:relative;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:calc(100% / 3);padding:10px;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-single:first-child,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi:first-child{margin-left:auto;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-single:last-child,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi:last-child{margin-right:auto;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-single.type2,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi.type2{width:calc(100% / 5 * 2);}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-single.type3,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi.type3{width:calc(100% / 2);}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-single.type4,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi.type4{width:calc(100% / 2);}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-single.type5,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi.type5{width:100%;}@media (max-width: 440px){#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed-container{padding:0;width:100%;}}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed-feed{width:calc(100% + 20px);position:relative;left:-10px;overflow:hidden;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed-slider{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed-item__img{position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;background:center/cover no-repeat;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed-item__info{position:absolute;top:0;left:0;bottom:0;right:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10%;overflow:hidden;color:#fff;text-align:center;background-color:rgba(0, 0, 0, 0.8);opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed-item:hover .ig-feed-item__info{opacity:1;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed-item__caption{text-overflow:ellipsis;-webkit-line-clamp:4;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .video-icon{position:absolute;width:50px;height:50px;background-color:#fff;left:50%;top:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border-radius:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;opacity:1;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .video-icon::before{content:'';display:block;width:0px;height:0px;border-style:solid;position:relative;left:1px;border-width:7.5px 0px 7.5px 11px;border-color:transparent transparent transparent #292826;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed-item:hover .video-icon{opacity:0;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-single .ig-feed-item__info{padding:15%;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-single .ig-feed-item__caption{-webkit-line-clamp:7;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed-item{background-color:var(--tileColor, #000);display:block;width:100%;padding-bottom:125%;overflow:hidden;position:relative;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi::before{content:'';display:block;width:100%;padding-bottom:125%;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi-content{padding:10px;position:absolute;width:100%;height:100%;left:0;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;overflow:hidden;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi-content .ig-feed-item{width:calc(50% - 10px);padding-bottom:calc(62.5% - 12.5px);}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .slide-multi-content .ig-feed-item:nth-child(n + 3){-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .bottom-controls{width:100%;display:none;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .bottom-nav-button{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:20px 10px 0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:48px;height:48px;color:#1a1a1a;border:1px solid currentColor;cursor:pointer;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .bottom-nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}@media (max-width: 767px){#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .top-right,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .top-left{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .title,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .instagram-link{margin-right:0;text-align:center;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .top-nav-prev,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .top-nav-next{display:none;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .bottom-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .ig-feed{display:none;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34 .has-data .ig-feed{display:block;}#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34.has-data .ig-feed,#section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34#section-temp .ig-feed{display:block;}#modal-global-contact-us .close{z-index:11;}#modal-global-contact-us .close:focus{outline:0;}#modal-global-contact-us .contact-form{padding:70px 0;width:100%;min-height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;color:var(--colorTxt, #ffffff);-webkit-background-size:cover;background-size:cover;}#modal-global-contact-us .contact-form:after{content:'';position:absolute;display:block;background-color:rgba(2, 5, 7, 0.85);height:100%;width:100%;z-index:0;}#modal-global-contact-us .contact-form.loading textarea,#modal-global-contact-us .contact-form.loading input,#modal-global-contact-us .contact-form.loading label,#modal-global-contact-us .contact-form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .submit-icon{display:none;}#modal-global-contact-us .contact-form .contact-form-close{width:40px;height:50px;display:block;padding:0;border:none;background-color:transparent;cursor:pointer;position:absolute;right:50px;top:50px;z-index:110;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close{right:20px;top:20px;width:30px;height:40px;}}#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{content:'';display:block;width:40px;height:1px;background-color:#fff;position:absolute;left:50%;top:50%;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{width:30px;}}#modal-global-contact-us .contact-form .contact-form-close:before{-webkit-transform:translate(-50%, -50%) rotate(45deg);-moz-transform:translate(-50%, -50%) rotate(45deg);-ms-transform:translate(-50%, -50%) rotate(45deg);transform:translate(-50%, -50%) rotate(45deg);}#modal-global-contact-us .contact-form .contact-form-close:after{-webkit-transform:translate(-50%, -50%) rotate(-45deg);-moz-transform:translate(-50%, -50%) rotate(-45deg);-ms-transform:translate(-50%, -50%) rotate(-45deg);transform:translate(-50%, -50%) rotate(-45deg);}#modal-global-contact-us .contact-form .container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:1440px;width:100%;padding:0 160px;margin:0 auto;z-index:10;}@media (max-width: 1320px){#modal-global-contact-us .contact-form .container{padding:0 80px;}}@media (max-width: 1200px){#modal-global-contact-us .contact-form .container{padding:0 30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .container{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}@media (max-width: 560px){#modal-global-contact-us .contact-form .container{padding:0 20px;}}#modal-global-contact-us .contact-form h2{margin:0 0 18px 0;padding:0;}@media (max-width: 560px){#modal-global-contact-us .contact-form h2{margin:0 0 24px 0;}}#modal-global-contact-us .contact-form .section-details{width:50%;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-details{padding-right:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-details{width:100%;padding-right:0;max-width:700px;margin-bottom:38px;}}#modal-global-contact-us .contact-form .section-message{width:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;position:relative;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-message{padding-left:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message{width:100%;padding-left:0;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}}#modal-global-contact-us .contact-form .section-message:after{content:'';position:absolute;display:block;width:1px;background:#999999;height:calc(100% + 50px);left:0;top:-20px;}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message:after{display:none;}}#modal-global-contact-us .contact-form .section-message form{max-width:435px;width:100%;}#modal-global-contact-us .contact-form .section-message form .submitButton{width:auto;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message form .submitButton{width:100%;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message form{max-width:700px;}}#modal-global-contact-us .contact-form .section-message form.loading textarea,#modal-global-contact-us .contact-form .section-message form.loading input,#modal-global-contact-us .contact-form .section-message form.loading label,#modal-global-contact-us .contact-form .section-message form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form .section-message form.loading .label-loading{display:inline;}#modal-global-contact-us .contact-form .section-message form.loading .label-success,#modal-global-contact-us .contact-form .section-message form.loading .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .section-message form.success .label-loading,#modal-global-contact-us .contact-form .section-message form.success .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.success .label-success{display:inline;}#modal-global-contact-us .contact-form .section-message .label-loading,#modal-global-contact-us .contact-form .section-message .label-success{display:none;}#modal-global-contact-us .contact-form .section-message .submit-icon{display:none;}#modal-global-contact-us .contact-form .section-message h2{margin-bottom:28px;}#modal-global-contact-us .contact-form .section-message .form-group_modal{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:39px;}#modal-global-contact-us .contact-form .section-message .form-group_modal input{border:none;border-bottom:1px solid #c0c0c0;display:block;width:100%;background:transparent;color:#ffffff;height:22px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group_modal input{height:25px;}}#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:23px;}}#modal-global-contact-us .contact-form .section-message label{display:block;width:100%;line-height:1.63;letter-spacing:1px;color:#c0c0c0;font-weight:bold;text-transform:uppercase;}#modal-global-contact-us .contact-form .section-message textarea{resize:none;height:105px;width:100%;background:transparent;border:solid 1px #ffffff;margin:23px 0 0 0;color:#ffffff;padding:10px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message textarea{margin:10px 0 0 0;height:89px;}}#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 16px 0;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 13px 0;}}#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user{margin-bottom:58px;}}#modal-global-contact-us .contact-form .info-zone_contact{margin-bottom:23px;}#modal-global-contact-us .contact-form .info-zone_contact:nth-last-child(2){margin-bottom:30px;}#modal-global-contact-us .contact-form .info-zone_contact_cell{position:relative;padding-left:45px;margin-bottom:22px;font-weight:bold;font-size:14px;max-width:90%;letter-spacing:1.5px;text-transform:uppercase;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell{padding-left:0;}}#modal-global-contact-us .contact-form .info-zone_contact_cell:last-of-type{margin-bottom:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:absolute;left:0;top:0;display:block;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:relative;margin-bottom:7px;}}#modal-global-contact-us .contact-form .info-zone_contact_cell i svg path{fill:var(--colorTxt);}#modal-global-contact-us .contact-form .info-zone_contact_cell div{padding:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell .contact_title{line-height:1;margin-bottom:5px;}#modal-global-contact-us .contact-form .info-zone_contact_link{color:var(--colorTxt);}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:58px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form .hours_box{margin-bottom:52px;}}#modal-global-contact-us .contact-form .socials_zone{padding-left:45px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone{padding-left:0;}}#modal-global-contact-us .contact-form .socials_zone li{margin-bottom:10px;}#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:34px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:12px;}}#modal-global-contact-us .contact-form .success-message.success{margin-top:15px;color:var(--colorTxt);position:absolute;}#modal-global-contact-us .contact-form .success-message.hide{opacity:0;}#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:73px;}@media (max-width: 768px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:51px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:40px;}}#modal-global-contact-us .contact-form.one_contact .hours_box{margin-bottom:38px;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell{padding-left:0;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell i{display:none;}#modal-global-contact-us .contact-form.no_icon .socials_zone{padding-left:0;}#modal-global-contact-us .contact-form .pre-line{white-space:pre-line;}#modal-global-contact-us .lp-input-group{margin-bottom:40px;}#modal-global-contact-us .lp-input-group.m16{margin-bottom:16px;}#modal-global-contact-us .lp-disclaimer{margin-top:0;}#modal-global-contact-us .lp-input{border-color:#ffffff;}#modal-global-contact-us .lp-input:focus,#modal-global-contact-us .lp-input:active{border-color:#5e5e5e;}nav{color:#fff;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;z-index:102;}nav.scroll .logo .logo__img.light{display:block;}nav.scroll .logo .logo__img.dark{display:none;}nav .header{height:100px;-webkit-transform:translateY(24px);-moz-transform:translateY(24px);-ms-transform:translateY(24px);transform:translateY(24px);}@media (max-width: 768px){nav .header{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}}nav .header .container{max-width:1440px;padding:0 15px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;}@media (max-width: 1024px){nav .header .container{padding:0 15px;}}nav .header .navbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;min-height:70px;padding:8px 0 7px;width:100%;}nav .header .logo{z-index:911;position:relative;margin-right:10px;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}nav .header .logo a{overflow:hidden;display:inline-block;}nav .header .logo img{max-width:100%;max-height:52px;vertical-align:top;object-fit:contain;}@media (max-width: 1024px){nav .header .logo img{max-height:50px;}}nav .header .logo img.dark{display:none;}@media(max-width: 1024px){nav .header .logo img.dark{display:none!important;}}nav .header .logo img.light{display:block;}@media(max-width: 1024px){nav .header .logo img.light{display:inline-block!important;}}nav .header .logo__link{-webkit-animation-duration:1s;animation-duration:1s;overflow:hidden;}nav .header .logo__img.light{display:block;}nav .header .logo__img.dark{display:none;}nav .header .navigation{margin-left:auto;color:inherit;}@media (max-width: 1024px){nav .header .navigation{display:none;}}nav .header .navigation ul{position:relative;list-style-type:none;padding-left:0;margin-bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}nav .header .navigation ul li a span,nav .header .navigation ul li button span{position:relative;white-space:nowrap;}nav .header .navigation ul li a span:after,nav .header .navigation ul li button span:after{content:'';position:absolute;display:block;height:1px;background-color:#c6c6c6;width:0;bottom:0;left:0;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation ul li a:hover span:after,nav .header .navigation ul li button:hover span:after{width:100%;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation__item{padding:0;margin:0;}nav .header .navigation__link{display:block;padding:12px 13px;color:inherit;position:relative;font-size:13px;line-height:1.08;font-weight:700;letter-spacing:1.5px;background-color:transparent;border:none;cursor:pointer;text-align:left;text-transform:uppercase;}@media (max-width: 1280px){nav .header .navigation__link{padding:19px 10px;font-size:11.5px;}}nav .header .navigation__link .sub-nav-container .navigation__link:hover{background:#000000;}nav .header .navigation .sub-nav{position:absolute;bottom:0;padding:0;opacity:0;visibility:hidden;-webkit-transition:all .2s ease;transition:all .2s ease;-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav .header .navigation .sub-nav ul{margin:0;padding:12px 0;display:block;background-color:rgba(26, 26, 26, .75);max-width:300px;}nav .header .navigation .sub-nav__item{position:relative;display:block;margin:0;text-align:left;}nav .header .navigation .sub-nav__item:last-child{border-bottom-color:transparent;}nav .header .navigation .sub-nav__link{display:block;max-width:300px;color:#ffffff;margin:0;line-height:1;letter-spacing:1.5px;padding:19px 13px;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, 100%);-moz-transform:translate(0, 100%);-ms-transform:translate(0, 100%);transform:translate(0, 100%);}nav .header .navigation .sub-nav.visible+.navigation__link{background:#000000;}nav .header .hamburger{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:none;padding:28px 13px;background-color:transparent;color:inherit;vertical-align:middle;cursor:pointer;outline:none;z-index:915;opacity:1;}nav .header .hamburger__bars{position:relative;display:block;width:26px;height:2px;background-color:currentColor;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before,nav .header .hamburger__bars:after{content:'';display:block;width:26px;height:2px;background-color:currentColor;position:absolute;left:0;top:0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before{-webkit-transform:translateY(-9px);-moz-transform:translateY(-9px);-ms-transform:translateY(-9px);transform:translateY(-9px);}nav .header .hamburger__bars:after{-webkit-transform:translateY(9px);-moz-transform:translateY(9px);-ms-transform:translateY(9px);transform:translateY(9px);}nav .header .hamburger:hover{text-shadow:.5px 0 0,-.5px 0 0;}nav .header .hamburger:hover .hamburger__bars:before{-webkit-transform:translateY(-7px);-moz-transform:translateY(-7px);-ms-transform:translateY(-7px);transform:translateY(-7px);}nav .header .hamburger:hover .hamburger__bars:after{-webkit-transform:translateY(7px);-moz-transform:translateY(7px);-ms-transform:translateY(7px);transform:translateY(7px);}nav .header .hamburger.active .hamburger__bars{-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);opacity:0;}nav .header .hamburger.active .hamburger__bars:before{display:none;}nav .header .hamburger.active .hamburger__bars:after{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);}nav .content-container{-webkit-transition:0.2s all ease;transition:0.2s all ease;}nav.scroll .content-container,nav .scroll .content-container{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}nav.scroll .content-container .navigation__link,nav .scroll .content-container .navigation__link{visibility:visible!important;}nav.scroll .content-container .navigation .sub-nav,nav .scroll .content-container .navigation .sub-nav{-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav.scroll .content-container .navigation .sub-nav ul,nav .scroll .content-container .navigation .sub-nav ul{padding:0;}nav.scroll .content-container .navigation .sub-nav.visible,nav .scroll .content-container .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, calc(100% + 23px));-moz-transform:translate(0, calc(100% + 23px));-ms-transform:translate(0, calc(100% + 23px));transform:translate(0, calc(100% + 23px));}nav .dark-opening{background-color:rgb(26, 26, 26)!important;}nav nav.dark-opening .header{margin-top:0;}nav #ctaShowButton,nav #ctaMessage{display:none!important;}nav #ctaShowButton{display:none;opacity:0;pointer-events:none;}nav .search{cursor:pointer;}nav .search svg{display:block;}nav .buttons-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}body>div.sidemenu{background-color:#fff;color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;}body>div.sidemenu{width:auto!important;left:auto!important;right:0!important;top:0;background-color:transparent;}body>div.sidemenu.visible .sidebar{-webkit-animation:slideIn .3s forwards;animation:slideIn .3s forwards;}body>div.sidemenu.is-hiding{display:block;}body>div.sidemenu.is-hiding .sidebar{-webkit-animation:slideOut .3s forwards;animation:slideOut .3s forwards;}body>div.sidemenu .sidebar{position:relative;width:400px;height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-top:40px;padding-bottom:100px;background-color:var(--bgColor, #fff);color:var(--fontColor, #000);font-family:var(--global-primary-font-family);font-size:21px;line-height:1.333333;letter-spacing:.5px;-webkit-transition:all .3s ease-in;transition:all .3s ease-in;}@media (max-width: 767px){body>div.sidemenu .sidebar{width:270px;font-size:18px;}}body>div.sidemenu .sidebar__content{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%;padding-left:40px;padding-right:40px;text-align:center;overflow-y:auto;}@media (max-width: 767px){body>div.sidemenu .sidebar__content{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;padding-left:20px;padding-right:20px;}}body>div.sidemenu .sidebar__close{position:absolute;right:30px;top:30px;display:inline-block;width:38px;height:38px;padding:10px;border:none;border-radius:0;background:transparent;color:inherit;z-index:1;cursor:pointer;}body>div.sidemenu .sidebar__close:before,body>div.sidemenu .sidebar__close:after{content:'';display:block;width:22px;height:2px;background-color:currentColor;position:absolute;left:50%;top:50%;}body>div.sidemenu .sidebar__close:before{-webkit-transform:translate(-50%, -50%) rotate(45deg);-moz-transform:translate(-50%, -50%) rotate(45deg);-ms-transform:translate(-50%, -50%) rotate(45deg);transform:translate(-50%, -50%) rotate(45deg);}body>div.sidemenu .sidebar__close:after{-webkit-transform:translate(-50%, -50%) rotate(-45deg);-moz-transform:translate(-50%, -50%) rotate(-45deg);-ms-transform:translate(-50%, -50%) rotate(-45deg);transform:translate(-50%, -50%) rotate(-45deg);}@media (max-width: 767px){body>div.sidemenu .sidebar__close{right:10px;top:10px;}}body>div.sidemenu .sidebar__close:focus{outline:none;}body>div.sidemenu .sidebar__nav{list-style:none;padding:0;margin:auto 0;}body>div.sidemenu .sidebar__nav-item{margin:0;padding-top:4px;padding-bottom:4px;border-bottom:1px solid hsla(
      var(--bgColor_H, 0),
      var(--bgColor_S, 0%),
      calc(50% + (var(--bgColor_L, 100%) - 50%) * 0.9),
      var(--bgColor_A, 1)
    );}body>div.sidemenu .sidebar__nav-link{display:inline-block;padding:10px;border:none;border-radius:0;background:transparent;text-transform:none;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__nav-link:focus{outline:none;}body>div.sidemenu .sidebar__subnav{list-style:none;padding:4px 0 10px;margin:0;font-size:17px;}@media (max-width: 767px){body>div.sidemenu .sidebar__subnav{font-size:14px;letter-spacing:.3px;}}body>div.sidemenu .sidebar__subnav-item{margin-bottom:10px;}body>div.sidemenu .sidebar__subnav-item:last-child{margin-bottom:0;}body>div.sidemenu .sidebar__subnav-link{display:inline-block;padding:0;border:none;border-radius:0;background:transparent;text-transform:none;opacity:.7;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__subnav-link:focus{outline:none;}body>div.sidemenu .sub-nav{visibility:hidden;opacity:0;max-height:0;-webkit-transition:all .3s;transition:all .3s;}body>div.sidemenu .sub-nav.visible{display:block;visibility:visible;opacity:1;max-height:100vh;}@-webkit-keyframes slideIn{0%{-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}100%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}}@keyframes slideIn{0%{-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}100%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}}@-webkit-keyframes slideOut{0%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}100%{-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}}@keyframes slideOut{0%{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}100%{-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);}}body>div.sidemenu #main-section .sidebar{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}footer{background-color:#fff;color:#000000;--fontColor:#000000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--greyColor:hsla(
var(--fontColor_H),
var(--fontColor_S),
calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445),
var(--fontColor_A));}footer .redesign .inp--dark-bg input{color:var(--fontColor);border-color:hsla(
      var(--fontColor_H),
      var(--fontColor_S),
      calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445),
      var(--fontColor_A));}footer .redesign .inp--dark-bg input:hover{border-color:var(--fontColor);}footer .redesign .inp+.inp{margin-top:24px;}footer .redesign .btn--primary-light{border-color:var(--fontColor);color:var(--fontColor);}footer .redesign .btn--primary-light:hover{background-color:var(--fontColor);color:var(--bgColor);}footer.is-background-color-light .redesign .btn--primary-light{border-width:1px;}footer .redesign .socials--grey{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;}footer .redesign .socials--grey .socials__link{background-color:hsla(
      var(--bgColor_H),
      var(--bgColor_S),
      calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.15),
      var(--bgColor_A));color:var(--greyColor);}footer .redesign .socials--grey .socials__link svg{fill:var(--greyColor);}footer .redesign .socials--grey .socials__link:hover{background-color:hsla(
        var(--bgColor_H),
        var(--bgColor_S),
        calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.4),
        var(--bgColor_A));color:var(--fontColor);}footer .redesign .socials--grey .socials__link:hover svg{fill:var(--fontColor);}footer .redesign.footer .grey-text{color:var(--fontColor);}footer .footer{position:relative;padding-top:60px;padding-bottom:30px;}@media (max-width: 560px){footer .footer{padding-top:10px;}}@media (max-width: 500px){footer .footer{padding-bottom:70px;}}footer .footer .text_content_wrap p{margin-bottom:15px;}footer .footer .text_content_wrap p:last-of-type{margin-bottom:0;}footer .footer .container{max-width:1440px;}@media (max-width: 768px){footer .footer .container{padding-left:25px;padding-right:25px;}}@media (max-width: 560px){footer .footer .container{padding-left:20px;padding-right:20px;}}footer .footer h3{margin:0 0 15px 0;}footer .footer h5{text-transform:capitalize;}footer .footer .info-wrap{margin-bottom:40px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}footer .footer .info-wrap .agent_box{width:70%;}@media (max-width: 1280px){footer .footer .info-wrap .agent_box{width:50%;}}@media (max-width: 768px){footer .footer .info-wrap .agent_box{width:100%;}}footer .footer .info-wrap .newsletter_box{width:30%;}@media (max-width: 1280px){footer .footer .info-wrap .newsletter_box{width:50%;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box{width:100%;}}footer .footer .info-wrap .newsletter_box--padding{padding-top:44px;}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box--padding{padding-top:0;}}footer .footer .info-wrap .newsletter_box .contact_title{margin-bottom:13px;line-height:1.6;}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .info-wrap-contact_cell{margin-bottom:0;padding-left:0;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .icon_text{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:22px;position:relative;}footer .footer .info-wrap .newsletter_box .icon_text i{position:relative;width:30px;margin-right:20px;}footer .footer .info-wrap .newsletter_box .icon_text .contact_title{margin-bottom:0;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .info-wrap-contact_zone{margin-bottom:0;}}footer .footer .info-wrap-contact{position:relative;}footer .footer .info-wrap-contact_zone{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:39px;}@media (max-width: 768px){footer .footer .info-wrap-contact_zone{margin-bottom:21px;}footer .footer .info-wrap-contact_zone:last-child{margin-bottom:51px;}}footer .footer .info-wrap-contact_zone i{position:absolute;left:0;display:block;}footer .footer .info-wrap-contact_zone i svg path{fill:currentColor;}footer .footer .info-wrap-contact_zone h4{margin:0 0 13px 0;width:100%;}footer .footer .info-wrap-contact_cell{position:relative;padding-left:50px;width:400px;font-size:14px;text-transform:uppercase;font-weight:bold;letter-spacing:1.5px;}@media (max-width: 1280px){footer .footer .info-wrap-contact_cell:first-of-type{margin-bottom:21px;}}footer .footer .info-wrap-contact_cell .contact_title{line-height:1;margin-bottom:5px;}footer .footer .info-wrap-contact_link{color:var(--greyColor);position:relative;}@media (max-width: 560px){footer .footer .info-wrap-contact_link{letter-spacing:0;}}footer .footer .hvr_animation{position:relative;-webkit-text-decoration:none!important;text-decoration:none!important;}footer .footer .hvr_animation:after{content:'';position:absolute;left:0;bottom:0;width:0%;height:1px;background:var(--greyColor);-webkit-transition:.3s linear;transition:.3s linear;}footer .footer .hvr_animation:hover:after{width:100%;}footer .footer .hvr_animation.underlined:after{width:100%;}footer .footer .hvr_animation.underlined:hover:after{width:0%;}footer .footer .form-content{padding:0!important;}footer .footer .form-content label{color:var(--fontColor);text-transform:none;letter-spacing:1;}footer .footer .form-content input{padding:2px 24px 2px 0;}footer .footer .form-content .subscribe_btn{margin-top:20px;position:relative;}footer .footer .form-content .subscribe_btn i{font-size:18px;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);opacity:0;}footer .footer .form-content.success i{opacity:1;}footer .footer .form-content.success .subscribe_btn span{opacity:0;}footer .footer .form-content.success .hide{opacity:0;}footer .footer .form-content.success .hide +span{opacity:1;}footer .footer .text_footer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:39px;}@media (max-width: 1280px){footer .footer .text_footer{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}@media (max-width: 560px){footer .footer .text_footer{text-align:center;}}footer .footer .text_footer p{white-space:normal;}footer .footer .text_footer .images_box{max-width:186px;width:100%;margin-right:43px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media (max-width: 560px){footer .footer .text_footer .images_box{margin:0 auto 20px auto;}}@media (max-width: 1280px){footer .footer .text_footer .img_size{margin-bottom:20px;}}@media (max-width: 560px){footer .footer .text_footer .img_size{margin-bottom:0;}}footer .footer .text_footer .img_size img{width:100%;height:100%;object-fit:contain;}footer .footer .first_text_footer .img_size{width:100%;height:63px;}footer .footer .first_text_footer .img_size img{width:100%;height:100%;object-fit:contain;}@media (max-width: 768px){footer .footer .first_text_footer{margin-bottom:51px;}}footer .footer .second_text_footer .first_img_size{width:45px;height:45px;margin-right:15px;}footer .footer .second_text_footer .second_img_size{width:100px;height:45px;}@media (max-width: 560px){footer .footer .second_text_footer{margin-bottom:21px;}}footer .footer .info-privacy{padding-top:45px;padding-bottom:30px;border-top:1px solid hsla(
        var(--bgColor_H),
        var(--bgColor_S),
        calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55),
        var(--bgColor_A));}@media (max-width: 768px){footer .footer .info-privacy{padding-top:0;border-top:none;}}footer .footer .info-privacy__row{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}footer .footer .info-privacy .copy_zone{font-size:18px;}@media (min-width: 1350px){footer .footer .info-privacy .copy_zone{text-align:center;}}@media (min-width: 1281px){footer .footer .info-privacy .copy_zone{padding-top:8px;padding-bottom:8px;}}@media (max-width: 768px){footer .footer .info-privacy .copy_zone{text-align:center;margin-bottom:10px;padding-top:45px;border-top:1px solid hsla(
            var(--bgColor_H),
            var(--bgColor_S),
            calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55),
            var(--bgColor_A));}}footer .footer .info-privacy .copy_zone a{color:var(--greyColor);}footer .footer .info-privacy .powered_zone{font-size:18px;}@media (min-width: 1281px){footer .footer .info-privacy .powered_zone{padding-top:8px;padding-bottom:8px;}}@media (max-width: 1280px){footer .footer .info-privacy .powered_zone{text-align:center;}}@media (max-width: 768px){footer .footer .info-privacy .powered_zone{text-align:center;margin-bottom:24px;}}footer .footer .info-privacy .powered_zone a{color:var(--greyColor);}@media (min-width: 1281px){footer .footer .info-privacy .socials_zone{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}@media (max-width: 1280px){footer .footer .info-privacy .socials_zone{width:100%;margin-top:20px;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}}@media (max-width: 768px){footer .footer .info-privacy .socials_zone{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:0;margin-bottom:20px;}footer .footer .info-privacy .socials_zone li{padding:0 7px 10px 7px;}}footer .footer.one_contact .type_user{margin-bottom:73px;}@media (max-width: 768px){footer .footer.one_contact .type_user{margin-bottom:51px;}}footer .footer.no_newsletter h3{margin-bottom:46px;}footer .footer.no_newsletter .newsletter_box{display:none;}footer .footer.no_newsletter .info-wrap-contact{width:calc(70% + 230px);width:100%;padding-left:230px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact{padding-left:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact{width:100%;}}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_cell{width:50%;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_cell{width:100%;}}footer .footer.no_newsletter .info-wrap-contact h4{position:absolute;margin-top:-8px;left:0;max-width:200px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;width:100%;margin-bottom:20px;margin-top:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;}}footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:71px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:39px;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:51px;}}footer .footer.no_newsletter .info-wrap-contact_zone:last-child{margin-bottom:0;}footer .footer.no_icon .info-wrap-contact_cell{padding-left:0;}footer .footer.no_icon .info-wrap-contact_cell i{display:none;}footer .footer.no-names .info-wrap-contact{padding-left:0;}footer .form-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-left:-15px;margin-right:-15px;}@media (min-width: 1281px){footer .form-row{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}@media (max-width: 900px){footer .form-row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;padding-left:15px;padding-right:15px;}@media (min-width: 768px){footer .form-col{-webkit-flex:1 1 0;-ms-flex:1 1 0;flex:1 1 0;}}@media (min-width: 768px){footer .form-col--socials{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}}@media (min-width: 1281px){footer .form-col--socials{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;}}@media (max-width: 768px){footer .form-col--socials{-webkit-order:-1;-ms-flex-order:-1;order:-1;}}@media (min-width: 1281px){footer .form-col--xl-auto{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;}}footer .additional-links-separator{display:block;width:100%;height:0;overflow:hidden;}@media (min-width: 768px){footer .additional-links-separator{display:inline;width:auto;height:auto;}footer .additional-links-separator:before{content:"|";}}footer .h-pot{height:0;width:0;overflow:hidden;visibility:hidden;}footer .img-wrap{max-width:100px;width:100%;display:block;margin-right:20px;}@media (max-width: 900px){footer .img-wrap{margin-right:0;margin-bottom:10px;}}footer .img-wrap img{width:100%;object-fit:cover;}footer .powered-box{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;}@media (max-width: 900px){footer .powered-box{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col--copyright{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:10px 0;}footer .luxury-link{white-space:nowrap;}footer .footer__disclaimers{padding-top:24px;padding-bottom:24px;}@media (max-width: 900px){footer .footer__disclaimers{text-align:center;}}body>div.mobile-contact-wrapper .mobile-contact{display:none;position:fixed;right:30px;bottom:25px;z-index:91;}body>div.mobile-contact-wrapper .mobile-contact a{-webkit-text-decoration:none;text-decoration:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:55px;height:55px;margin-bottom:15px;background-color:#fff;font-size:22px;border:2px solid hsla(0,0%,49.8%,.3);border-radius:90px;margin-left:1px;}body>div.mobile-contact-wrapper .mobile-contact a i{color:#000;}body>div.mobile-contact-wrapper .mobile-contact .buttons-holder{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}body>div.mobile-contact-wrapper .mobile-contact.dark a{background-color:#000;}body>div.mobile-contact-wrapper .mobile-contact.dark a i{color:#fff;}@media (max-width: 560px){body>div.mobile-contact-wrapper .mobile-contact{display:block;}}
        </style>
    <style id="custom-style-css">.hyperlink-style-1{color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-1:hover{color:rgba(0, 0, 0, 0.7)!important;}.social_icons-style-1 a{border-color:rgba(0, 0, 0, 1)!important;background-color:rgba(0, 0, 0, 0)!important;color:rgba(0, 0, 0, 1)!important;}.social_icons-style-1 a:hover{border-color:rgba(0, 0, 0, 1)!important;background-color:rgba(0, 0, 0, 1)!important;color:rgba(255,255,255,1)!important;}.social_icons-style-1 a i{color:inherit!important;}.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.pagination-style-1 li a{color:rgba(0, 0, 0, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-1 li a:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 1)!important;border-color:rgba(0, 0, 0, 1)!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 1)!important;border-color:rgba(0, 0, 0, 1)!important;}.button-style-1{color:rgba(0,0,0,1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0,0,0,1)!important;}.button-style-1:hover{color:rgba(255,255,255,1)!important;background-color:rgba(0,0,0,1)!important;border-color:rgba(0, 0, 0, 1)!important;}.button-style-2{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-2:hover{color:rgba(0, 0, 0, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:rgba(255, 255, 255, 0.7)!important;}.pagination-style-2 li a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-2 li a:hover{color:rgba(0, 0, 0, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255,255,255,1)!important;}.pagination-style-2 li.active a{color:rgba(0, 0, 0, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255,255,255,1)!important;}.social_icons-style-2 a{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-2 a:hover{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 1)!important;color:rgba(0, 0, 0, 1)!important;}.social_icons-style-2 a i{color:inherit!important;}.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}</style>


        <script>
            (function utmParse() {
                const url = new URL(window.location.href);
                if (url.search) {
                    const utm = url.search.split(/\?|&/g).reduce((acc, current) => {
                        const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g);
                        if (matched) {
                        acc[matched[0]] = current.replace(`${matched[0]}=`, '');
                        }
                        return acc;
                    }, {});
                    if (Object.keys(utm).length) {
                        window.localStorage.setItem('utm_vars', JSON.stringify(utm));
                    } else {
                        // Remove old utm vars
                        window.localStorage.removeItem('utm_vars');
                    }
                }
                // Set referrer in local storage
                // This is meant to be stored once to avoid self-referrals and to have the first referrer only.
                if (!window.localStorage.getItem('referrer')) {
                    // Capture the Referrer URL
                    const referrer = document.referrer;
                    if (referrer) {
                        // Only store the referrer if it comes from outside the current domain (to avoid self-referrals)
                        const currentDomain = window.location.hostname;
                        const referrerDomain = new URL(referrer).hostname;

                        if (referrerDomain !== currentDomain) {
                            // Store it in localStorage
                            localStorage.setItem('referrer', referrer);
                        }
                    }
                }
            })();
        </script>
        
    <!-- GOOGLE TRANSLATE STYLES are moved to external CSS -->
</head>
<body>
    <div id="google_translate_element" style="display: none"></div>

        <nav id="global-navbar" data-el-id="43e7a874-fb1e-4cdd-91fe-eb6bf5b9179b">
            <div class="redesign">
  <div class="content-container header">
    <div class="container header__container">
      <div class="navbar">
        <div class="logo">
          <a href="/" class="logo__link">
            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fc7wlhhoh7lzgpmzsxnx" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/fc7wlhhoh7lzgpmzsxnx 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fc7wlhhoh7lzgpmzsxnx 820w" class="logo__img light" alt="">
            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ellqmkcnnooholua0c2s" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/ellqmkcnnooholua0c2s 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ellqmkcnnooholua0c2s 820w" class="logo__img dark" alt="">
          </a>
        </div>
        <div class="navigation">
          <ul>
            <li class="navigation__item sub-nav-container">
              <a href="#" class="navigation__link wow fadeInUp">Search By Areas</a>
              <div class="sub-nav">
                <ul>
                  <li class="sub-nav__item"><a  href="/home-search/listings?search_type&#x3D;exact_location&amp;place&#x3D;Malibu&amp;county&#x3D;Los+Angeles+County&amp;state&#x3D;California&amp;postalcode&#x3D;90265&amp;south&#x3D;34.0356019197085&amp;west&#x3D;-118.6174292802915&amp;north&#x3D;34.0382998802915&amp;east&#x3D;-118.6147313197085&amp;omnibox&#x3D;Big+Rock+Beach%2C+Malibu%2C+CA%2C+USA&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Town+House&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Other&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Town+House&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Other&amp;status%5B%5D&#x3D;Active&amp;status_days%5BActive%5D&#x3D;36500&amp;status%5B%5D&#x3D;Under+Contract&amp;status_days%5BUnder+Contract%5D&#x3D;36500&amp;status%5B%5D&#x3D;Pending&amp;status_days%5BPending%5D&#x3D;36500&amp;status_days%5BSold%5D&#x3D;180&amp;mailer_schedule&#x3D;instant&amp;order&#x3D;price%3Adesc" class="nav-link sub-nav__link feature"><span>Big Rock</span></a></li>
                  <li class="sub-nav__item"><a  href="/home-search/listings?search_type&#x3D;exact_location&amp;place&#x3D;Malibu&amp;county&#x3D;Los+Angeles+County&amp;state&#x3D;California&amp;south&#x3D;34.03006529999998&amp;west&#x3D;-118.7311225&amp;north&#x3D;34.03423800000003&amp;east&#x3D;-118.6871838&amp;omnibox&#x3D;Malibu+Road%2C+Malibu%2C+CA%2C+USA&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Town+House&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Other&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Town+House&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Other&amp;status%5B%5D&#x3D;Active&amp;status_days%5BActive%5D&#x3D;36500&amp;status%5B%5D&#x3D;Under+Contract&amp;status_days%5BUnder+Contract%5D&#x3D;36500&amp;status%5B%5D&#x3D;Pending&amp;status_days%5BPending%5D&#x3D;36500&amp;status_days%5BSold%5D&#x3D;180&amp;mailer_schedule&#x3D;instant&amp;order&#x3D;price%3Adesc" class="nav-link sub-nav__link feature"><span>Malibu Road</span></a></li>
                  <li class="sub-nav__item"><a  href="/home-search/listings?search_type&#x3D;exact_location&amp;neighborhood&#x3D;Central+Malibu&amp;place&#x3D;Malibu&amp;county&#x3D;Los+Angeles+County&amp;state&#x3D;California&amp;postalcode&#x3D;90265&amp;south&#x3D;34.0245931697085&amp;west&#x3D;-118.7653231&amp;north&#x3D;34.0272911302915&amp;east&#x3D;-118.7563527&amp;omnibox&#x3D;Malibu+Cove+Colony+Drive%2C+Malibu%2C+CA%2C+USA&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Town+House&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Other&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Town+House&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Other&amp;status%5B%5D&#x3D;Active&amp;status_days%5BActive%5D&#x3D;36500&amp;status%5B%5D&#x3D;Under+Contract&amp;status_days%5BUnder+Contract%5D&#x3D;36500&amp;status%5B%5D&#x3D;Pending&amp;status_days%5BPending%5D&#x3D;36500&amp;status_days%5BSold%5D&#x3D;180&amp;mailer_schedule&#x3D;instant&amp;order&#x3D;price%3Adesc" class="nav-link sub-nav__link feature"><span>Malibu Cove Colony</span></a></li>
                  <li class="sub-nav__item"><a  href="/home-search/listings?search_type&#x3D;exact_location&amp;neighborhood&#x3D;Eastern+Malibu&amp;place&#x3D;Malibu&amp;county&#x3D;Los+Angeles+County&amp;state&#x3D;California&amp;postalcode&#x3D;90265&amp;south&#x3D;34.0367297197085&amp;west&#x3D;-118.6870916302915&amp;north&#x3D;34.0394276802915&amp;east&#x3D;-118.6843936697085&amp;omnibox&#x3D;Malibu+Park+at+Cross+Creek%2C+Civic+Center+Way%2C+Malibu%2C+CA%2C+USA&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Town+House&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Other&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Town+House&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Other&amp;status%5B%5D&#x3D;Active&amp;status_days%5BActive%5D&#x3D;36500&amp;status%5B%5D&#x3D;Under+Contract&amp;status_days%5BUnder+Contract%5D&#x3D;36500&amp;status%5B%5D&#x3D;Pending&amp;status_days%5BPending%5D&#x3D;36500&amp;status_days%5BSold%5D&#x3D;180&amp;mailer_schedule&#x3D;instant&amp;order&#x3D;price%3Adesc" class="nav-link sub-nav__link feature"><span>Malibu Park</span></a></li>
                </ul>
              </div>
            </li>
            <li class="navigation__item sub-nav-container">
              <a href="#" class="navigation__link wow fadeInUp">Properties</a>
              <div class="sub-nav">
                <ul>
                  <li class="sub-nav__item"><a  href="/properties/sale" class="nav-link sub-nav__link feature"><span>Featured Properties</span></a></li>
                  <li class="sub-nav__item"><a  href="/properties/sold" class="nav-link sub-nav__link feature"><span>Past Transactions</span></a></li>
                </ul>
              </div>
            </li>
            <li class="navigation__item">
              <a  href="/home-search/listings" class="navigation__link wow fadeInUp" data-wow-delay="2.2"><span>Home Search</span></a>
            </li>
            <li class="navigation__item">
              <a data-type="CONTACT_US" class="navigation__link wow fadeInUp"><span>Let's Connect</span></a>
            </li>
            <li class="navigation__item">
              <a  href="tel:3106998428" class="navigation__link wow fadeInUp" data-wow-delay="2.4"><span>(310) 699-8428</span></a>
            </li>
          </ul>
        </div>
        <div class="buttons-wrapper">
          <button type="button" class="hamburger-component hamburger">
            <span class="hamburger__bars"></span>
          </button>
        </div>
      </div>
    </div>
  </div>
</div>

        </nav>
        <div id="global-sidemenu" class="sidemenu" data-el-id="285d4c89-6ed5-4dac-8cef-5b61ac8aadad">
            <div class="sidebar">
  
  <button class="toggle sidebar__close close"></button>
  <div class="sidebar__content">

    <ul class="sidebar__nav">
      <li class="sidebar__nav-item">
        <a  href="/" class="sidebar__nav-link">Home</a>
      </li>
      <li class="sidebar__nav-item">
        <a  href="/about" class="sidebar__nav-link">About Michael</a>
      </li>
      <li class="sidebar__nav-item sub-nav-container">
        <a href="#" class="sidebar__nav-link">Properties</a>
        <div class="sub-nav">
          <ul class="sidebar__subnav">
            <li class="sidebar__subnav-item"><a  href="/properties/sale" class="sidebar__subnav-link">Featured Properties</a></li>
            <li class="sidebar__subnav-item"><a  href="/properties/sold" class="sidebar__subnav-link">Past Transactions</a></li>
          </ul>
        </div>
      </li>
      <li class="sidebar__nav-item">
        <a  href="/home-search/listings" class="sidebar__nav-link">Home Search</a>
      </li>
      <li class="sidebar__nav-item">
        <a  href="/home-valuation" class="sidebar__nav-link">Home Valuation</a>
      </li>
      <li class="sidebar__nav-item">
        <a  href="/concierge" class="sidebar__nav-link">Compass Concierge</a>
      </li>
      <li class="sidebar__nav-item">
        <a  href="/neighborhoods" class="sidebar__nav-link">Neighborhoods</a>
      </li>
      <li class="sidebar__nav-item">
        <a  href="/testimonials" class="sidebar__nav-link">Testimonials</a>
      </li>
      <li class="sidebar__nav-item">
        <a  href="/blog" class="sidebar__nav-link">Blog</a>
      </li>
      <li class="sidebar__nav-item">
        <button data-type="CONTACT_US" class="sidebar__nav-link">Let's Connect</button>
      </li>
      <li class="sidebar__nav-item">
        <a  href="/home-search/account" class="sidebar__nav-link">My Search Portal</a>
      </li>
    </ul>
  </div>
</div>
        </div>
        <div  id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="ca33406a-b24a-4100-b315-87fd53d5adc2">
            <div class="mobile-contact dark">
  <div class="buttons-holder">
    <a href="/cdn-cgi/l/email-protection#234e444251474d465163404c4e534250500d404c4e">
      <i class="lp-i lp-i--envelope"></i>
    </a>
    <a href="tel:3106998428">
      <i class="lp-i lp-i--phone"></i>
    </a>
  </div>
</div>

        </div>
        <section  class="image-section is-font-color-light is-background-color-light" id="section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35" data-el-id="8ec37bf8-cdc6-4e6c-bec9-381ff2117972">
<div class="redesign">
  <div class="lp-container lp-container--l">
    <div class="collection">
        <div class="item">
          <div class="lp-title-group">
            
            <h1 class="lp-h1 animation">Michael Gardner</h1>
            <div class="lp-text--subtitle lp-pre-line">CA DRE# 01344290</div>
          </div>
          <div class="btn-container">
          </div>
        </div>
        
        <div class="item">
          <div class="lp-title-group">
            
            <h1 class="lp-h1 animation">12 Year Veteran Real Estate Agent</h1>
            <div class="lp-text--subtitle lp-pre-line">CA DRE# 01344290</div>
          </div>
          <div class="btn-container">
          </div>
        </div>
        
        <div class="item">
          <div class="lp-title-group">
            
            <h1 class="lp-h1 animation">Top 3% Agent Nationwide</h1>
            <div class="lp-text--subtitle lp-pre-line">CA DRE# 01344290</div>
          </div>
          <div class="btn-container">
          </div>
        </div>
        
    </div> 
  </div>
</div>
</section>
<section id="section-7dadc30e-c952-4d4e-a20a-9418f8ef3104"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="83052b56-ef66-48f7-a55c-41931a212f91">
  <div class="search-bar">
  <div class="search-bar-wrapper">
    <div class="search-input-container">
      <i class="search-icon lp-i lp-i--search"></i>
      <input
        type="text"
        placeholder="Search by Address or Area"
        class="search-input"
        value=""
       />
    </div>
  </div>
        <a
            role="button"
            data-type="CONTACT_US"
            class="contact-section"
            
            
            
            
            
            >
                        <div class="link-content">
                          <div class="link-label">BOOK AN APPOINTMENT</div>
                          <div class="icon-style">
                            <i class="lp-i lp-i--arrow-right"></i>
                          </div>
                        </div>
            </a>
</div>
<div class="search-result-container" style="display: none">
    <div class="container">
            <div class="solid-subsection address-results height-limited" style="color: rgba(0, 0, 0, 1); background-color: rgba(241, 241, 241, 1);">
    </div>

    <div class="solid-subsection address-search height-limited" style="color: rgba(0, 0, 0, 1); background-color: rgba(241, 241, 241, 1);">
                    <div>
                        <h6>Search for</h6>
                    </div>
                    <div class="search-info">
                            <div class="item-container">
                                    <a class="link-container"  href="/home-search/listings">Active Listings</a>
                            </div>
                            <div class="item-container">
                                    <a class="link-container"  href="/neighborhoods">Neighborhood Guides</a>
                            </div>
                    </div>
    </div>
    </div>
</div>

</section>
<section id="section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="4e27cc96-9ee2-4352-824e-b9cb27519b3d">
  <div class="redesign featured-agent-section">
  <div class="container">
    <div class="featured-agent">
      <div class="featured-agent__photo">
        <div class="featured-agent__image">
            <img src="https://media-production.lp-cdn.com/media/8d242cf7-f22a-4077-a1e9-33667d2774ec" alt="" loading="lazy">
        </div>

      </div>
      <div class="featured-agent__info">
        <h2 class="h2">About Michael</h2>

        <div class="bio-container">
          <p>Michael wants to assist you with any size transaction. He believes that your satisfaction is more important than his commission check and his attention to your transaction will prove it. He truly loves every minute of the real estate transaction. Even in the moments when it's tough, he enjoys problem-solving and the negotiation process. He likes to win for his clients. Michael specializes in using online technology tools to make home buying and selling a great experience for his clients.</p>
        </div>

        <ul class="links-row">
          <li>
                    <a
                        href="/about"
                        
                        class="link link--white hyperlink-style-1"
                        
                        
                        
                        
                        
                        >
                                LEARN MORE
                        </a>
          </li>
          <li>
          </li>

        </ul>
      </div>
    </div>
  </div>
</div>
</section>
<section id="section-42184e31-83b8-4e3a-809d-b27f9407c48f"  class="solid-section is-font-color-light is-background-color-dark" data-el-id="b4a35264-0bc0-4282-9c41-503d9d017f6f">
<div class="redesign press-carousel-component">
  <h2 class="section-title lp-h2">As Seen On...</h2>
  <div class="image-carousel-component">
    <div class="carousel-container lp-container" data-speed="10000">
      <div class="carousel-slide">
        <div class="carousel-entity">
          <div class="press-item-inner">
            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/s0652pxbiak7pgwokbzi" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/s0652pxbiak7pgwokbzi 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/s0652pxbiak7pgwokbzi 400w" class="image-wrapper" alt="" sizes="125px" loading="lazy">
          </div>
        </div>
      </div>
      <div class="carousel-slide">
        <div class="carousel-entity">
          <div class="press-item-inner">
            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/advluf9ezams58lr393v" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/advluf9ezams58lr393v 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/advluf9ezams58lr393v 866w" class="image-wrapper" alt="" sizes="125px" loading="lazy">
          </div>
        </div>
      </div>
      <div class="carousel-slide">
        <div class="carousel-entity">
          <div class="press-item-inner">
            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/japj2dwrcnyej41qc2o7" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/japj2dwrcnyej41qc2o7 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/japj2dwrcnyej41qc2o7 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/japj2dwrcnyej41qc2o7 1098w" class="image-wrapper" alt="" sizes="125px" loading="lazy">
          </div>
        </div>
      </div>
      <div class="carousel-slide">
        <div class="carousel-entity">
          <div class="press-item-inner">
            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/onc6kcwlj8ehuegd4sts" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/onc6kcwlj8ehuegd4sts 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/onc6kcwlj8ehuegd4sts 503w" class="image-wrapper" alt="" sizes="125px" loading="lazy">
          </div>
        </div>
      </div>
      <div class="carousel-slide">
        <div class="carousel-entity">
          <div class="press-item-inner">
            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/gawx5ezzbh3hdwtj8fxb" class="image-wrapper" alt="" loading="lazy">
          </div>
        </div>
      </div>
      <div class="carousel-slide">
        <div class="carousel-entity">
          <div class="press-item-inner">
            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/lqtfwl7zqqv2u3jetp9y" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/lqtfwl7zqqv2u3jetp9y 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/lqtfwl7zqqv2u3jetp9y 552w" class="image-wrapper" alt="" sizes="125px" loading="lazy">
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

</section>
<section id="section-77a55aad-9562-40b0-b006-a0e7da4a0ff6"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="09e98f83-51e3-4837-80a0-019e211aba4b">
<div class="redesign featured-properties-section " data-auto-scroll=false data-autoplay-speed=3000>
	<div class="container">
		<div class="featured-properties-header">
			<h2 class="serif">Notable Listings</h2>
			<ul class="slick-links-nav">
				<li><span class="link link--white feature prev">previous</span></li>
				<li><span class="link link--white feature next">next</span> <span class="spacer"></span></li>
			</ul>
		</div>
		<ul class="featured-properties carousel-container">
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/27060-malibu-cove-colony-dr-malibu-ca-90265-22-152843">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/1342451932.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">27060 MALIBU COVE COLONY DR</h4>
								<p>
										27060 MALIBU COVE COLONY DR, MALIBU, CA 90265
								</p>

								<p>
										2 BD | 
									2 BA
										 | 1,415 Sq.Ft.
								</p>

								<h5>
										$10,000,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/27060-malibu-cove-colony-dr-malibu-ca-90265-22-152843"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/27060-malibu-cove-colony-dr-malibu-ca-90265-22-152843" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/33020-pacific-coast-hwy-malibu-ca-90265-21-768262">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/200231039.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">33020 Pacific Coast Hwy</h4>
								<p>
										33020 Pacific Coast Hwy, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 3,300 Sq.Ft.
								</p>

								<h5>
										$5,899,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/33020-pacific-coast-hwy-malibu-ca-90265-21-768262"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/33020-pacific-coast-hwy-malibu-ca-90265-21-768262" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6138-ramirez-canyon-rd-malibu-ca-us-90265-26670347">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/26670347/-7965419706532380465.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Active Under Contract</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6138 Ramirez Canyon Rd</h4>
								<p>
										6138 Ramirez Canyon Rd, Malibu, CA 90265
								</p>

								<p>
										4 BD | 
									4 BA
										 | 3,800 Sq.Ft.
								</p>

								<h5>
										$5,495,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6138-ramirez-canyon-rd-malibu-ca-us-90265-26670347"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6138-ramirez-canyon-rd-malibu-ca-us-90265-26670347" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/30429-morning-view-dr-malibu-ca-us-90265-26754287">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/26754287/7636365463099911941.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">For Sale</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">30429 Morning View Dr</h4>
								<p>
										30429 Morning View Dr, Malibu, CA 90265
								</p>

								<p>
										4 BD | 
									4 BA
										 | 3,016 Sq.Ft.
								</p>

								<h5>
										$3,849,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/30429-morning-view-dr-malibu-ca-us-90265-26754287"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/30429-morning-view-dr-malibu-ca-us-90265-26754287" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/24728-vantage-point-ter-malibu-ca-us-90265-26659405">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/26659405/-6198150628690524445.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">For Sale</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">24728 Vantage Point Ter</h4>
								<p>
										24728 Vantage Point Ter, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 2,339 Sq.Ft.
								</p>

								<h5>
										$3,750,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/24728-vantage-point-ter-malibu-ca-us-90265-26659405"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/24728-vantage-point-ter-malibu-ca-us-90265-26659405" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6332-trancas-canyon-rd-malibu-ca-90265-21-780382">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/1948339964.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6332 Trancas Canyon Rd</h4>
								<p>
										6332 Trancas Canyon Rd, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 1,769 Sq.Ft.
								</p>

								<h5>
										$3,345,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6332-trancas-canyon-rd-malibu-ca-90265-21-780382"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6332-trancas-canyon-rd-malibu-ca-90265-21-780382" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6007-trancas-canyon-rd-malibu-ca-90265-20-585970">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/1642638847.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6007 TRANCAS CANYON RD</h4>
								<p>
										6007 TRANCAS CANYON RD, Malibu, CA 90265
								</p>

								<p>
										4 BD | 
									4 BA
										 | 3,514 Sq.Ft.
								</p>

								<h5>
										$3,295,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6007-trancas-canyon-rd-malibu-ca-90265-20-585970"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6007-trancas-canyon-rd-malibu-ca-90265-20-585970" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6133-ramirez-canyon-rd-malibu-ca-90265-20-566336">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-340152518.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6133 RAMIREZ CANYON RD</h4>
								<p>
										6133 RAMIREZ CANYON RD, MALIBU, CA 90265
								</p>

								<p>
										5 BD | 
									5 BA
										 | 3,495 Sq.Ft.
								</p>

								<h5>
										$3,195,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6133-ramirez-canyon-rd-malibu-ca-90265-20-566336"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6133-ramirez-canyon-rd-malibu-ca-90265-20-566336" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/480-westlake-blvd-malibu-ca-90265-21-795634">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/1321333432.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">480 Westlake Blvd</h4>
								<p>
										480 Westlake Blvd, Malibu, CA 90265
								</p>

								<p>
										5 BD | 
									5 BA
										 | 4,755 Sq.Ft.
								</p>

								<h5>
										$2,950,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/480-westlake-blvd-malibu-ca-90265-21-795634"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/480-westlake-blvd-malibu-ca-90265-21-795634" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/5801-foxview-dr-malibu-ca-90265-23-277126">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-1919939409.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">5801 Foxview Dr</h4>
								<p>
										5801 Foxview Dr, Malibu, CA 90265
								</p>

								<p>
									
										0.992 Acres
								</p>

								<h5>
										$2,650,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/5801-foxview-dr-malibu-ca-90265-23-277126"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/5801-foxview-dr-malibu-ca-90265-23-277126" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/5981-trancas-canyon-rd-malibu-ca-90265-20-585902">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-696542978.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">5981 TRANCAS CANYON RD</h4>
								<p>
										5981 TRANCAS CANYON RD, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 1,722 Sq.Ft.
								</p>

								<h5>
										$2,475,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/5981-trancas-canyon-rd-malibu-ca-90265-20-585902"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/5981-trancas-canyon-rd-malibu-ca-90265-20-585902" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/18421-coastline-dr-malibu-ca-us-90265-26828747">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/26828747/7043470380963817089.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">For Sale</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">18421 Coastline Dr</h4>
								<p>
										18421 Coastline Dr, Malibu, CA 90265
								</p>

								<p>
									
										7,590 Sq.Ft.
								</p>

								<h5>
										$2,100,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/18421-coastline-dr-malibu-ca-us-90265-26828747"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/18421-coastline-dr-malibu-ca-us-90265-26828747" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6442-lunita-rd-unit-126-malibu-ca-us-90265-25570617">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/25570617/-6515866814978669056.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6442 Lunita Rd Unit: 126</h4>
								<p>
										6442 Lunita Rd Unit: 126, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 2,064 Sq.Ft.
								</p>

								<h5>
										$1,995,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6442-lunita-rd-unit-126-malibu-ca-us-90265-25570617"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6442-lunita-rd-unit-126-malibu-ca-us-90265-25570617" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/8692-franklin-ave-los-angeles-ca-90069-23-272091">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-1224979692.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">8692 Franklin Ave</h4>
								<p>
										8692 Franklin Ave, Los Angeles, CA 90069
								</p>

								<p>
									
										5,999 Sq.Ft.
								</p>

								<h5>
										$1,950,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/8692-franklin-ave-los-angeles-ca-90069-23-272091"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/8692-franklin-ave-los-angeles-ca-90069-23-272091" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6442-lunita-rd-unit-126-malibu-ca-us-90265-26830583">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/26830583/-8916930576328760352.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">For Sale</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6442 Lunita Rd Unit: 126</h4>
								<p>
										6442 Lunita Rd Unit: 126, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 2,064 Sq.Ft.
								</p>

								<h5>
										$1,945,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6442-lunita-rd-unit-126-malibu-ca-us-90265-26830583"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6442-lunita-rd-unit-126-malibu-ca-us-90265-26830583" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6170-ramirez-canyon-rd-malibu-ca-90265-19-521920">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/1288914985.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6170 RAMIREZ CANYON RD</h4>
								<p>
										6170 RAMIREZ CANYON RD, MALIBU, CA 90265
								</p>

								<p>
									
										1.581 Acres
								</p>

								<h5>
										$1,850,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6170-ramirez-canyon-rd-malibu-ca-90265-19-521920"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6170-ramirez-canyon-rd-malibu-ca-90265-19-521920" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/18421-coastline-dr-malibu-ca-90265-20-649440">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/710741239.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">18421 Coastline Dr</h4>
								<p>
										18421 Coastline Dr, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									2 BA
										 | 2,090 Sq.Ft.
								</p>

								<h5>
										$1,805,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/18421-coastline-dr-malibu-ca-90265-20-649440"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/18421-coastline-dr-malibu-ca-90265-20-649440" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/5801-foxview-dr-malibu-ca-us-90265-25557687">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/25557687/-6616991313874452704.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">5801 Foxview Dr</h4>
								<p>
										5801 Foxview Dr, Malibu, CA 90265
								</p>

								<p>
									
										0.99 Acres
								</p>

								<h5>
										$1,800,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/5801-foxview-dr-malibu-ca-us-90265-25557687"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/5801-foxview-dr-malibu-ca-us-90265-25557687" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/5683-hazelcrest-cir-westlake-village-ca-us-91362-24-371682">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/24-371682/7548579687240782896.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">5683 Hazelcrest Cir</h4>
								<p>
										5683 Hazelcrest Cir, Westlake Village, CA 91362
								</p>

								<p>
										5 BD | 
									5 BA
										 | 3,560 Sq.Ft.
								</p>

								<h5>
										$1,770,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/5683-hazelcrest-cir-westlake-village-ca-us-91362-24-371682"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/5683-hazelcrest-cir-westlake-village-ca-us-91362-24-371682" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/31255-beach-view-estates-dr-malibu-ca-90265-21-781340">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/997638770.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">31255 Beach View Estates DR</h4>
								<p>
										31255 Beach View Estates DR, MALIBU, CA 90265
								</p>

								<p>
									
										2.045 Acres
								</p>

								<h5>
										$1,650,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/31255-beach-view-estates-dr-malibu-ca-90265-21-781340"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/31255-beach-view-estates-dr-malibu-ca-90265-21-781340" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/24311-sylvan-glen-rd-calabasas-ca-91302-19-473198">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-1061060705.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">24311 SYLVAN GLEN RD</h4>
								<p>
										24311 SYLVAN GLEN RD, CALABASAS, CA 91302
								</p>

								<p>
										5 BD | 
									5 BA
										 | 2,438 Sq.Ft.
								</p>

								<h5>
										$1,350,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/24311-sylvan-glen-rd-calabasas-ca-91302-19-473198"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/24311-sylvan-glen-rd-calabasas-ca-91302-19-473198" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/29055-saddlebrook-dr-agoura-hills-ca-91301-20-654852">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-727477837.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">29055 Saddlebrook Dr</h4>
								<p>
										29055 Saddlebrook Dr, Agoura Hills, CA 91301
								</p>

								<p>
										3 BD | 
									3 BA
										 | 3,026 Sq.Ft.
								</p>

								<h5>
										$1,244,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/29055-saddlebrook-dr-agoura-hills-ca-91301-20-654852"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/29055-saddlebrook-dr-agoura-hills-ca-91301-20-654852" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/26665-seagull-way-unit-a214-malibu-ca-90265-21-705552">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-118654513.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">26665 Seagull Way Unit: A214</h4>
								<p>
										26665 Seagull Way Unit: A214, Malibu, CA 90265
								</p>

								<p>
										2 BD | 
									2 BA
										 | 920 Sq.Ft.
								</p>

								<h5>
										$1,235,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/26665-seagull-way-unit-a214-malibu-ca-90265-21-705552"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/26665-seagull-way-unit-a214-malibu-ca-90265-21-705552" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/723-palisades-beach-rd-unit-102-santa-monica-ca-us-90402-25558109">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/25558109/1454081943487505860.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">723 Palisades Beach Rd Unit: 102</h4>
								<p>
										723 Palisades Beach Rd Unit: 102, Santa Monica, CA 90402
								</p>

								<p>
										1 BD | 
									1 BA
										 | 703 Sq.Ft.
								</p>

								<h5>
										$1,100,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/723-palisades-beach-rd-unit-102-santa-monica-ca-us-90402-25558109"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/723-palisades-beach-rd-unit-102-santa-monica-ca-us-90402-25558109" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/30478-mulholland-hwy-agoura-ca-91301-23-281493">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/23-281493/3559839261138138450.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">30478 Mulholland Hwy</h4>
								<p>
										30478 Mulholland Hwy, Agoura, CA 91301
								</p>

								<p>
										2 BD | 
									1 BA
										 | 1,594 Sq.Ft.
								</p>

								<h5>
										$1,050,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/30478-mulholland-hwy-agoura-ca-91301-23-281493"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/30478-mulholland-hwy-agoura-ca-91301-23-281493" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/23136-jonathan-st-west-hills-ca-91304-23-326629">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/23-326629/1861748658496754939.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Sold</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">23136 Jonathan St</h4>
								<p>
										23136 Jonathan St, West Hills, CA 91304
								</p>

								<p>
										3 BD | 
									2 BA
										 | 1,468 Sq.Ft.
								</p>

								<h5>
										$790,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/23136-jonathan-st-west-hills-ca-91304-23-326629"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/23136-jonathan-st-west-hills-ca-91304-23-326629" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/24020-hovenweep-malibu-ca-us-90265-26828739">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/26828739/6544412036800938802.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">For Sale</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">24020 Hovenweep</h4>
								<p>
										24020 Hovenweep, Malibu, CA 90265
								</p>

								<p>
									
										1.18 Acres
								</p>

								<h5>
										$599,000
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/24020-hovenweep-malibu-ca-us-90265-26828739"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/24020-hovenweep-malibu-ca-us-90265-26828739" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/0-cliffside-malibu-ca-90265-20-587370">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/2096187703.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Leased</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">0 Cliffside</h4>
								<p>
										0 Cliffside, MALIBU, CA 90265
								</p>

								<p>
										5 BD | 
									6 BA
										
								</p>

								<h5>
										$325,000/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/0-cliffside-malibu-ca-90265-20-587370"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/0-cliffside-malibu-ca-90265-20-587370" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/0-cliffside-malibu-ca-90265-23-261551">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/1536141495.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">0 Cliffside</h4>
								<p>
										0 Cliffside, MALIBU, CA 90265
								</p>

								<p>
										6 BD | 
									7 BA
										 | 7,900 Sq.Ft.
								</p>

								<h5>
										$300,000/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/0-cliffside-malibu-ca-90265-23-261551"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/0-cliffside-malibu-ca-90265-23-261551" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/0-cliffside-malibu-ca-90265-22-120521">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/333847219.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">0 Cliffside</h4>
								<p>
										0 Cliffside, MALIBU, CA 90265
								</p>

								<p>
										5 BD | 
									6 BA
										 | 7,900 Sq.Ft.
								</p>

								<h5>
										$299,000/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/0-cliffside-malibu-ca-90265-22-120521"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/0-cliffside-malibu-ca-90265-22-120521" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/27060-malibu-cove-colony-dr-malibu-ca-90265-22-154945">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-191936521.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">27060 MALIBU COVE COLONY DR</h4>
								<p>
										27060 MALIBU COVE COLONY DR, MALIBU, CA 90265
								</p>

								<p>
										2 BD | 
									2 BA
										 | 1,415 Sq.Ft.
								</p>

								<h5>
										$25,000/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/27060-malibu-cove-colony-dr-malibu-ca-90265-22-154945"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/27060-malibu-cove-colony-dr-malibu-ca-90265-22-154945" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/33410-pacific-coast-hwy-malibu-ca-90265-23-237715">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-1834914272.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">33410 Pacific Coast Hwy</h4>
								<p>
										33410 Pacific Coast Hwy, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 2,790 Sq.Ft.
								</p>

								<h5>
										$25,000/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/33410-pacific-coast-hwy-malibu-ca-90265-23-237715"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/33410-pacific-coast-hwy-malibu-ca-90265-23-237715" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/33410-pacific-coast-hwy-malibu-ca-90265-22-127905">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-93940190.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">33410 Pacific Coast Hwy</h4>
								<p>
										33410 Pacific Coast Hwy, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									4 BA
										 | 3,100 Sq.Ft.
								</p>

								<h5>
										$19,900/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/33410-pacific-coast-hwy-malibu-ca-90265-22-127905"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/33410-pacific-coast-hwy-malibu-ca-90265-22-127905" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6138-ramirez-canyon-rd-malibu-ca-us-90265-26670357">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/26670357/8788403776730659762.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Active Under Contract</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6138 Ramirez Canyon Rd</h4>
								<p>
										6138 Ramirez Canyon Rd, Malibu, CA 90265
								</p>

								<p>
										4 BD | 
									4 BA
										 | 3,800 Sq.Ft.
								</p>

								<h5>
										$17,000/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6138-ramirez-canyon-rd-malibu-ca-us-90265-26670357"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6138-ramirez-canyon-rd-malibu-ca-us-90265-26670357" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6138-ramirez-canyon-rd-malibu-ca-90265-22-170809">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-1401973216.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6138 Ramirez Canyon Rd</h4>
								<p>
										6138 Ramirez Canyon Rd, Malibu, CA 90265
								</p>

								<p>
										4 BD | 
									5 BA
										 | 3,800 Sq.Ft.
								</p>

								<h5>
										$16,500/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6138-ramirez-canyon-rd-malibu-ca-90265-22-170809"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6138-ramirez-canyon-rd-malibu-ca-90265-22-170809" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6138-ramirez-canyon-rd-malibu-ca-90265-21-760368">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/285083405.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Leased</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6138 Ramirez Canyon Rd</h4>
								<p>
										6138 Ramirez Canyon Rd, Malibu, CA 90265
								</p>

								<p>
										4 BD | 
									5 BA
										 | 3,800 Sq.Ft.
								</p>

								<h5>
										$16,500/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6138-ramirez-canyon-rd-malibu-ca-90265-21-760368"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6138-ramirez-canyon-rd-malibu-ca-90265-21-760368" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/24728-vantage-point-ter-malibu-ca-us-90265-26659389">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/26659389/3571716153970623386.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">For Lease</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">24728 Vantage Point Ter</h4>
								<p>
										24728 Vantage Point Ter, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 2,339 Sq.Ft.
								</p>

								<h5>
										$16,000/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/24728-vantage-point-ter-malibu-ca-us-90265-26659389"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/24728-vantage-point-ter-malibu-ca-us-90265-26659389" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/24728-vantage-point-ter-malibu-ca-90265-23-276133">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/23-276133/4468058840130918981.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Leased</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">24728 Vantage Point Ter</h4>
								<p>
										24728 Vantage Point Ter, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 2,339 Sq.Ft.
								</p>

								<h5>
										$15,750/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/24728-vantage-point-ter-malibu-ca-90265-23-276133"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/24728-vantage-point-ter-malibu-ca-90265-23-276133" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6332-trancas-canyon-rd-malibu-ca-90265-21-112485">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-259972567.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Leased</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6332 Trancas Canyon Rd</h4>
								<p>
										6332 Trancas Canyon Rd, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 1,769 Sq.Ft.
								</p>

								<h5>
										$9,995/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6332-trancas-canyon-rd-malibu-ca-90265-21-112485"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6332-trancas-canyon-rd-malibu-ca-90265-21-112485" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/6442-lunita-rd-unit-126-malibu-ca-us-90265-25625145">
							<div class="featured-properties__img">
								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/25625145/-3037460874311858719.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Inactive</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">6442 Lunita Rd Unit: 126</h4>
								<p>
										6442 Lunita Rd Unit: 126, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									3 BA
										 | 2,064 Sq.Ft.
								</p>

								<h5>
										$9,500/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/6442-lunita-rd-unit-126-malibu-ca-us-90265-25625145"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/6442-lunita-rd-unit-126-malibu-ca-us-90265-25625145" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/31577-pacific-coast-hwy-unit-unit-c-malibu-ca-90265-21-793218">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/-764476344.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Leased</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">31577 Pacific Coast Hwy Unit: Unit C</h4>
								<p>
										31577 Pacific Coast Hwy Unit: Unit C, Malibu, CA 90265
								</p>

								<p>
										3 BD | 
									2 BA
										 | 1,250 Sq.Ft.
								</p>

								<h5>
										$5,450/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/31577-pacific-coast-hwy-unit-unit-c-malibu-ca-90265-21-793218"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/31577-pacific-coast-hwy-unit-unit-c-malibu-ca-90265-21-793218" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/26665-seagull-way-unit-a214-malibu-ca-90265-20-560772">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/508895920.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Leased</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">26665 SEAGULL WAY Unit: A214</h4>
								<p>
										26665 SEAGULL WAY Unit: A214, MALIBU, CA 90265
								</p>

								<p>
										2 BD | 
									2 BA
										 | 920 Sq.Ft.
								</p>

								<h5>
										$4,700/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/26665-seagull-way-unit-a214-malibu-ca-90265-20-560772"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/26665-seagull-way-unit-a214-malibu-ca-90265-20-560772" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
				<li class="featured-properties__item-cover">
					<div class="featured-properties__item feature">
						<a class="featured-properties__item-info" href="/properties/31577-pacific-coast-hwy-unit-a-malibu-ca-90265-20-573624">
							<div class="featured-properties__img">
								<img src="https://dq1niho2427i9.cloudfront.net/d35b9bef-9a0c-4a53-9f1b-87c4123830dd/1229446954.jpg" alt="" loading="lazy">
							</div>
							<span class="featured-properties__label">Leased</span>
							
							<div class="featured-properties__text">
								<h4 class="serif">31577 PACIFIC COAST HWY Unit: A</h4>
								<p>
										31577 PACIFIC COAST HWY Unit: A, MALIBU, CA 90265
								</p>

								<p>
										3 BD | 
									2 BA
										 | 2,524 Sq.Ft.
								</p>

								<h5>
										$4,000/mo
								</h5>
							</div>
						</a>
						<div class="featured-properties__hover">
							<a href="/properties/31577-pacific-coast-hwy-unit-a-malibu-ca-90265-20-573624"></a>
							<div class="featured-properties__buttons">
								<a href="/properties/31577-pacific-coast-hwy-unit-a-malibu-ca-90265-20-573624" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
							</div>
						</div>
					</div>
				</li>
		</ul>
  			<div class="featured-properties-button-holder">        <a
            href="/properties/sold"
            
            class="btn btn--primary-light button-style-1"
            
            
            
            
            
            >
                    VIEW ALL
            </a>
</div>
	</div>
</div>

</section>
<section  class="image-section is-font-color-light is-background-color-light" id="section-f3880da9-ac15-47ea-aec3-62adde528f11" data-el-id="3194d39b-ac2d-42a7-9973-4b279eaa51e6">
    <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
  (function(){
    const sectionId = 'section-f3880da9-ac15-47ea-aec3-62adde528f11'
    const section = document.querySelector(`#${sectionId}`);
    var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image');

    if('false' === 'true') {
      section.classList.add('parallax-enabled');
      section.style.setProperty('--sectionBackground', sectionBg);
      section.style.setProperty('background', 'none');
    }
  })()
</script>
<div class="redesign featured-testimonials ">
	<div class="container">
		<div class="featured-testimonials__left">
			<h2 class="serif">Testimonials</h2>
  			<ul class="slick-links-nav">
  				<li><span class="link feature prev hyperlink-style-2">previous</span></li>
  				<li><span class="separator hyperlink-style-2"></span></li>
  				<li><span class="link feature next hyperlink-style-2">next</span></li>
  			</ul>
		</div>
		<div class="featured-testimonials__right"> 
			<ul class="featured-testimonials__slider js-slider" data-autoscroll=false data-autoscroll-interval=6>
				<li>
					<blockquote>Michael was highly recommended to my wife and me by a lady he represented in a purchase of a property in Paradise Cove last year. I checked out his terrific website and gave him a call. His personable demeanor, character, honesty, and easy-going manner, combined with his expert knowledge about everything real estate in Malibu (and beyond) impressed us, so we asked him to help us find a property in the Cove. We were selling our ocean view Pacific Palisades home and wanted to move north to Malibu to be even closer to the ocean/beach. We invited him over to our home so he could see firsthand how we live and discuss what type of property we were looking...</blockquote>
						— <cite>Buyer</cite>
				</li>
				<li>
					<blockquote>I first contacted Mike when I was considering purchasing a mobile home in the Point Dume Club in Malibu. After several months of considering that purchase, I switched course and decided to buy a property in Ojai, CA instead. Mike was very understanding and supportive of this decision and expressed a genuine desire for me to be happy even if it meant I was no longer doing a deal with him in Malibu. I was so impressed by this that I wound up asking him to continue to be my agent for my Ojai purchase and he agreed. We powered through a 30-day escrow and managed to meet some tight deadlines despite the holidays and some inspection-related challenges. Th...</blockquote>
						— <cite>Ojai H.</cite>
				</li>
				<li>
					<blockquote>I have known Michael Gardner for over 10 years as a close friend. I am typically hesitant to do business with friends but in this instance, I needed a REALTOR that had cutting-edge marketing skills to take advantage of an emerging market. No one I know in the Real Estate industry utilizes multiple marketing platforms better than Michael. In fact, he hosts multiple seminars teaching other REALTOR how it is done. Why would you use an agent that only relies on the MLS and Homes and Land? That would be like choosing a surgeon that will remove your gallbladder with three one-inch incisions over one that uses robotic technology with one hidden half-inch i...</blockquote>
						— <cite>Seller</cite>
				</li>
				<li>
					<blockquote>Mike G. is a "one-of-a-kind" find. I set out looking for a transitional home to lease in Malibu. I met Mike early on in my quest. Partway through the shopping process, I shared that I was about to downsize due to my now empty nest and embark on selling the family villa in Sherman Oaks. Not only did Mike help me find the perfect lease, but he also partnered with a Sherman Oaks REALTOR for the sale of my home. In less than 3 months, I had sold my home of 26 years and relocated to Malibu. His manner and professionalism gave me a tremendous boost. I knew I was in good hands and had to trust in him and the process. He made me feel protected which is some...</blockquote>
						— <cite>Debra N.</cite>
				</li>
				<li>
					<blockquote>We worked with Mike for almost six months as we looked for, found, and ultimately purchased our new vacation home in Malibu. Mike was consistently available, responsive, helpful, and constructive. We don't live in Malibu full time so we were often quite demanding. We needed to talk to Mike at odd times of the day and night (because we are in a different time zone), we asked Mike to be available to meet with us whenever we were in town, and we required his expertise when issues came up relating to very Malibu-specific issues like geology and land use issues. Just last week we closed on our new Malibu home and we are truly thrilled. The process was lo...</blockquote>
						— <cite>Buyer</cite>
				</li>
				<li>
					<blockquote>Mike G has been our agent since around 2008. We moved to Malibu from Seattle in 2010. He put us in an amazing lease in the Point where we were for several years. And went on an easy-going house hunt with us for several years, always checking in, never pushing, always giving us honest guidance about the market. When we were finally ready to buy - of course at the top of the market - he stuck with us through 3 offers over 3 months or so. Finally helping us get into a house we love. During this time he's seen our family grow, taken our family photo every year we've been in Malibu, and I've seen his beautiful family grow with their two babies. And we wi...</blockquote>
						— <cite>Buyer</cite>
				</li>
				<li>
					<blockquote>Mike listed and sold our house, as well as helped us buy a new house. He is outstanding in all ways, and the only agent we would use. He is a savvy negotiator and is highly ethical and scrupulous. His internet and other marketing techniques were great and helped us find a buyer. As a buyer's agent, he went with was to almost all of the 50+ houses we looked at and made himself available in the evenings and on the weekend. He was very skilled at identifying exactly what we needed and wanted in a new home and help us find a beautiful house in Agoura Hills. Not only was he an expert on Malibu, but had a thorough knowledge of many other cities, e.g., Pal...</blockquote>
						— <cite>Buyer</cite>
				</li>
				<li>
					<blockquote>We actually found Mike via Zillow. Having been impressed by his track record and the testimonials of his clients. Mike helped us this summer find a house and delivered everything we could ask for in an agent. Mike has a deep well of experience and local knowledge to draw from, and his intimate understanding of the Malibu market was incredibly helpful for us moving from the South Bay area. Mike listened to what we were looking for and got us showings early in the process. The critical advantage in a limited inventory market. His easygoing demeanor built both our comfort and confidence throughout the process and helped us find and close on a house tha...</blockquote>
						— <cite>Hassan E.</cite>
				</li>
				<li>
					<blockquote>Mike is great at what he does. We had our home listed with another broker for nearly a year. After being told we wouldn't get the price we wanted, we decided to list our Malibu home with Mike. Within just a couple of months, he sold our home for our asking price. Now, because of Mike's hard work, we now have our second home under contract. Mike and Julie (Mike's assistant) are very knowledgeable and made the entire transaction a piece of cake. If you have a house to sell, Mike is the man to call. He truly is "The Malibu Expert".</blockquote>
						— <cite>Seller</cite>
				</li>
				<li>
					<blockquote>Mike was really great to work with. He is a true expert in his field, honest, responsible, patient, and worked hard to find and secure me my perfect home. He is extremely knowledgeable regarding Malibu and surrounding areas, and of all the issues and components of what goes into a home, potential problems, maintenance, landscaping, etc. He was also consistently helpful and supportive throughout the process, escrow, closing, etc. Mike is a seasoned pro and I would highly recommend him!</blockquote>
						— <cite>Karen A.</cite>
				</li>
				<li>
					<blockquote>We are a french family and we had a great experience selling our first primary home in Malibu. Mike is working hard in silence, having an accurate and honest point of view. He has a perfect understanding of the malibu market but he is first of all a human and a very generous guy. He is a good person. He is about the kind of people you meet on the road and contributes to making you love Malibu. I think it is very valuable for you Sellers or Buyers.</blockquote>
						— <cite>Seller</cite>
				</li>
				<li>
					<blockquote>I have used many real estate agents in the past, both buying and selling, and have learned to develop a distaste for the profession, in general. Mike changed all that for me. His integrity, professionalism, and honesty have definitely made me a believer that there are at least a few decent and trustworthy agents. Mike handled the sale of my property with integrity and perseverance and became my best advocate in the process. Thank you, Mike!</blockquote>
						— <cite>Phyllis S.</cite>
				</li>
				<li>
					<blockquote>I was very impressed with Michael Gardner with Sotheby's International Realty. From interview to sale, he was competent, professional, and pleasant. He returned my phone calls immediately, which is quite uncommon in today's world. Mike didn't bog me down with unimportant matters but was positive and a good problem-solver. He took charge and I would personally recommend him to anyone who inquired.</blockquote>
						— <cite>Lisa V.</cite>
				</li>
				<li>
					<blockquote>I randomly found Michael online after spotting his name associated with a few properties. He had lots of "stars," so I decided to call him to see if he could help me find a place to buy in Malibu. Not only did he help me find a place one day, but we also had an accepted offer that same day. Michael is knowledgeable and thorough. This had to have been the easiest real estate transaction ever.</blockquote>
						— <cite>Lynn G.</cite>
				</li>
				<li>
					<blockquote>Michael is a true professional and an expert in Malibu properties it's true. But more than that he is helpful and personable beyond the call of duty. He walked me through all the steps and gave me good advice on selling my home. The house sold within 6 weeks! and for the price, I was asking. You'd be lucky to have him represent you on either side of any real estate transaction.</blockquote>
						— <cite>Seller</cite>
				</li>
				<li>
					<blockquote>I was a buyer on my Malibu house and Mike was representing the seller. He was helpful, fair, honest, and really did everything to make this transaction a pleasure. He is extremely knowledgeable and very helpful and responsive. We literally had no issues! He was great. Highly recommend him!</blockquote>
						— <cite>Seller</cite>
				</li>
				<li>
					<blockquote>Mike is a real properties expert in the Malibu market. We have viewed some of his represented properties in the area. Mike has provided in-depth information about the local market, gave honest advice. Trustworthy, well organized, and helpful, a fine example of a true expert.</blockquote>
						— <cite>Martynas M.</cite>
				</li>
				<li>
					<blockquote> I used Mike to sell my house in Malibu and his knowledge and responsiveness were the best. He definitely went above and beyond. I don't know many REALTOR who would be able to sell a house with a recent landslide on it. Mike didn't let it become an issue and sold the house!</blockquote>
						— <cite>Javier S.</cite>
				</li>
				<li>
					<blockquote>Mike is incredibly knowledgeable, kind, and very easy to work with. He responded to e-mails and texts immediately and was willing to spend time getting to know us and our house-buying goals. We highly recommend Mike to anyone looking for a home in Malibu!</blockquote>
						— <cite>Ana B.</cite>
				</li>
				<li>
					<blockquote>Mike was excellent in every respect. He was able to quickly find a short-term tenant for my home in Malibu and has provided prompt advice as to any questions or queries I have had throughout my time in Malibu.</blockquote>
						— <cite>Alexander C.</cite>
				</li>
			</ul>
			        <a
			            href="/testimonials"
			            
			            class="btn btn--primary-dark button-style-2"
			            
			            
			            
			            
			            
			            >
			                    VIEW ALL
			            </a>
		</div>
	</div>
</div>

</section>
<section id="section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="ef4a3598-d218-4978-bdc4-94d84dee161b">
<script type="text/x-handlebars-template" class="gridItem pagination-script"><div class="item">
  <a href="/neighborhoods/{{slug}}" class="item-wrapper">
    <div class="image-holder">
      {{{mediaImage media.[0] sizes="(max-width: 768px) 100vw, 50vw"  alt=name}}}
    </div>
    <div class="overlay"></div>
    <div class="content-container">
      <h3 class="lp-h3 neighborhood-name">{{name}}</h3>
      <div class="button-wrapper">
        <span class="lp-btn lp-btn--light lp-btn--filled lp-btn--big button-style-2">Learn More</span>
      </div>
    </div>
  </a>
</div>
</script>

<div class="featured-neighborhoods-grid lp-vertical-paddings redesign">
  <div class="lp-container">
    <div class="lp-title-group">
      
      <h2 class="lp-h2">Neighborhoods</h2>
      <div class="lp-text--subtitle lp-pre-line">Discover the most beautiful communities in Malibu.</div>
    </div>
  </div>
  
  <div class="items items-3 three-columns ">
          <div class="item">
            <a href="/neighborhoods/big-rock" class="item-wrapper">
              <div class="image-holder">
                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/ct5cmbca7lgl8wqzirfd" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/ct5cmbca7lgl8wqzirfd 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/ct5cmbca7lgl8wqzirfd 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/ct5cmbca7lgl8wqzirfd 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/ct5cmbca7lgl8wqzirfd 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ct5cmbca7lgl8wqzirfd 3456w" alt="Big Rock" sizes="(max-width: 768px) 100vw, 50vw" loading="lazy">
              </div>
              <div class="overlay"></div>
              <div class="content-container">
                <h3 class="lp-h3 neighborhood-name">Big Rock</h3>
                <div class="button-wrapper">
                  <span class="lp-btn lp-btn--light lp-btn--filled lp-btn--big button-style-2">Learn More</span>
                </div>
              </div>
            </a>
          </div>
          <div class="item">
            <a href="/neighborhoods/malibu-road" class="item-wrapper">
              <div class="image-holder">
                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/l3j3pjo8o4qdminsymvu" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/l3j3pjo8o4qdminsymvu 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/l3j3pjo8o4qdminsymvu 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/l3j3pjo8o4qdminsymvu 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/l3j3pjo8o4qdminsymvu 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/l3j3pjo8o4qdminsymvu 3456w" alt="Malibu Road" sizes="(max-width: 768px) 100vw, 50vw" loading="lazy">
              </div>
              <div class="overlay"></div>
              <div class="content-container">
                <h3 class="lp-h3 neighborhood-name">Malibu Road</h3>
                <div class="button-wrapper">
                  <span class="lp-btn lp-btn--light lp-btn--filled lp-btn--big button-style-2">Learn More</span>
                </div>
              </div>
            </a>
          </div>
          <div class="item">
            <a href="/neighborhoods/malibu-cove-colony" class="item-wrapper">
              <div class="image-holder">
                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/o4ns0ixx0ysimboazpk3" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/o4ns0ixx0ysimboazpk3 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/o4ns0ixx0ysimboazpk3 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/o4ns0ixx0ysimboazpk3 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/o4ns0ixx0ysimboazpk3 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/o4ns0ixx0ysimboazpk3 3456w" alt="Malibu Cove Colony" sizes="(max-width: 768px) 100vw, 50vw" loading="lazy">
              </div>
              <div class="overlay"></div>
              <div class="content-container">
                <h3 class="lp-h3 neighborhood-name">Malibu Cove Colony</h3>
                <div class="button-wrapper">
                  <span class="lp-btn lp-btn--light lp-btn--filled lp-btn--big button-style-2">Learn More</span>
                </div>
              </div>
            </a>
          </div>
  </div>
  
    <div class="button-container">
              <a
                  href="/neighborhoods"
                  
                  class="lp-btn lp-btn--outline lp-btn--dark lp-btn--big button-style-1"
                  
                  
                  
                  
                  
                  >
                          View All
                  </a>
    </div>
</div>
</section>
<section id="section-d34dd8f7-cbdd-4352-84c9-f155a809528d"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="d5393d72-b41a-464a-8c43-57a481298648">
<div class="redesign blog-posts__section">
  <div class="container">
    <h2 class="serif">Recent Blog Posts</h2>
    <div class="blog-posts">
      <a href="/blog/joshua-tree-style-home-for-sale-in-the-hills-of-malibu" class="blog-posts__block blog-posts__block--full-width">
        <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/x7sio002s8s20vnjhva2c5jr" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/x7sio002s8s20vnjhva2c5jr 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/x7sio002s8s20vnjhva2c5jr 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/x7sio002s8s20vnjhva2c5jr 1920w" class="blog-posts__image" sizes="(max-width: 768px) 100vw, 50vw" alt="" loading="lazy">

        <h5>Joshua Tree Style Home For Sale In The Hills Of Malibu</h5>
        
        <p>Here's a cool, wooden architecture, set on top of boulders on a high mountain peak in Malibu.</p>

        <strong>
          
          
            
        </strong>
      </a>
      <a href="/blog/paul-woodman-sells-record-price-mobile-home-in-paradise-cove" class="blog-posts__block ">
        <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/as38kac5s2pfhio0nk5xn2w2" class="blog-posts__image" alt="" loading="lazy">

        <h5>Paul Woodman Sells Record Price Mobile Home In Paradise Cove</h5>
        
        <p>Paradise Cove has easily outperformed other segments of the Malibu real estate market!</p>

        <strong>
          
          
            
        </strong>
      </a>
      <a href="/blog/sweetwater-mesa-estate-site-above-serra-retreat" class="blog-posts__block ">
        <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/e0on2xpgejm797z9tnpu84ew" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/e0on2xpgejm797z9tnpu84ew 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/e0on2xpgejm797z9tnpu84ew 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/e0on2xpgejm797z9tnpu84ew 1680w" class="blog-posts__image" sizes="(max-width: 768px) 100vw, 50vw" alt="" loading="lazy">

        <h5>Sweetwater Mesa Estate Site Above Serra Retreat</h5>
        
        <p>Here's a rare opportunity to purchase a 2-acre ocean view site above Serra Retreat overlooking all of the views!</p>

        <strong>
          
          
            
        </strong>
      </a>
    </div>
            <a
                href="/blog"
                
                class="btn btn--primary-light button-style-1"
                
                
                
                
                
                >
                        VIEW ALL
                </a>
  </div>
</div> 

</section>
<section  class="image-section is-font-color-light is-background-color-light" id="section-afd5b524-043d-40cc-9cd3-279654dad980" data-el-id="e6b1ae9f-5b8d-4ac5-a23f-bfb55ef91c3c">
    <script>
  (function(){
    const sectionId = 'section-afd5b524-043d-40cc-9cd3-279654dad980'
    const section = document.querySelector(`#${sectionId}`);
    var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image');

    if('false' === 'true') {
      section.classList.add('parallax-enabled');
      section.style.setProperty('--sectionBackground', sectionBg);
      section.style.setProperty('background', 'none');
    }
  })()
</script>
<div class="redesign work-with-us ">
	<div class="container">
			<h2 class="serif">Work With Michael</h2>
		<p>His goal is to empower the client with easy-to-use information so they can be prepared to make the best decisions when buying or selling. Michael is often sought out by the press and has appeared on Good Morning America, the front page of the LA Times Business section, and The Wall Street Journal. </p>
		<div class="btn-container">
              <a
                  role="button"
                  data-type="CONTACT_US"
                  class="btn btn--primary-light button-style-2"
                  
                  
                  
                  
                  
                  >
                          Let&#x27;s Connect
                  </a>
    </div>
	</div>
</div> 
</section>
<section id="section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="5db65d6a-01e9-4ee3-babf-2748e074a284">
  <script type="text/x-handlebars-template" class="jsIGItem">
    <a href="{{permalink}}" target="_blank" class="ig-feed-item insta-type-{{mediaType}}">
      <div class="ig-feed-item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{^}}{{mediaUrl}}{{/ifEquals}}');"></div>
      <div class="ig-feed-item__info"><div class="ig-feed-item__caption">{{caption}}</div></div>
      {{#ifEquals mediaType 'VIDEO'}}<div class="video-icon"></div>{{/ifEquals}}
    </a> 
</script>
<div class="ig-feed redesign">
  <div class="ig-feed-top lp-container">
    <div class="top-wrapper">
      <div class="top-left">
          <h3 class="lp-h3 title">Follow Me on Instagram</h3>
        <a href="#" target="_blank" class="instagram-link jsIGLink"><h4 class="lp-h4 instagram-name jsIGName"></h4></a>
      </div>
      <div class="top-right">
          <a href="#" target="_blank" class="lp-btn lp-btn--dark lp-btn--outline lp-btn--mob-full-width follow-button jsIGLink button-style-1">Follow Me</a>
        <a class="nav-button top-nav-prev hidden-control button-style-1">
          <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.099 13.25l-5.25-5.775L7.099 1.7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
        </a>
        <a class="nav-button top-nav-next hidden-control button-style-1">
          <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.90137 1.75L7.15137 7.525L1.90137 13.3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
        </a>
      </div>
    </div>
  </div>
  <div class="lp-container ig-feed-container ">
    <div class="ig-feed-feed" data-limit="33">
    </div>
  </div>
  <div class="bottom-controls">
    <a class="bottom-nav-button bottom-nav-prev button-style-1">
      <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.099 13.25l-5.25-5.775L7.099 1.7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
    </a>
    <a class="bottom-nav-button bottom-nav-next button-style-1">
      <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.90137 1.75L7.15137 7.525L1.90137 13.3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
    </a>
  </div>
</div>

</section>

        <div id="modals" class="modals"></div>
        <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="874a9373-949d-4275-b72f-04c2a6ec373b">
            <div class="footer redesign  no_newsletter "> 
    <div class="container">
        <h3>Michael Gardner</h3>
        <div class="info-wrap">
            <div class="info-wrap-contact agent_box">
                <div class="info-wrap-contact_zone type_user">
                    <h4 class="serif">Malibu Real Estate</h4>
                    <div class="info-wrap-contact_cell">
                        <i>
                            <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg">
                                <path d="M2 0C0.903517 0 0 0.903517 0 2V16.6667C0 17.7631 0.903517 18.6667 2 18.6667H28C29.0965 18.6667 30 17.7631 30 16.6667V2C30 0.903517 29.0965 0 28 0H2ZM2.4375 1.33333H27.5625L15.6458 11.4896C15.3389 11.7512 14.6612 11.7512 14.3542 11.4896L2.4375 1.33333ZM1.33333 2.13542L10.1979 9.6979L1.33333 16.5729V2.13542ZM28.6667 2.13542V16.5729L19.8021 9.6979L28.6667 2.13542ZM11.2396 10.5833L13.4896 12.5C14.3543 13.2369 15.6457 13.2369 16.5104 12.5L18.7604 10.5833L27.4687 17.3333H2.53125L11.2396 10.5833Z" fill="#1A1A1A" />
                            </svg>
                        </i>
                        <p class="contact_title">Email</p>
                        <a href="/cdn-cgi/l/email-protection#e08d878192848e8592a0838f8d90819393ce838f8d" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1"><span class="__cf_email__" data-cfemail="dfb2b8beadbbb1baad9fbcb0b2afbeacacf1bcb0b2">[email&#160;protected]</span></a>
                    </div>
                    <div class="info-wrap-contact_cell">
                        <i><svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg">
                        <path fill-rule="evenodd" clip-rule="evenodd" d="M10.7964 8.1207H19.2036V8.7279C19.2036 10.8195 20.9082 12.5259 23.001 12.5259H24.741L25.2852 20.7051C25.3776 22.1235 24.2868 23.2719 22.8822 23.2719H7.0032C5.5944 23.2719 4.5084 22.1085 4.6002 20.7039C4.782 17.9895 4.9152 15.2313 5.154 12.5265H6.9996C9.0918 12.5265 10.797 10.8207 10.797 8.7285V8.1207H10.7964ZM11.46 16.5807C11.46 14.6565 13.0188 13.0977 14.943 13.0977C16.8666 13.0977 18.4254 14.6571 18.4254 16.5807C18.4254 18.5055 16.8678 20.0631 14.943 20.0631C13.02 20.0637 11.46 18.5043 11.46 16.5807ZM14.943 12.0381C12.4344 12.0381 10.4004 14.0721 10.4004 16.5807C10.4004 19.0887 12.435 21.1233 14.943 21.1233C17.4486 21.1233 19.485 19.0869 19.485 16.5807C19.485 14.0727 17.451 12.0381 14.943 12.0381ZM9.0846 4.8363C8.22 4.8363 7.512 5.5443 7.512 6.4089V8.7285C7.512 9.0093 7.2804 9.2415 6.999 9.2415H1.5726C1.2906 9.2415 1.0596 9.0111 1.0596 8.7285V6.9285C1.0596 6.4797 1.1628 6.0945 1.3902 5.7069C1.896 4.8465 2.7294 4.1013 3.795 3.4749C9.279 0.2517 20.7192 0.2523 26.2044 3.4749C27.2706 4.1013 28.104 4.8465 28.6098 5.7069C28.8354 6.0921 28.9398 6.4815 28.9398 6.9285V8.7285C28.9398 9.0111 28.71 9.2415 28.4268 9.2415H23.0004C22.719 9.2415 22.4874 9.0093 22.4874 8.7285V6.4089C22.4874 5.5425 21.7806 4.8363 20.9148 4.8363H9.0846ZM8.571 6.4089C8.571 6.1263 8.8026 5.8965 9.0846 5.8965H20.9154C21.1968 5.8965 21.429 6.1275 21.429 6.4089V8.7285C21.429 9.5943 22.1352 10.3017 23.001 10.3017H28.4274C29.292 10.3017 30 9.5931 30 8.7285V6.9285C30 6.2835 29.8464 5.7291 29.5206 5.1729C28.9188 4.1493 27.9564 3.2799 26.7384 2.5641C20.9214 -0.8547 9.0798 -0.8547 3.2622 2.5641C2.0436 3.2799 1.0812 4.1487 0.48 5.1729C0.153 5.7291 0 6.2835 0 6.9279V8.7279C0 9.5925 0.7092 10.3011 1.5726 10.3011H6.999C7.8648 10.3011 8.571 9.5937 8.571 8.7279V6.4089ZM9.7368 7.5915V8.7285C9.7368 10.2387 8.5092 11.4669 6.999 11.4669H4.6686C4.3914 11.4669 4.164 11.6799 4.1412 11.9511C3.8892 14.8347 3.7386 17.7435 3.5448 20.6331C3.4116 22.6425 4.989 24.3315 7.0032 24.3315H22.8822C24.882 24.3315 26.475 22.6575 26.3406 20.6343L25.7622 11.9607C25.7436 11.6811 25.5102 11.4675 25.2342 11.4675L23.001 11.4663C21.4902 11.4663 20.2632 10.2375 20.2632 8.7279V7.5909C20.2632 7.2981 20.0262 7.0611 19.7334 7.0611H10.2666C9.9738 7.0611 9.7368 7.2987 9.7368 7.5915Z" fill="#1A1A1A" />
                        </svg></i>
                        <p class="contact_title">Phone Number</p>
                        <a href="tel:3106998428" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1">(310) 699-8428</a>
                    </div>
                </div>
                <div class="info-wrap-contact_zone">
                    <div class="info-wrap-contact_cell">
                        <i>
                            <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg">
                                <path d="M29.9821 6.49489C29.7931 6.35756 29.679 6.32046 29.4572 6.39228L20.298 9.41368L16.1952 8.03558L15.8172 9.41525L19.7644 10.7038V28.1462L9.89831 25.7069V22.1034H8.71438V25.7515L1.21616 28.2532V15.3945H0.0322266V29.2729C0.0322266 29.5077 0.130098 29.7279 0.321106 29.8645C0.445418 29.9541 0.585911 29.9999 0.735086 29.9999C0.814804 29.9999 0.890971 29.9868 0.967926 29.96L9.48433 27.029L20.1792 29.7887C20.3224 29.8254 20.4751 29.8171 20.6152 29.7654L29.8104 26.2235C30.0942 26.1177 30.0251 25.8466 30.0251 25.5431V7.08291C30.0251 6.85086 30.17 6.63144 29.9821 6.49489ZM28.8412 25.0388L20.9483 28.0361V10.7065L28.8412 8.08649V25.0388Z" fill="#1A1A1A" />
                                <path d="M6.57515 19.1142C6.6671 19.422 6.95006 19.6323 7.2713 19.6323C7.59215 19.6323 7.87511 19.422 7.96746 19.1142C8.67742 16.7514 10.0393 15.2447 11.3559 13.788C12.9944 11.9747 14.5422 10.2615 14.5422 7.2717C14.5422 3.39788 11.1451 0 7.2713 0C3.39827 0 0 3.39748 0 7.2717C0 10.2615 1.54819 11.9747 3.18674 13.788C4.50328 15.2447 5.86479 16.7514 6.57515 19.1142ZM7.2713 1.45426C10.316 1.45426 13.0883 4.22663 13.0883 7.2717C13.0883 9.70191 11.7852 11.1435 10.2769 12.8121C9.2461 13.9534 8.10992 15.2096 7.2713 16.9199C6.43229 15.2096 5.29651 13.953 4.2657 12.8121C2.75698 11.1432 1.45426 9.70191 1.45426 7.2717C1.45426 4.22663 4.22663 1.45426 7.2713 1.45426Z" fill="#1A1A1A" />
                                <path d="M7.26193 10.1616C8.8705 10.1616 10.1795 8.86084 10.1795 7.26175C10.1795 5.66305 8.87089 4.3623 7.26193 4.3623C5.65297 4.3623 4.34473 5.66305 4.34473 7.26175C4.34512 8.86084 5.65336 10.1616 7.26193 10.1616ZM7.26193 5.81657C8.06898 5.81657 8.72527 6.46536 8.72527 7.26175C8.72527 8.05932 8.06898 8.70733 7.26193 8.70733C6.45528 8.70733 5.79899 8.05893 5.79899 7.26175C5.79899 6.46536 6.45528 5.81657 7.26193 5.81657Z" fill="#1A1A1A" />
                            </svg>
                        </i>
                        <p class="info-wrap-contact_title">Address</p>
                        <p class="info-wrap-contact_link grey-text"><div class="aiAXrc">24903 Pacific Coast Hwy #200</div>
<div class="aiAXrc"><span class="fMYBhe">Malibu, CA 90265</span></div></p>
                    </div>
                </div>
            </div>
        </div>
        <div class="text_footer first_text_footer">
            <div class="images_box">
                <div class="img_size">
                    <img src="https://media-production.lp-cdn.com/media/fcb6e1a1-9029-4ffb-bcd2-8b7881c7b895" alt="Footer Image">
                </div>
            </div>
            <div class="luxury-text">
                <p style="font-size: 14px; font-weight: bold;">CA DRE# 01344290</p>
<p>&nbsp;</p>
<p style="font-size: 12px;">Michael Gardner is a real estate associate broker licensed by the state of California affiliated with Compass. <a class="link" style="font-size: 12px; font-weight: 400;" href="https://www.compass.com/" target="_blank" rel="noopener">Compass</a> is a real estate broker licensed by the state of California and abides by equal housing opportunity laws. All material presented herein is intended for informational purposes only. Information is compiled from sources deemed reliable but is subject to errors, omissions, changes in price, condition, sale, or withdrawal without notice. No statement is made as to accuracy of any description. All measurements and square footages are approximate. This is not intended to solicit property already listed. Nothing herein shall be construed as legal, accounting or other professional advice outside the realm of real estate brokerage.<br><img style="margin-top: 10px;" src="https://media-production.lp-cdn.com/media/1e3e7366-2f84-4983-a238-1f71e32e381e" width="100px;" height="auto;"></p>
            </div>
        </div>
        <div class="text_footer second_text_footer">
            <div class="text_content_wrap">
                <div>
                    <div>&nbsp;</div>
<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style>
                </div>
            </div>
        </div>
        <div class="info-privacy">
          <div class="form-row info-privacy__row">

            <div class="form-col form-col--powered powered-box">
                <div class="powered_zone">
                    Powered by <a href="https://www.luxurypresence.com/" target="_blank" class="lp-link grey-text luxury-link underlined hyperlink-style-1">Luxury Presence</a>
                </div>
            </div>

            <div class="form-col form-col--copyright">
              <div class="copy_zone">
                <span class="copy_words">Copyright &copy;</span> <span class="auto-year-update">2022</span>
                | <a href="/terms-and-conditions" class="lp-link grey-text hyperlink-style-1">Privacy Policy</a>

              </div>
            </div>

            <div class="form-col form-col--socials">
                <ul class="lp-socials social_icons-style-1 socials socials--grey socials_zone">
                
                        <li>
                          <a
                            href="https://www.facebook.com/malibuhomesforsale/	"
                            class="lp-socials__link socials__item socials__link wow fadeInUp"
                            data-wow-delay="0s"
                            target="_blank"
                            aria-label="FACEBOOK"
                          >
                              <span class="lp-i lp-i--facebook" aria-hidden="true"></span>
                          </a>
                        </li>
                        <li>
                          <a
                            href="https://www.instagram.com/maliburealestate/?hl&#x3D;en"
                            class="lp-socials__link socials__item socials__link wow fadeInUp"
                            data-wow-delay="0.1s"
                            target="_blank"
                            aria-label="INSTAGRAM"
                          >
                              <span class="lp-i lp-i--instagram" aria-hidden="true"></span>
                          </a>
                        </li>
                        <li>
                          <a
                            href="https://www.linkedin.com/in/malibure"
                            class="lp-socials__link socials__item socials__link wow fadeInUp"
                            data-wow-delay="0.2s"
                            target="_blank"
                            aria-label="LINKEDIN"
                          >
                              <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
                          </a>
                        </li>
                        <li>
                          <a
                            href="https://www.youtube.com/channel/UC7uFVqshGqwY9WwjGMIPs_A"
                            class="lp-socials__link socials__item socials__link wow fadeInUp"
                            data-wow-delay="0.3s"
                            target="_blank"
                            aria-label="YOUTUBE"
                          >
                              <span class="lp-i lp-i--youtube" aria-hidden="true"></span>
                          </a>
                        </li>
                        <li>
                          <a
                            href="https://www.compass.com/agents/michael-gardner/"
                            class="lp-socials__link socials__item socials__link wow fadeInUp"
                            data-wow-delay="0.4s"
                            target="_blank"
                            aria-label="BROKERAGE"
                          >
                            <svg width="20" height="20" viewBox="0 0 60.14 60"><path d="M29.86 0a30 30 0 00.28 60 30.03 30.03 0 0030-30A30 30 0 0029.86 0zm.28 8a22.03 22.03 0 0122 22 22 22 0 11-22-22zm7.18 9.17l-20 20 5.65 5.66 20-20z" /></svg>
                          </a>
                        </li>
                  </ul>            </div>
          </div>
        </div>
    </div>
</div>

        </footer>

        <div id="modal-global-contact-us" class="modal "
            data-el-id=""
            style="background-color: ;"
            >
            <div class="modal-content">
                <div class="contact-form redesign " style="background-image: url('https://media-production.lp-cdn.com/media/8362bb75-6ed2-4124-ac43-6b805c76ff2d')">
          <div class="container">
              <div class="section-details" style="--colorTxt: #ffffff">
                  <h2>Contact Details</h2>
                  <div class="info-zone">
        
                          <div class="info-zone_contact type_user">
                                <h4 class="serif">Michael Gardner | CA DRE# 01344290</h4>
                                <div class="info-zone_contact_cell">
                                        <i>
                                            <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg">
                                                <path fill-rule="evenodd" clip-rule="evenodd" d="M10.7964 8.1207H19.2036V8.7279C19.2036 10.8195 20.9082 12.5259 23.001 12.5259H24.741L25.2852 20.7051C25.3776 22.1235 24.2868 23.2719 22.8822 23.2719H7.0032C5.5944 23.2719 4.5084 22.1085 4.6002 20.7039C4.782 17.9895 4.9152 15.2313 5.154 12.5265H6.9996C9.0918 12.5265 10.797 10.8207 10.797 8.7285V8.1207H10.7964ZM11.46 16.5807C11.46 14.6565 13.0188 13.0977 14.943 13.0977C16.8666 13.0977 18.4254 14.6571 18.4254 16.5807C18.4254 18.5055 16.8678 20.0631 14.943 20.0631C13.02 20.0637 11.46 18.5043 11.46 16.5807ZM14.943 12.0381C12.4344 12.0381 10.4004 14.0721 10.4004 16.5807C10.4004 19.0887 12.435 21.1233 14.943 21.1233C17.4486 21.1233 19.485 19.0869 19.485 16.5807C19.485 14.0727 17.451 12.0381 14.943 12.0381ZM9.0846 4.8363C8.22 4.8363 7.512 5.5443 7.512 6.4089V8.7285C7.512 9.0093 7.2804 9.2415 6.999 9.2415H1.5726C1.2906 9.2415 1.0596 9.0111 1.0596 8.7285V6.9285C1.0596 6.4797 1.1628 6.0945 1.3902 5.7069C1.896 4.8465 2.7294 4.1013 3.795 3.4749C9.279 0.2517 20.7192 0.2523 26.2044 3.4749C27.2706 4.1013 28.104 4.8465 28.6098 5.7069C28.8354 6.0921 28.9398 6.4815 28.9398 6.9285V8.7285C28.9398 9.0111 28.71 9.2415 28.4268 9.2415H23.0004C22.719 9.2415 22.4874 9.0093 22.4874 8.7285V6.4089C22.4874 5.5425 21.7806 4.8363 20.9148 4.8363H9.0846ZM8.571 6.4089C8.571 6.1263 8.8026 5.8965 9.0846 5.8965H20.9154C21.1968 5.8965 21.429 6.1275 21.429 6.4089V8.7285C21.429 9.5943 22.1352 10.3017 23.001 10.3017H28.4274C29.292 10.3017 30 9.5931 30 8.7285V6.9285C30 6.2835 29.8464 5.7291 29.5206 5.1729C28.9188 4.1493 27.9564 3.2799 26.7384 2.5641C20.9214 -0.8547 9.0798 -0.8547 3.2622 2.5641C2.0436 3.2799 1.0812 4.1487 0.48 5.1729C0.153 5.7291 0 6.2835 0 6.9279V8.7279C0 9.5925 0.7092 10.3011 1.5726 10.3011H6.999C7.8648 10.3011 8.571 9.5937 8.571 8.7279V6.4089ZM9.7368 7.5915V8.7285C9.7368 10.2387 8.5092 11.4669 6.999 11.4669H4.6686C4.3914 11.4669 4.164 11.6799 4.1412 11.9511C3.8892 14.8347 3.7386 17.7435 3.5448 20.6331C3.4116 22.6425 4.989 24.3315 7.0032 24.3315H22.8822C24.882 24.3315 26.475 22.6575 26.3406 20.6343L25.7622 11.9607C25.7436 11.6811 25.5102 11.4675 25.2342 11.4675L23.001 11.4663C21.4902 11.4663 20.2632 10.2375 20.2632 8.7279V7.5909C20.2632 7.2981 20.0262 7.0611 19.7334 7.0611H10.2666C9.9738 7.0611 9.7368 7.2987 9.7368 7.5915Z" fill="#1A1A1A"/>
                                            </svg>
                                        </i>
                                    <p class="contact_title">Phone</p>
                                    <a href="tel:(310) 699-8428" class="lp-link info-zone_contact_link link hyperlink-style-2">(310) 699-8428</a>
                                </div>
                                <div class="info-zone_contact_cell">
                                        <i>
                                            <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg">
                                                <path d="M2 0C0.903517 0 0 0.903517 0 2V16.6667C0 17.7631 0.903517 18.6667 2 18.6667H28C29.0965 18.6667 30 17.7631 30 16.6667V2C30 0.903517 29.0965 0 28 0H2ZM2.4375 1.33333H27.5625L15.6458 11.4896C15.3389 11.7512 14.6612 11.7512 14.3542 11.4896L2.4375 1.33333ZM1.33333 2.13542L10.1979 9.6979L1.33333 16.5729V2.13542ZM28.6667 2.13542V16.5729L19.8021 9.6979L28.6667 2.13542ZM11.2396 10.5833L13.4896 12.5C14.3543 13.2369 15.6457 13.2369 16.5104 12.5L18.7604 10.5833L27.4687 17.3333H2.53125L11.2396 10.5833Z" fill="#1A1A1A"/>
                                            </svg>
                                        </i>
                                    <p class="contact_title">Email</p>
                                    <a href="/cdn-cgi/l/email-protection#7e13191f0c1a101b0c3e1d11130e1f0d0d501d1113" class="lp-link info-zone_contact_link link hyperlink-style-2"><span class="__cf_email__" data-cfemail="e78a80869583898295a784888a97869494c984888a">[email&#160;protected]</span></a>
                                </div>
                          </div>
                          <div class="info-zone_contact">
                                <div class="info-zone_contact_cell">
                                        <i>
                                            <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg">
                                                <path d="M29.9821 6.49489C29.7931 6.35756 29.679 6.32046 29.4572 6.39228L20.298 9.41368L16.1952 8.03558L15.8172 9.41525L19.7644 10.7038V28.1462L9.89831 25.7069V22.1034H8.71438V25.7515L1.21616 28.2532V15.3945H0.0322266V29.2729C0.0322266 29.5077 0.130098 29.7279 0.321106 29.8645C0.445418 29.9541 0.585911 29.9999 0.735086 29.9999C0.814804 29.9999 0.890971 29.9868 0.967926 29.96L9.48433 27.029L20.1792 29.7887C20.3224 29.8254 20.4751 29.8171 20.6152 29.7654L29.8104 26.2235C30.0942 26.1177 30.0251 25.8466 30.0251 25.5431V7.08291C30.0251 6.85086 30.17 6.63144 29.9821 6.49489ZM28.8412 25.0388L20.9483 28.0361V10.7065L28.8412 8.08649V25.0388Z" fill="#1A1A1A"/>
                                                <path d="M6.57515 19.1142C6.6671 19.422 6.95006 19.6323 7.2713 19.6323C7.59215 19.6323 7.87511 19.422 7.96746 19.1142C8.67742 16.7514 10.0393 15.2447 11.3559 13.788C12.9944 11.9747 14.5422 10.2615 14.5422 7.2717C14.5422 3.39788 11.1451 0 7.2713 0C3.39827 0 0 3.39748 0 7.2717C0 10.2615 1.54819 11.9747 3.18674 13.788C4.50328 15.2447 5.86479 16.7514 6.57515 19.1142ZM7.2713 1.45426C10.316 1.45426 13.0883 4.22663 13.0883 7.2717C13.0883 9.70191 11.7852 11.1435 10.2769 12.8121C9.2461 13.9534 8.10992 15.2096 7.2713 16.9199C6.43229 15.2096 5.29651 13.953 4.2657 12.8121C2.75698 11.1432 1.45426 9.70191 1.45426 7.2717C1.45426 4.22663 4.22663 1.45426 7.2713 1.45426Z" fill="#1A1A1A"/>
                                                <path d="M7.26193 10.1616C8.8705 10.1616 10.1795 8.86084 10.1795 7.26175C10.1795 5.66305 8.87089 4.3623 7.26193 4.3623C5.65297 4.3623 4.34473 5.66305 4.34473 7.26175C4.34512 8.86084 5.65336 10.1616 7.26193 10.1616ZM7.26193 5.81657C8.06898 5.81657 8.72527 6.46536 8.72527 7.26175C8.72527 8.05932 8.06898 8.70733 7.26193 8.70733C6.45528 8.70733 5.79899 8.05893 5.79899 7.26175C5.79899 6.46536 6.45528 5.81657 7.26193 5.81657Z" fill="#1A1A1A"/>
                                            </svg>
                                        </i>
                                    <p class="info-wrap-contact_title">Address</p>
                                    <p class="info-zone_contact_link pre-line">24903 Pacific Coast Hwy #200
        Malibu, CA 90265</p>
                                </div>
                          </div>
                        <div class="info-zone_contact">
                            <div class="info-zone_contact_cell">
                                <p class="pre-line"><div></div><style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></p>
                            </div>
                        </div>
                        <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone footer__contact-column">
                        
                                <li>
                                  <a
                                    href="https://www.facebook.com/malibuhomesforsale/	"
                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
                                    data-wow-delay="0s"
                                    target="_blank"
                                    aria-label="FACEBOOK"
                                  >
                                      <span class="lp-i lp-i--facebook" aria-hidden="true"></span>
                                  </a>
                                </li>
                                <li>
                                  <a
                                    href="https://www.instagram.com/maliburealestate/?hl&#x3D;en"
                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
                                    data-wow-delay="0.1s"
                                    target="_blank"
                                    aria-label="INSTAGRAM"
                                  >
                                      <span class="lp-i lp-i--instagram" aria-hidden="true"></span>
                                  </a>
                                </li>
                                <li>
                                  <a
                                    href="https://www.linkedin.com/in/malibure"
                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
                                    data-wow-delay="0.2s"
                                    target="_blank"
                                    aria-label="LINKEDIN"
                                  >
                                      <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
                                  </a>
                                </li>
                                <li>
                                  <a
                                    href="https://www.youtube.com/channel/UC7uFVqshGqwY9WwjGMIPs_A"
                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
                                    data-wow-delay="0.3s"
                                    target="_blank"
                                    aria-label="YOUTUBE"
                                  >
                                      <span class="lp-i lp-i--youtube" aria-hidden="true"></span>
                                  </a>
                                </li>
                                <li>
                                  <a
                                    href="https://www.compass.com/agents/michael-gardner/"
                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
                                    data-wow-delay="0.4s"
                                    target="_blank"
                                    aria-label="BROKERAGE"
                                  >
                                    <svg width="20" height="20" viewBox="0 0 60.14 60"><path d="M29.86 0a30 30 0 00.28 60 30.03 30.03 0 0030-30A30 30 0 0029.86 0zm.28 8a22.03 22.03 0 0122 22 22 22 0 11-22-22zm7.18 9.17l-20 20 5.65 5.66 20-20z" /></svg>
                                  </a>
                                </li>
                          </ul>          </div>
              </div>
              <div class="section-message">
                  <form data-type="contact-form">
                      <h2>Submit a Message</h2>
                       <div class="h-pot">
                        <label for="-middleName">Middle Name</label>
                        <input id="-middleName" name="middleName" value="" autocomplete="off" tabindex="-1">
                      </div>
        
        
                      <div class="lp-input-group">
                          <label for="prod-name" class="lp-label">Name</label>
                          <input id="prod-name" name="name" value="" required="" class="lp-input lp-input--light">
                      </div>
                      <div class="lp-input-group">
                          <label for="prod-email" class="lp-label">Email</label>
                          <input id="prod-email" type="email" name="email" value="" required="" class="lp-input lp-input--light">
                      </div>
                      <div class="lp-input-group">
                          <label for="prod-phone" class="lp-label">Phone</label>
                          <input id="prod-phone" type="tel" name="phoneNumber" value="" required="" class="lp-input lp-input--light">
                      </div>
                      <div class="lp-input-group m16">
                          <label for="prod-message" class="lp-label">Message</label>
                          <textarea id="prod-message" name="message" value="" required="" class="lp-input"></textarea>
                      </div>
        
                      <div class="lp-disclaimer">  <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label>
          <label class='lp-tcr-content'>
            <span class='lp-tcr-checkbox'>
              <input
                type='checkbox'
                id='-termsAccepted'
                name='termsAccepted'
                oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
                oninput="this.setCustomValidity('')"
                required
              /></span>
            <span class='lp-tcr-message'>
              
                I agree to be contacted by
                Michael Gardner
                via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance.
                You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary.
                <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>.
            </span>
          </label>
        
        </div>
                      
                      <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" />
                      
                      
                      <button type="submit" class="submitButton lp-btn button-style-2">
                          <span class="label-initial">Submit</span>
                          <span class="label-loading">Submitting</span>
                          <span class="label-success">Submitted</span>
                          <span class="submit-icon lp-i lp-i--circle-notch lp-i--spin"></span>
                      </button>
                      <p class="success-message success hide">
                        Message sent successfully!
                      </p>
                  </form>
                  
                  
              </div>
          </div>
        </div>
        
            </div>
            <button class="close lp-close" type="button" aria-label="close modal">
                <span class="lp-close-icon" aria-hidden="true"></span>
            </button>
        </div>
        <div id="qualifying-questions-modal" tabindex="-1" role="dialog" aria-modal="true" aria-labelledby="qualifying-questions-modal-title" aria-hidden="true" style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1050; display: none; align-items: center; justify-content: center;">
          <style>
            #qualifying-questions-modal .custom-select-toggle {
              border: 1px solid #848484;
              border-radius: 8px;
              padding: 12px 16px;
            }
        
            #qualifying-questions-modal .custom-select-toggle.is-placeholder {
              color: #848484;
            }
        
            #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder {
              color: #848484;
              opacity: 1;
            }
        
            #qualifying-questions-modal .disclaimer-more {
              display: none;
            }
        
            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more {
              display: inline;
            }
        
            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis {
              display: none;
            }
          </style>
          <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
            function toggleDisclaimerQualifyingQuestionsModal() {
              const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text');
              const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer');
        
              if (disclaimerText.classList.contains('collapsed')) {
                disclaimerText.classList.remove('collapsed');
                toggleButton.textContent = 'Read less';
                toggleButton.setAttribute('aria-expanded', 'true');
              } else {
                disclaimerText.classList.add('collapsed');
                toggleButton.textContent = 'Read more';
                toggleButton.setAttribute('aria-expanded', 'false');
              }
            }
          </script>
          <div style="max-width: 400px; width: 95%; margin: 0 auto;">
            <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;">
              <button type="button" data-dismiss="modal" aria-label="Close" style="position: absolute; right: 20px; top: 10px; font-size: 28px; font-weight: 300; color: black; opacity: 1; background: none; border: none; padding: 0; width: auto; height: auto; cursor: pointer; z-index: 10;">
                <span aria-hidden="true">&times;</span>
              </button>
              <div style="padding: 40px 30px 32px;">
                <div style="text-align: left; margin-bottom: 32px;">
                  <h2 id="qualifying-questions-modal-title" style="margin: 0; color: #333; font-size: 18px; line-height: 1.4; text-transform: uppercase; letter-spacing: 0.5px; font-weight: normal;">
                    Thanks, please provide more information to help serve you
                  </h2>
                </div>
                <form id="qualifying-questions-modal-form" data-type="contact-form">
                  <input type="hidden" name="source" value="PROFILE_UPDATE" />
                  <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" />
                  <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" />
                  <label for="qualifying-questions-modal-email" style="display:none;">
                    Email
                  </label>
                  <label for="qualifying-questions-modal-triggerSource" style="display:none;">
                    Trigger Source
                  </label>
        
                  <div style="margin-bottom: 20px;">
                    <label for="qualifying-questions-modal-phoneNumber" style="display:none;">
                      Phone Number
                    </label>
                    <input
                      type="tel"
                      id="qualifying-questions-modal-phoneNumber"
                      name="phoneNumber"
                      style="padding: 12px 16px; font-size: 16px; border: 1px solid #848484; border-radius: 8px; background: transparent; color: black; width: 100%; box-sizing: border-box; outline: none;"
                      pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$"
                      required
                      placeholder="Phone"
                      aria-label="Phone Number"
                      inputmode="tel"
                      autocomplete="tel"
                      onfocus="this.style.borderColor='black';"
                      onblur="this.style.borderColor='#848484';"
                    />
                  </div>
        
                  <div style="margin-bottom: 20px;">
                    <label for="qualifying-questions-modal-interest" style="display:none;">
                      Interest
                    </label>
                    <select
                      id="qualifying-questions-modal-interest"
                      name="interest"
                      required
                      data-label="Interest"
                      aria-label="Interest"
                      style="padding: 12px 16px; font-size: 16px; border: 1px solid #848484; border-radius: 8px; background: #fff; color: #848484; width: 100%; box-sizing: border-box; outline: none; appearance: none; -webkit-appearance: none; -moz-appearance: none; background-image: url('data:image/svg+xml;charset=utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 16 16%22%3E%3Cpath fill=%22%23666%22 d=%22M4.427 7.427l3.396 3.396a.25.25 0 00.354 0l3.396-3.396A.25.25 0 0011.396 7H4.604a.25.25 0 00-.177.427z%22/%3E%3C/svg%3E'); background-repeat: no-repeat; background-position: right 16px center; background-size: 16px;"
                      onfocus="this.style.borderColor='black'; this.style.color='black';"
                      onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';"
                    >
                      <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option>
                      <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option>
                      <option value="Selling" style="background: #fff; color: black;">Selling</option>
                      <option value="Buying" style="background: #fff; color: black;">Buying</option>
                      <option value="Renting" style="background: #fff; color: black;">Renting</option>
                      <option value="Other" style="background: #fff; color: black;">Other</option>
                    </select>
                  </div>
        
                  <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;">
                    <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label>
                    <label class='lp-tcr-content'>
                      <span class='lp-tcr-checkbox'>
                        <input
                          type='checkbox'
                          id='qualifying-questions-modal-qualifying-questions-termsAccepted'
                          name='termsAccepted'
                          aria-describedby='qualifying-questions-modal-disclaimer-text'
                          oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
                          oninput="this.setCustomValidity('')"
                          required
                        /></span>
                      <span class='lp-tcr-message'>
                        <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;">
                          
                            I agree to be contacted by
                            <strong>Michael Gardner</strong>
                            via call, email, and text <span class="disclaimer-more">for real estate services. 
                            To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 
                            You can also click the unsubscribe link in the emails. 
                            Message and data rates may apply. Message frequency may vary.</span>
                            <span class="disclaimer-ellipsis">...</span>
                            <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>.
                        </div>
                        <button
                          id="qualifying-questions-modal-toggle-disclaimer"
                          type="button"
                          style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;"
                          aria-expanded="false"
                          onclick="toggleDisclaimerQualifyingQuestionsModal()"
                        >
                          Read more
                        </button>
                      </span>
                    </label>
                  </div>
        
                  <div>
                    <button
                      type="submit"
                      style="padding: 12px 24px; font-size: 16px; font-weight: normal; border-radius: 8px; border: 1px solid black; background: black; color: white; width: 100%; cursor: pointer; transition: all 0.2s ease; text-transform: uppercase; letter-spacing: 0.5px;"
                      onmouseover="this.style.background='transparent'; this.style.color='black';"
                      onmouseout="this.style.background='black'; this.style.color='white';"
                    >
                      Submit
                    </button>
                  </div>
                </form>
              </div>
            </div>
          </div>
        </div>

    <script>
        (function() {
        var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy"));

        if ("IntersectionObserver" in window && lazyVideos.length > 0) {
            var lazyVideoObserver = new IntersectionObserver(function(entries, observer) {
            entries.forEach(function(video) {
                if (video.isIntersecting) {
                for (var source in video.target.children) {
                    var videoSource = video.target.children[source];
                    if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") {
                    videoSource.src = videoSource.dataset.src;
                    }
                }

                video.target.load();
                video.target.classList.remove("lazy");
                lazyVideoObserver.unobserve(video.target);
                }
            });
            });

            lazyVideos.forEach(function(lazyVideo) {
                lazyVideoObserver.observe(lazyVideo);
            });
        }
        })();
    </script>

        <!-- Global site tag (gtag.js) - Google Analytics -->
        <script defer src="https://www.googletagmanager.com/gtag/js"></script>

            <!-- Google Tag Manager -->
            <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
                new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
                j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src=
                'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
            })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
            <!-- End Google Tag Manager -->


        <!-- LP Tracker (divolte.js) - LP Divolte -->
            <script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
        <!-- LP Tracker (eventBus) - LP EventBus -->
            <script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>

    <script>
        window.dataLayer = window.dataLayer || [];
        document.sendGoogleTagManagerEvent = function() {
            /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */
            if (window.navigator.globalPrivacyControl) {
                return;
            }

            dataLayer.push(arguments);
        }

        document.sendGoogleTagManagerEvent('js', new Date());
            document.sendGoogleTagManagerEvent('config', 'UA-224748920-24', { page: location.pathname, location: location.href });
            document.sendGoogleTagManagerEvent('config', 'G-K25VN1GYQR', { page: location.pathname, location: location.href });
        document.sendGoogleAnalyticsEvent = function(googleEvent) {
            document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, {
                event_category: googleEvent.eventCategory,
                event_label: googleEvent.eventLabel,
                value: googleEvent.eventValue,
                page: googleEvent.page,
                location: googleEvent.location
            })
        };

        document.addEventListener("DOMContentLoaded", function() {
            (function() {
                //If the page has an element with ID of auto-year-update the element will be populated with the current year.
                var date = new Date();
                var elements = document.getElementsByClassName('auto-year-update');
                var i;
                for (i = 0; i < elements.length; i++) {
                    elements[i].innerText = date.getFullYear();
                }
            })();
            if (window.divolteLp) {
                window.divolteLp('sendLpPageView', {});
            }
            if (window.eventBusLp) {
                window.eventBusLp('sendLpPageView', {});
            }
        });
    </script>


    <script>
    // Function to dynamically load a script
    function loadScript(url, callback) {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = url;
        script.defer = true;
        script.async = true;
        script.onload = callback;
        document.head.appendChild(script);
    }

    // Function to dynamically load CSS file
    function loadCSS(url) {
        var link = document.createElement("link");
        link.rel = "stylesheet";
        link.href = url;
        document.head.appendChild(link);
    }

    // Global methods / variables that can be accessed by element js
    window.luxuryPresence = {
        libs: {
            loadJs: loadScript,
            loadCss: loadCSS,
            jsLibsMap: {
                paroller: {
                    jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js',
                    isLoaded: false,
                },
                ionRangeSlider: {
                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js',
                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css',
                    isLoaded: false,
                    requires: ['jquery'],
                },
                splide: {
                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js',
                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css',
                    isLoaded: false,
                },
                wow: {
                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js',
                    isLoaded: false,
                },
                jquery: {
                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js',
                    isLoaded: false,
                },
                slick: {
                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js',
                    isLoaded: false,
                    requires: ['jquery'],
                },
                libphonenumber: {
                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js',
                    isLoaded: false,
                },
            },
        },
    };
    </script>
    <script defer src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer" onload="window.luxuryPresence.libs.jsLibsMap.jquery.isLoaded = true"></script>
    <script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
    <script defer src="https://cdn.jsdelivr.net/npm/handlebars-intl@1.1.2/dist/handlebars-intl.min.js"></script>
    <script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
    <script defer src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js" onload="window.luxuryPresence.libs.jsLibsMap.slick.isLoaded = true"></script>
    <script defer src="https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js" onload="window.luxuryPresence.libs.jsLibsMap.wow.isLoaded = true"></script>
    <script defer src="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js" onload="window.luxuryPresence.libs.jsLibsMap.ionRangeSlider.isLoaded = true"></script>

    <!-- GOOGLE TRANSLATE SCRIPT -->
    <script>
        function googleTranslateElementInit() {
            // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'`
            // Language codes can be taken from here https://cloud.google.com/translate/docs/languages
            const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt';
            document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){
                translate.innerText = '';
                new google.translate.TranslateElement({
                    pageLanguage: 'en',
                    layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
                    includedLanguages: window.customLanguages || DEFAULT_LANGUAGES,
                }, translate);
            });
        }
    </script>
    <script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
            <script defer src="https://accounts.google.com/gsi/intermediate"></script>

    <!-- GOOGLE TRANSLATE SCRIPT END-->
    <script>

        // UI helpers
        (function () {

            function getSideMenu () {
                return document.querySelector('body > div.sidemenu');
            }

            function sideMenuHide (instant) {
                var sideMenu = getSideMenu();
                if (!sideMenu || !sideMenu.classList.contains('visible')) {
                  return;
                }
                sideMenu.classList.remove('visible');
                sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } }));
                window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} }));
            }

            function sideMenuShow () {
                var sideMenu = getSideMenu();
                if (!sideMenu || sideMenu.classList.contains('visible')) {
                  return;
                }
                sideMenu.classList.add('visible');
                sideMenu.dispatchEvent(new Event('lpui-show'));
                window.dispatchEvent(new Event('lpui-sidemenu-show'));
            }

            function sideMenuToggle () {
                var sideMenu = getSideMenu();
                if (!sideMenu) {
                  return;
                }
                var isSideMenuVisible = sideMenu.classList.contains('visible');
                if (isSideMenuVisible) {
                    sideMenuHide();
                } else {
                    sideMenuShow();
                }
            }

            var scrollLockRequests = {};
            window.__debug_scrollLockRequests = scrollLockRequests;
            var hideScrollStyles = ''+
                    'body {'+
                    'overflow: hidden;' +
                    '}';
            var hideScrollId = 'hide-body-scroll-style';

            function scrollLock () {
                var style = document.createElement('style');
                style.id = hideScrollId;
                style.textContent = hideScrollStyles;
                document.head.appendChild(style);
                window.dispatchEvent(new Event('lpui-scroll-locked'));
            }

            function scrollUnlock () {
                document.getElementById(hideScrollId)?.remove();
                window.dispatchEvent(new Event('lpui-scroll-unlocked'));
            }

            function requestScrollLock (lockId) {
                var wasLocked = Object.keys(scrollLockRequests).length > 0;
                scrollLockRequests[lockId || '__anonymous_lock'] = true;
                if (!wasLocked) {
                    scrollLock();
                }
            }

            function releaseScrollLock (lockId) {
                if (lockId) {
                    delete scrollLockRequests[lockId];
                    if (!Object.keys(scrollLockRequests).length) {
                        scrollUnlock();
                    }
                } else {
                    scrollLockRequests = {};
                    window.__debug_scrollLockRequests = scrollLockRequests;
                    scrollUnlock();
                }
            }

            function showModal (modalId, options) {
                var modal = document.getElementById(modalId);
                if (!modal) {
                    return;
                }

                if (!modal.classList.contains('visible')) {
                    modal.classList.add('visible');
                    if (options && options.scrollLock) {
                        window.lpUI.requestScrollLock(modalId);
                    }
                    modal.dispatchEvent(new Event('lpui-show'));
                    window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } }));
                }

                const visibleModals = document.querySelectorAll('.modal.visible');

                if (visibleModals.length > 1) {

                    const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => {
                        const zIndex = window.getComputedStyle(modal).zIndex;
                        const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0;
                        return Math.max(maxZIndex, parsedZIndex);
                    }, 0);

                    modal.style.zIndex = maxZIndex + 1;
                }

            }

            function _hideModal (modalEl) {
                if (!modalEl) {
                    return;
                }
                if (!modalEl.classList.contains('visible')) {
                    return;
                }
                modalEl.classList.remove('visible');
                modalEl.style.zIndex = '';
                modalEl.dispatchEvent(new Event('lpui-hide'));
                var modalId = modalEl.getAttribute('id');
                if (modalId) {
                    window.lpUI.releaseScrollLock(modalId);
                    window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } }));
                }
            }

            function hideModal (modalId) {
                _hideModal(document.getElementById(modalId));
            }

            function hideClosestModal (el) {
              const modal = el?.closest('.modal');
              if (!modal) {
                return;
              }
              if (modal.classList) {
                _hideModal(modal);
                return;
              }
              if (modal.length && modal[0].classList) {
                _hideModal(modal[0]);
              }
            }

            window.lpUI = {
                sideMenuHide: sideMenuHide,
                sideMenuShow: sideMenuShow,
                sideMenuToggle: sideMenuToggle,
                requestScrollLock: requestScrollLock,
                releaseScrollLock: releaseScrollLock,
                showModal: showModal,
                hideModal: hideModal,
                hideClosestModal: hideClosestModal
            }
        })();

        var stringifyPrimitive = function(v) {
            switch (typeof v) {
                case 'string':
                    return v;

                case 'boolean':
                    return v ? 'true' : 'false';

                case 'number':
                    return isFinite(v) ? v : '';

                default:
                    return '';
            }
        };

        function objectToQuerystring(obj, sep, eq, name) {
            // https://github.com/Gozala/querystring/blob/master/encode.js
            sep = sep || '&';
            eq = eq || '=';
            if (obj === null) {
                obj = undefined;
            }

            if (typeof obj === 'object') {
                return Object.keys(obj).map(function(k) {
                    var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
                    if (Array.isArray(obj[k])) {
                        return obj[k].map(function(v) {
                            return ks + encodeURIComponent(stringifyPrimitive(v));
                        }).join(sep);
                    } else {
                        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
                    }
                }).filter(Boolean).join(sep);

            }

            if (!name) return '';
            return encodeURIComponent(stringifyPrimitive(name)) + eq +
                    encodeURIComponent(stringifyPrimitive(obj));
        }

        function getPath(url, options) {
            var parser = document.createElement('a');
            parser.href = url || '';
            var path = parser.pathname || '';
            if (path[0] !== '/') {
              // IE does not return path starting with a slash
              path = '/' + path;
            }

            if (options && options.queryString) {
                path += parser.search;
            }

            return path;
        }

        function getMLSAutocomplete(keyword) {
            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';
            var query = {
                kind: 'listings',
                query: keyword
            };

            return superagent
                .get(searchURL)
                .query(query)
                .then(function(res) {
                    var data = res.body || [];
                    /*
                        Of the format:
                          [{
                            "_index": "listing_auto_completes_production_20190723232720775",
                            "_type": "listing_auto_complete",
                            "_id": "235875624",
                            "_score": 0,
                            "status_modified_at": 1553250708,
                            "city": "Jupiter",
                            "price": 1335743,
                            "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478",
                            "sold_price": null,
                            "id": 235875624,
                            "state": "FL",
                            "photo_urls": [
                              "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg"
                            ],
                            "status": "Pending"
                          }, ...]
                      */

                    return data;
                });
        }

        function getMLSAutocompleteWithFilters(keyword, filters = {}) {
            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';

            return superagent
                .get(searchURL)
                .query({ kind: 'listings', query: keyword, ...filters })
                .then(function(res) {
                    /*
                        Of the format:
                          [{
                            "_index": "listing_auto_completes_production_20190723232720775",
                            "_type": "listing_auto_complete",
                            "_id": "235875624",
                            "_score": 0,
                            "status_modified_at": 1553250708,
                            "city": "Jupiter",
                            "price": 1335743,
                            "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478",
                            "sold_price": null,
                            "id": 235875624,
                            "state": "FL",
                            "photo_urls": [
                              "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg"
                            ],
                            "status": "Pending"
                          }, ...]
                    */
                    return res.body || [];
                });
        }

        function makeMlsLink(data) {
            // Code Dupe from utils/googlePlace
            // mapping of google data type to mls data type
            var mapping = {
                neighborhood: 'neighborhood',
                locality: 'place',
                administrative_area_level_2: 'county',
                administrative_area_level_1: 'state',
                postal_code: 'postalcode',
            };

            function _filterTypes(types) {
                return types.filter(function(type) { return type !== 'political' });
            }

            if (!data || !Object.keys(data).length) {
                return '/home-search/listings';
            }

            var newData = {};
            _filterTypes(data.types).forEach(function(type) {
                if (mapping[type]) {
                    newData.search_type = mapping[type];
                }
            });
            newData.omnibox = data.formatted_address;
            data.address_components.forEach(function(component) {
                _filterTypes(component.types).forEach(function(type) {
                    if (mapping[type]) {
                        newData[mapping[type]] = component.long_name;
                    }
                });
            });
            var bounds = data.geometry.bounds;
            var convertedData = Object.assign(bounds, newData);

            return '/home-search/listings?' + objectToQuerystring(convertedData);
        }

        function debounce(func, wait) {
            let timeout;
            return function(...args) {
                const context = this;
                clearTimeout(timeout);
                timeout = setTimeout(() => func.apply(context, args), wait)
            }
        }

        // Global methods / variables that can be accessed by element js
        window.luxuryPresence = {
            ...window.luxuryPresence,
            defaults: {
                companyId: 'd35b9bef-9a0c-4a53-9f1b-87c4123830dd',
                apiGatewayUrl: '/api-gw',
                routerUrl: '/api-nv',
                gql: {"agents":"\n  query Agents (\n    $agentId: ID\n    $agentIds: [ID!]\n    $companyId: String\n    $network: Boolean\n    $networkId: String\n    $officeId: [ID!]\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: SortDirectionEnum\n    $search: String\n    $tags: [String]\n    $tagsMode: TagsModeEnum\n    $teamId: [ID!]\n    $developmentId: [ID!]\n    $prioritizeIds: Boolean\n  ) {\n    agents (\n      agentId: $agentId\n      agentIds: $agentIds\n      companyId: $companyId\n      network: $network\n      networkId: $networkId\n      officeId: $officeId\n      offset: $offset\n      limit: $limit\n      sort: $sort\n      sortDir: $sortDir\n      search: $search\n      tags: $tags\n      tagsMode: $tagsMode\n      teamId: $teamId\n      developmentId: $developmentId\n      prioritizeIds: $prioritizeIds\n    ) {\n      id\n      firstName\n      lastName\n      avatar {\n        smallUrl\n        mediumUrl\n        largeUrl\n        height\n        width\n      }\n      position\n      bioLong\n      bioShort\n      seoTitle\n      seoDescription\n      slug\n      phoneNumber\n      phoneNumber2\n      license\n      email\n      leadAgent\n      greaterArea\n      tags\n    }\n    agentsCount(\n      agentIds: $agentIds\n      companyId: $companyId\n      network: $network\n      networkId: $networkId\n      officeId: $officeId\n      search: $search\n      tags: $tags\n      tagsMode: $tagsMode\n      teamId: $teamId\n      developmentId: $developmentId\n      prioritizeIds: $prioritizeIds\n    ) {\n      count\n    }\n  }\n","properties":"\n  query Properties(\n    $agentIds: [ID!]\n    $teamIds: [ID!]\n    $neighborhoodIds: [ID!]\n    $officeIds: [ID!]\n    $propertyId: ID\n    $companyId: String\n    $networkId: String\n    $network: Boolean\n    $statusId: String\n    $propertyIds: [ID!]\n    $prioritizeIds: Boolean\n    $statusIds: [String!]\n    $excludeStatusId: [String!]\n    $neighborhoodId: String\n    $addressState: [String!]\n    $addressCity: [String!]\n    $relatedNeighborhoodPropertyId: String\n    $developmentId: String\n    $featuredListing: Boolean\n    $leaseProperty: Boolean\n    $search: String\n    $searchTermMode: SearchTermModeEnum\n    $globalProperty: Boolean\n    $archived: Boolean\n    $salesPriceGTE: Float\n    $salesPriceLTE: Float\n    $leasePriceGTE: Float\n    $leasePriceLTE: Float\n    $livingSpaceSizeGTE: Float\n    $livingSpaceSizeLTE: Float\n    $bathCountGTE: Float\n    $bathCountLTE: Float\n    $bedroomCountGTE: Float\n    $bedroomCountLTE: Float\n    $architectureStyle: String\n    $lifestyle: String\n    $propertyTypeId: String\n    $propertyTypeIds: [String!]\n    $spaceTypeIds: [ID!]\n    $tag: String\n    $backfillMLSResults: Boolean\n    $displayMLSListings: String\n    $hostname: String\n    $websiteId: ID\n    $backfillProviders: [String!]\n    $backfillMLSListingIds: [String!]\n    $backfillMLSAgentIds: [String!]\n    $backfillMLSOfficeIds: [String!]\n    $backfillBoundary: JSON\n    $openHouse: Boolean\n    $withGeo: Boolean\n    $advancedFilters: JSON\n    $seasonalPriceId: ID\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: SortDirectionEnum\n  ) {\n    properties(\n      \n      agentIds: $agentIds\n      teamIds: $teamIds\n      propertyId: $propertyId\n      propertyIds: $propertyIds\n      prioritizeIds: $prioritizeIds\n      companyId: $companyId\n      network: $network\n      networkId: $networkId\n      statusId: $statusId\n      statusIds: $statusIds\n      excludeStatusId: $excludeStatusId\n      neighborhoodId: $neighborhoodId\n      neighborhoodIds: $neighborhoodIds\n      officeIds: $officeIds\n      addressState: $addressState\n      addressCity: $addressCity\n      developmentId: $developmentId\n      featuredListing: $featuredListing\n      leaseProperty: $leaseProperty\n      search: $search\n      searchTermMode: $searchTermMode\n      salesPriceGTE: $salesPriceGTE\n      salesPriceLTE: $salesPriceLTE\n      leasePriceGTE: $leasePriceGTE\n      leasePriceLTE: $leasePriceLTE\n      livingSpaceSizeGTE: $livingSpaceSizeGTE\n      livingSpaceSizeLTE: $livingSpaceSizeLTE\n      bathCountGTE: $bathCountGTE\n      bathCountLTE: $bathCountLTE\n      bedroomCountGTE: $bedroomCountGTE\n      bedroomCountLTE: $bedroomCountLTE\n      architectureStyle: $architectureStyle\n      lifestyle: $lifestyle\n      propertyTypeId: $propertyTypeId\n      propertyTypeIds: $propertyTypeIds\n      spaceTypeIds: $spaceTypeIds\n      tag: $tag\n      archived: $archived\n      globalProperty: $globalProperty\n      withGeo: $withGeo\n      openHouse: $openHouse\n      displayMLSListings: $displayMLSListings\n      advancedFilters: $advancedFilters\n      seasonalPriceId: $seasonalPriceId\n\n      relatedNeighborhoodPropertyId: $relatedNeighborhoodPropertyId\n      backfillMLSResults: $backfillMLSResults\n      hostname: $hostname\n      websiteId: $websiteId\n      backfillProviders: $backfillProviders\n      backfillMLSListingIds: $backfillMLSListingIds\n      backfillMLSAgentIds: $backfillMLSAgentIds\n      backfillMLSOfficeIds: $backfillMLSOfficeIds\n      backfillBoundary: $backfillBoundary\n      offset: $offset\n      limit: $limit\n      sort: $sort,\n      sortDir: $sortDir\n    ){\n      id\n      name\n      status\n      salesPrice\n      reducedPrice\n      isPasswordProtected\n      bedroomCount\n      bathCount\n      fullBathCount\n      halfBathCount\n      threeQuarterBathCount\n      fullAddress\n      addressLine1\n      addressLine2\n      addressCity\n      addressState\n      addressCountry\n      postalCode\n      description\n      syncedAt\n      officeName\n      attributionContact\n      neighborhood {\n        id\n      }\n      media {\n        smallUrl\n        mediumUrl\n        largeUrl\n        xLargeUrl\n        xxLargeUrl\n        height\n        width\n      }\n      seoTitle\n      seoDescription\n      slug\n      fromMLS\n      mlsId\n      mlsLogo\n      mlsAttribution\n      openHouse\n      openHouseHours\n      priceUponRequest\n      privateAddress\n      leaseProperty\n      leasePrice\n      currency\n      leaseTermFrequencyInterval\n      leaseTermFrequencyCount\n      leasePeriod\n      livingSpaceSize\n      livingSpaceUnits\n      lotAreaSize\n      lotAreaUnits\n      tags\n      latitude\n      longitude\n      timeZone\n      buyerAgencyCompensation\n      buyerAgencyCompensationType\n      landIdUrl\n    }\n    propertiesCount(\n    \n      agentIds: $agentIds\n      teamIds: $teamIds\n      propertyId: $propertyId\n      propertyIds: $propertyIds\n      prioritizeIds: $prioritizeIds\n      companyId: $companyId\n      network: $network\n      networkId: $networkId\n      statusId: $statusId\n      statusIds: $statusIds\n      excludeStatusId: $excludeStatusId\n      neighborhoodId: $neighborhoodId\n      neighborhoodIds: $neighborhoodIds\n      officeIds: $officeIds\n      addressState: $addressState\n      addressCity: $addressCity\n      developmentId: $developmentId\n      featuredListing: $featuredListing\n      leaseProperty: $leaseProperty\n      search: $search\n      searchTermMode: $searchTermMode\n      salesPriceGTE: $salesPriceGTE\n      salesPriceLTE: $salesPriceLTE\n      leasePriceGTE: $leasePriceGTE\n      leasePriceLTE: $leasePriceLTE\n      livingSpaceSizeGTE: $livingSpaceSizeGTE\n      livingSpaceSizeLTE: $livingSpaceSizeLTE\n      bathCountGTE: $bathCountGTE\n      bathCountLTE: $bathCountLTE\n      bedroomCountGTE: $bedroomCountGTE\n      bedroomCountLTE: $bedroomCountLTE\n      architectureStyle: $architectureStyle\n      lifestyle: $lifestyle\n      propertyTypeId: $propertyTypeId\n      propertyTypeIds: $propertyTypeIds\n      spaceTypeIds: $spaceTypeIds\n      tag: $tag\n      archived: $archived\n      globalProperty: $globalProperty\n      withGeo: $withGeo\n      openHouse: $openHouse\n      displayMLSListings: $displayMLSListings\n      advancedFilters: $advancedFilters\n      seasonalPriceId: $seasonalPriceId\n\n    ) {\n      count\n    }\n  }\n","pressReleases":"\n  query PressReleases (\n    $pressReleaseId: ID\n    $companyId: String\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: SortDirectionEnum\n    $search: String\n    $categories: [String!]\n    $propertyId: [String!]\n    $developmentId: [String!]\n    $agentId: [String!]\n    $teamId: [String!]\n  ) {\n    pressReleases (\n      pressReleaseId: $pressReleaseId\n      companyId: $companyId\n      offset: $offset\n      limit: $limit\n      sort: $sort\n      sortDir: $sortDir\n      search: $search\n      categories: $categories\n      propertyId: $propertyId\n      developmentId: $developmentId\n      agentId: $agentId\n      teamId: $teamId\n    ) {\n      id\n      title\n      description\n      author\n      externalUrl\n      media {\n        smallUrl\n        mediumUrl\n        largeUrl\n        xLargeUrl\n        xxLargeUrl\n        height\n        width\n      }\n      publishedAt\n      categories\n    }\n    pressReleasesCount(\n      companyId: $companyId\n      search: $search\n      categories: $categories\n      propertyId: $propertyId\n      developmentId: $developmentId\n      agentId: $agentId\n      teamId: $teamId\n    ) {\n      count\n    }\n  }\n","posts":"\n  query Posts (\n    $postId: ID\n    $companyId: String\n    $offset: Int\n    $limit: Int\n    $order: String\n    $sortDir: SortDirectionEnum\n    $search: String\n    $featured: Boolean\n    $categoryId: String\n    $categoryIds: [String!]\n    $neighborhoodId: [String!]\n    ) {\n    posts (\n      postId: $postId\n      companyId: $companyId\n      offset: $offset\n      limit: $limit\n      order: $order\n      sortDir: $sortDir\n      search: $search\n      featured: $featured\n      postStatusId: \"5f528253-abb7-484e-95c3-330269ac1102\"\n      categoryId: $categoryId\n      categoryIds: $categoryIds\n      neighborhoodId: $neighborhoodId\n    ) {\n      id\n      title\n      subtitle\n      description\n      status\n      featured\n      slug\n      categories {\n        id\n        name\n      }\n      createdAt\n      publishedAt\n      scheduledAt\n      createdBy {\n        firstName\n        lastName\n      }\n      customAuthor\n      media {\n        smallUrl\n        mediumUrl\n        largeUrl\n        xLargeUrl\n        xxLargeUrl\n        height\n        width\n      }\n      seoTitle\n      seoDescription\n      slug\n    }\n    postsCount(\n      companyId: $companyId\n      search: $search\n      featured: $featured\n      postStatusId: \"5f528253-abb7-484e-95c3-330269ac1102\"\n      categoryId: $categoryId\n      categoryIds: $categoryIds\n      neighborhoodId: $neighborhoodId\n    ) {\n      count\n    }\n  }\n","testimonials":"\n  query Testimonials(\n    $testimonialId: ID\n    $agentId: ID\n    $teamId: ID\n    $companyId: String\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: SortDirectionEnum\n    $search: String\n  ) {\n    testimonials(\n      testimonialId: $testimonialId\n      agentId: $agentId\n      teamId: $teamId\n      companyId: $companyId\n      offset: $offset\n      limit: $limit\n      sort: $sort\n      sortDir: $sortDir\n      search: $search\n    ){\n      id\n      body\n      author\n      position\n      media {\n        smallUrl\n        mediumUrl\n        largeUrl\n        xLargeUrl\n        xxLargeUrl\n        height\n        width\n      }\n      seoTitle\n      seoDescription\n      agents {\n        slug\n        email\n        firstName\n        lastName\n        avatar {\n          smallUrl\n          height\n          width\n        }\n      }\n    }\n    testimonialsCount(\n      companyId: $companyId\n      agentId: $agentId\n      teamId: $teamId\n      search: $search\n    ) {\n      count\n    }\n  }\n","neighborhoods":"\n  query Neighborhoods (\n    $neighborhoodId: ID\n    $companyId: String\n    $search: String\n    $tag: String\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: SortDirectionEnum\n  ) {\n    neighborhoods (\n      neighborhoodId: $neighborhoodId\n      companyId: $companyId\n      search: $search\n      tag: $tag\n      offset: $offset\n      limit: $limit\n      sort: $sort\n      sortDir: $sortDir\n    ) {\n      id\n      name\n      description\n      descriptionShort\n      slug\n      tags\n      googlePlaceData\n      mlsLink\n      createdAt\n      media {\n        smallUrl\n        mediumUrl\n        largeUrl\n        xLargeUrl\n        xxLargeUrl\n        height\n        width\n      }\n      seoTitle\n      seoDescription\n    }\n    neighborhoodsCount(\n      companyId: $companyId\n      search: $search\n      tag: $tag\n    ) {\n      count\n    }\n  }\n","developments":"\n  query Developments (\n    $developmentId: ID\n    $companyId: String\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: SortDirectionEnum\n    $search: String\n    $tag: [String!]\n    $agentId: [ID!]\n    $neighborhoodId: ID\n    $neighborhoodIds: [ID!]\n  ) {\n    developments (\n      developmentId: $developmentId\n      companyId: $companyId\n      offset: $offset\n      limit: $limit\n      sort: $sort\n      sortDir: $sortDir\n      search: $search\n      tag: $tag\n      agentId: $agentId\n      neighborhoodId: $neighborhoodId\n      neighborhoodIds: $neighborhoodIds\n    ) {\n      id\n      name\n      description\n      descriptionShort\n      slug\n      createdAt\n      media {\n        smallUrl\n        mediumUrl\n        largeUrl\n        xLargeUrl\n        xxLargeUrl\n        height\n        width\n      }\n      googlePlaceData\n      seoTitle\n      seoDescription\n      tags\n    }\n    developmentsCount(\n      companyId: $companyId\n      search: $search\n      tag: $tag\n      agentId: $agentId\n      neighborhoodId: $neighborhoodId\n      neighborhoodIds: $neighborhoodIds\n    ) {\n      count\n    }\n  }\n","pois":"\nquery PointsOfInterest(\n  $regionId: String!,\n  $radius: Int,\n  $offset: Int,\n  $limit: Int,\n  $categories: [PoiCategoryEnum!],\n  $sortBy: PoiSortByEnum\n) {\n pois(\n     regionId: $regionId,\n     radius: $radius,\n     offset: $offset,\n     limit: $limit,\n     categories: $categories,\n     sortBy: $sortBy\n ) {\n  name\n  imageUrl\n  url\n  reviewCount\n  rating\n  price\n  displayPhone\n  distance\n  category\n  location {\n      address1\n      address2\n      address3\n      city\n      zipCode\n      country\n      state\n      }\n  }\n }\n","offices":"\n  query Offices (\n    $officeId: ID\n    $officeIds: [ID!]\n    $companyId: String\n    $slug: String\n    $sort: String\n    $sortDir: SortDirectionEnum\n    $search: String\n    $tags: [String]\n    $offset: Int\n    $limit: Int\n  ) {\n    offices (\n      officeId: $officeId\n      officeIds: $officeIds\n      companyId: $companyId\n      slug: $slug\n      sort: $sort\n      sortDir: $sortDir\n      search: $search\n      tags: $tags\n      offset: $offset\n      limit: $limit\n    ) {\n      id\n      companyId\n      name\n      slug\n      officeMlsId\n      shortDescription\n      fullDescription\n      addressLine1\n      addressLine2\n      addressCity\n      addressState\n      addressPostalCode\n      addressCountry\n      phone\n      email\n      officeHours\n      coordinates\n      googlePlaceData \n      seoTitle\n      seoDescription\n      fullAddress\n      media {\n        id\n        originalUrl\n        thumbnailUrl\n        smallUrl\n        mediumUrl\n        largeUrl\n        xLargeUrl\n        xxLargeUrl\n      }\n    }\n    officesCount(\n      companyId: $companyId\n      officeId: $officeId\n      officeIds: $officeIds\n      slug: $slug\n      search: $search\n      tags: $tags\n    ) {\n      count\n    }\n  }\n","teams":"query TeamsAndCount(\n  $offset: Int\n  $limit: Int\n  $search: String\n  $sort: String\n  $sortDir: SortDirectionEnum\n  $companyId: ID\n) {\n  teams(\n    offset: $offset\n    limit: $limit\n    sort: $sort\n    sortDir: $sortDir\n    search: $search\n    companyId: $companyId\n  ) {\n    \n  id\n  companyId\n  name\n  email\n  shortBio\n  fullBio\n  addressLine1\n  addressLine2\n  addressCity\n  addressState\n  addressCountry\n  phoneNumber1\n  phoneNumber2\n  postalCode\n  avatar {\n    id\n    thumbnailUrl\n    smallUrl\n    mediumUrl\n    largeUrl\n  }\n  urlWebsite\n  socialLinks\n  socialLinksArray\n  tags\n  seoTitle\n  seoDesc\n  slug\n  displayOrder\n\n  }\n  teamsCount(\n    search: $search\n    companyId: $companyId\n  ) {\n    count\n  }\n}"},
                propertyPlaceholderImage: {"id":"3eee3184-a669-4fe3-a614-809416cc9071","alt":null,"bytes":22773,"width":1920,"format":"jpg","height":1200,"shared":true,"curated":false,"duration":null,"largeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/eldqef0v1hb5opz1swho","smallUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/eldqef0v1hb5opz1swho","authorUrl":null,"mediumUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/eldqef0v1hb5opz1swho","sourceUrl":null,"xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/eldqef0v1hb5opz1swho","__typename":"Media","altTagText":null,"authorName":null,"sourceName":"r2","xxLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/eldqef0v1hb5opz1swho","description":null,"displayName":"property-compass_placeholder","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/eldqef0v1hb5opz1swho","resourceType":"image","thumbnailUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/eldqef0v1hb5opz1swho","originalFileName":"Property-Compass_Placeholder"}
            },
            objectToQuerystring: objectToQuerystring,
            getPath: getPath,
            getMLSAutocomplete: getMLSAutocomplete,
            getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters,
            makeMlsLink: makeMlsLink,
            debounce: debounce,
        };

        var wowOffset = 100;
    </script>
    <script>
        (() => {

function $parcel$interopDefault(a) {
  return a && a.__esModule ? a.default : a;
}
// Entry point for lp-sdk bundle
// This file exists to ensure Parcel v2 outputs the correct filename
/* global window */ var $53de3c160faf5a81$exports = {};
/*
WARNING!!! This file is used both on the server and in client's web-browser
please don't require/import any server-side related config/functions here
If we need something, let's pass it as a parameter of the factory
*/ var $0ce6edea77f7b81a$exports = {};
$0ce6edea77f7b81a$exports = {
    getVideoFirstFrame (videoUrl) {
        // The default Cloudinary asset delivery URL has the following structure: https://res.cloudinary.com/<cloud_name>/<asset_type>/<delivery_type>/<transformations>/<version>/<public_id>.<extension>
        //  https://cloudinary.com/documentation/video_manipulation_and_delivery#transformation_url_structure
        // The problem is that <transformations> and <version> are optional, and <transformations> can be chained separated by '/'
        // One more issue to be handled https://cloudinary.com/documentation/advanced_url_delivery_options#seo_friendly_media_asset_urls
        const CLOUDINARY_URL = 'https://res.cloudinary.com/';
        const invalid = !videoUrl || !videoUrl.startsWith(CLOUDINARY_URL);
        if (invalid) return null;
        const urlComponents = videoUrl.replace(CLOUDINARY_URL, '').replace('f_auto:video', 'f_auto').split('/');
        // checking if <asset_type> is not video or videos
        if (urlComponents[1].toLowerCase().indexOf('video') === -1) return null;
        // Filename is last urlComponent <public_id>.<extension>
        let filename = urlComponents[urlComponents.length - 1];
        if (filename.lastIndexOf('.') > -1) filename = `${filename.slice(0, filename.lastIndexOf('.'))}.jpg`;
        else filename += '.jpg';
        urlComponents[urlComponents.length - 1] = filename;
        // We need to add so_0,eo_0 transformation to the url to target the first frame.
        // we want to find the position at which we want to insert it as a chained transformation
        const firstFrameTransformation = 'so_0,eo_0';
        let firstFrameTransformationPosition = 3;
        // checking cases for SEO-friendly URLs
        if (urlComponents[1].toLowerCase() === 'videos' && urlComponents[2] !== '') firstFrameTransformationPosition = 2;
        // checking the last transformation position in the url
        // https://cloudinary.com/documentation/transformation_reference
        // https://regex101.com/r/lE3W6u/1
        const transformationRegex = /^(?:[a-z]{1,3}|\$\w+)_\S+$/;
        while(firstFrameTransformationPosition < urlComponents.length - 1 && transformationRegex.test(urlComponents[firstFrameTransformationPosition]))firstFrameTransformationPosition++;
        urlComponents.splice(firstFrameTransformationPosition, 0, firstFrameTransformation);
        return CLOUDINARY_URL + urlComponents.join('/');
    }
};


/**
 * Create helpers with given Handlebars instance
 *
 * @param {Object} HandlebarsInstance
 * @param {Function} isEqual - we use different implementation if isEqual on server and on client
 * @return {Object}
 */ function $53de3c160faf5a81$var$handlebarsHelpersFactory(HandlebarsInstance, { isEqual: isEqual }) {
    // notice!: code below assumes list is ordered lowest to highest width
    const MEDIA_SIZES = [
        {
            field: 'thumbnailUrl',
            w: 320
        },
        {
            field: 'smallUrl',
            w: 960
        },
        {
            field: 'mediumUrl',
            w: 1280
        },
        {
            field: 'largeUrl',
            w: 1920
        },
        {
            field: 'xLargeUrl',
            w: 2560
        },
        {
            field: 'xxLargeUrl',
            w: 3456
        }
    ];
    const MEDIA_SIZE_FOR_SRC = 1280;
    const lpFormatNumber = function(number, unit, precision) {
        const localization = 'en-US';
        if (!number) return '';
        if (typeof number === 'string') {
            const trimmed = number.trim();
            if (/[^+\-0-9.]/.test(trimmed)) return number; // returning text 'as is' assuming it already has all formatting
            // eslint-disable-next-line
            number = parseFloat(trimmed);
            if (!number) return '';
        }
        const currencyPrecision = typeof precision === 'number' ? precision : 0;
        const currencyFractionDigits = Number.isInteger(number) ? 0 : currencyPrecision;
        const currencyFractionOptions = {
            minimumFractionDigits: currencyFractionDigits,
            maximumFractionDigits: currencyFractionDigits
        };
        if (unit === 'USD') return `$${number.toLocaleString(localization, currencyFractionOptions)}`;
        if (unit === 'CAD') return `$${number.toLocaleString(localization, currencyFractionOptions)} CAD`;
        if (unit === 'EUR') return `\u{20AC}${number.toLocaleString(localization, currencyFractionOptions)}`;
        if (unit === 'GBP') return `\xa3${number.toLocaleString(localization, currencyFractionOptions)}`;
        if (unit === 'PERCENT') return `${number}%`;
        if (precision && typeof precision === 'number' && number > -1) return number.toLocaleString(localization, {
            maximumFractionDigits: precision
        });
        return number.toLocaleString(localization);
    };
    const formatFrequency = function(freqUnit) {
        switch(freqUnit){
            case 'DAY':
                return 'daily';
            case 'MONTH':
                return 'monthly';
            case 'WEEK':
                return 'weekly';
            case 'YEAR':
                return 'yearly';
            case 'QUARTER':
                return 'quarterly';
            case 'HALF_YEAR':
                return 'semi-annually';
            case 'NIGHTLY':
                return 'nightly';
            case 'SEASONAL':
                return 'seasonally';
            default:
                return '';
        }
    };
    const formatFrequencyShort = function(freqUnit) {
        switch(freqUnit){
            case 'DAY':
                return 'day';
            case 'WEEK':
                return 'wk';
            case 'MONTH':
                return 'mo';
            case 'YEAR':
                return 'yr';
            case 'QUARTER':
                return '3 mos';
            case 'HALF_YEAR':
                return '6 mos';
            case 'NIGHTLY':
                return 'night';
            case 'SEASONAL':
                return 'season';
            default:
                return '';
        }
    };
    const formatFrequencyStd = function(freqUnit) {
        switch(freqUnit){
            case 'DAY':
                return 'day';
            case 'WEEK':
                return 'week';
            case 'MONTH':
                return 'month';
            case 'YEAR':
                return 'year';
            case 'QUARTER':
                return 'quarter';
            case 'HALF_YEAR':
                return '6 months';
            case 'NIGHTLY':
                return 'night';
            case 'SEASONAL':
                return 'season';
            default:
                return '';
        }
    };
    const formatFrequencyExt = function(unit, options) {
        let val;
        let separator;
        const opts = options || {};
        switch(opts.mode){
            case 'short':
                val = formatFrequencyShort(unit);
                separator = opts.frequencySeparator || '/';
                break;
            case 'standard':
            case 'std':
                val = formatFrequencyStd(unit);
                separator = opts.frequencySeparator || '/';
                break;
            case 'long':
            default:
                val = formatFrequency(unit);
                separator = opts.frequencySeparator || ' ';
        }
        if (!val) return '';
        if (!opts.frequencyTag && !opts.frequencyClass) return separator + val;
        return `${separator}<${opts.frequencyTag || 'span'}${opts.frequencyClass ? ` class="${opts.frequencyClass}"` : ''}>${val}</${opts.frequencyTag || 'span'}>`;
    };
    return {
        isEmpty (arg1, options) {
            const result = !arg1 || (typeof arg1 === 'string' ? !arg1.trim() : false) || !Object.keys(arg1).length;
            if (options.fn) return result ? options.fn(this) : options.inverse(this);
            return result;
        },
        ifEquals (arg1, arg2, options) {
            return isEqual(arg1, arg2) ? options.fn(this) : options.inverse(this);
        },
        'raw-helper': function(options) {
            return options.fn();
        },
        striptags (txt) {
            if (!txt) return '';
            // Remove HTML Comments (escaping something to not make real html comment by expression)
            // eslint-disable-next-line no-useless-escape,no-param-reassign
            txt = txt.replace(/<\!--(.|[\r\n])*?-\->/g, '');
            // Remove XML fragments and <style> and <svg> tags with content
            // eslint-disable-next-line
            txt = txt.replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi, '');
            // Replace &nbsp; with space
            // eslint-disable-next-line no-param-reassign
            txt = txt.replace(/&nbsp;/g, ' ');
            // Remove HTML Tags
            const regexp = /<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g;
            return txt.replace(regexp, '');
        },
        striptagsLineBreaks (txt) {
            if (!txt) return '';
            // Remove HTML Comments (escaping something to not make real html comment by expression)
            // eslint-disable-next-line no-useless-escape,no-param-reassign
            txt = txt.replace(/<\!--(.|[\r\n])*?-\->/g, '');
            // Remove XML fragments and <style> and <svg> tags with content
            // eslint-disable-next-line no-param-reassign
            txt = txt.replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi, '');
            // Replace <br> and </p> tags with line break char, skipping last </p> which is not followed by <br> or </p>
            // eslint-disable-next-line no-param-reassign
            txt = txt.replace(/(<br\s*\/?>)|(<\/p\s*>)(?=.*(<\/p\s*>|<br\s*\/?>))/g, '&#10;');
            // Replace &nbsp; with space
            // eslint-disable-next-line no-param-reassign
            txt = txt.replace(/&nbsp;/g, ' ');
            // Remove HTML Tags
            const regexp = /<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g;
            return txt.replace(regexp, '');
        },
        truncate (text, limit, suffix) {
            if (!text) return '';
            if (text.length > limit) return typeof suffix === 'string' ? text.slice(0, limit - suffix.length) + suffix : text.slice(0, limit);
            return text;
        },
        // eslint-disable-next-line
        setSubArray (items = [], start, end, subArrayName, options) {
            // eslint-disable-next-line
            options.data.root[subArrayName] = items.slice(start, end);
        },
        formatAreaUnit (areaUnit) {
            switch(areaUnit){
                case 'ACRE':
                    return 'Acres';
                case 'SQUARE_METER':
                    return 'Sq.M.';
                case 'SQUARE_YARD':
                    return 'Sq.Yd.';
                default:
                    return 'Sq.Ft.';
            }
        },
        formatFrequency: formatFrequency,
        formatFrequencyShort: formatFrequencyShort,
        lpFormatFrequency (freqUnit, options) {
            return formatFrequencyExt(freqUnit, options && options.hash);
        },
        subArray (index, start, end, options) {
            return index >= start && index < end ? options.fn(this) : options.inverse(this);
        },
        formatPropertyStatus (status) {
            let formattedStatus = '';
            switch(status){
                case 'SOLD':
                    formattedStatus = 'Sold';
                    break;
                case 'FOR_SALE':
                    formattedStatus = 'For Sale';
                    break;
                case 'COMING_SOON':
                    formattedStatus = 'Coming Soon';
                    break;
                case 'INACTIVE':
                    formattedStatus = 'Inactive';
                    break;
                case 'POCKET_LISTING':
                    formattedStatus = 'Pocket Listing';
                    break;
                case 'PENDING':
                    formattedStatus = 'Pending';
                    break;
                case 'UNDER_CONTRACT':
                    formattedStatus = 'Under Contract';
                    break;
                case 'ACTIVE_UNDER_CONTRACT':
                    formattedStatus = 'Active Under Contract';
                    break;
                default:
                    formattedStatus = status;
            }
            return formattedStatus;
        },
        formatGrade (gradeValue) {
            switch(gradeValue){
                case 'UNDERGRADUATE_COURSES':
                    return 'Undergrad';
                case 'PRE_KINDERGARTEN':
                    return 'PreK';
                case 'KINDERGARTEN':
                    return 'K';
                case 'FIRST_GRADE':
                    return '1st';
                case 'SECOND_GRADE':
                    return '2nd';
                case 'THIRD_GRADE':
                    return '3rd';
                case 'FOURTH_GRADE':
                    return '4th';
                case 'FIFTH_GRADE':
                    return '5th';
                case 'SIXTH_GRADE':
                    return '6th';
                case 'SEVENTH_GRADE':
                    return '7th';
                case 'EIGHTH_GRADE':
                    return '8th';
                case 'NINTH_GRADE':
                    return '9th';
                case 'TENTH_GRADE':
                    return '10th';
                case 'ELEVENTH_GRADE':
                    return '11th';
                case 'TWELFTH_GRADE':
                    return '12th';
                default:
                    return '';
            }
        },
        encodeURI (uri) {
            return encodeURI(uri);
        },
        encodeURIComponent (txt) {
            return encodeURIComponent(txt);
        },
        hbFormatDate (date, type) {
            const newDate = date === 'current' ? new Date() : new Date(date);
            const months = [
                'January',
                'February',
                'March',
                'April',
                'May',
                'June',
                'July',
                'August',
                'September',
                'October',
                'November',
                'December'
            ];
            if (type === 'YYYY' || type === 'year') return `${newDate.getFullYear()}`;
            if (type === 'MM/DD/YY') {
                let month = newDate.getMonth() + 1;
                if (month < 10) month = `0${month.toString()}`;
                return `${month}/${newDate.getDate()}/${newDate.getFullYear().toString().substr(-2)}`;
            }
            return `${months[newDate.getMonth()]} ${newDate.getDate()}, ${newDate.getFullYear()}`;
        },
        openHousesFormat (startDate, endDate, timeZone) {
            if (!startDate || !endDate) return '';
            /**
       * return formatted time.
       * @param {date} date
       * @return {time} time.
       */ const getTime = (date)=>{
                let hours = date.getHours();
                if (hours > 12) hours -= 12;
                const prefix = '0';
                let time = `${hours}:${date.getMinutes() > 9 ? date.getMinutes() : prefix + date.getMinutes()}`;
                if (date.getHours() > 11) time += 'PM';
                else time += 'AM';
                return time;
            };
            let tz = '';
            let startFDate = startDate;
            let endFDate = endDate;
            if (timeZone) {
                startFDate = new Date(startDate).toLocaleString('en-US', {
                    timeZone: timeZone
                });
                endFDate = new Date(endDate).toLocaleString('en-US', {
                    timeZone: timeZone
                });
                [, , , tz] = new Date(endDate).toLocaleString('en-US', {
                    timeZone: timeZone,
                    timeZoneName: 'short'
                }).split(' ');
            }
            const date = new Date(startFDate);
            const openHouseDate = date.toLocaleDateString('en-US');
            const time1 = getTime(date);
            const date2 = new Date(endFDate);
            const time2 = getTime(date2);
            return `${openHouseDate} ${time1} - ${time2} ${tz}`;
        },
        math (lvalue, operator, rvalue) {
            // eslint-disable-next-line
            lvalue = parseFloat(lvalue);
            // eslint-disable-next-line
            rvalue = parseFloat(rvalue);
            return ({
                '+': lvalue + rvalue,
                '-': lvalue - rvalue,
                '*': lvalue * rvalue,
                '/': lvalue / rvalue,
                '%': lvalue % rvalue
            })[operator];
        },
        findByKey (values, key, value, options) {
            const result = (values || []).find((entry)=>entry[key] === value);
            return options.fn(result);
        },
        capitalize (string, split, options) {
            let capitalized;
            if (typeof string === 'string' && string.length) capitalized = string.toLowerCase().split(split).map((w)=>w.charAt(0).toUpperCase() + w.slice(1)).join(' ').toString();
            return capitalized;
        },
        and (...arg) {
            return Array.prototype.slice.call(arg).every(Boolean);
        },
        or (...arg) {
            return Array.prototype.slice.call(arg, 0, -1).some(Boolean);
        },
        not (arg) {
            return !arg;
        },
        orderByIds (items, orderedIds, options) {
            let ret = '';
            let data = null;
            if (options.data) data = HandlebarsInstance.createFrame(options.data);
            // When passed orderedIds, filter out empty items including empty strings and
            // only show items (and in that order) in a loop
            //  If no orderedIds provided, show all items
            const filteredIds = (orderedIds || []).filter(Boolean);
            if (filteredIds && filteredIds.length) {
                let skippedItems = 0;
                ret = filteredIds.reduce((res, id, idx)=>{
                    const item = (items || []).find((item)=>item.id === id);
                    // ID doesn't exist so ditch it
                    if (!item) {
                        skippedItems += 1;
                        return res;
                    }
                    if (data) data.index = idx - skippedItems;
                    return res + options.fn(item, {
                        data: data
                    });
                }, '');
            } else for(let i = 0, j = (items || []).length; i < j; i++){
                if (data) data.index = i;
                ret += options.fn(items[i], {
                    data: data
                });
            }
            return ret;
        },
        ifIn (elem, list, options) {
            if (list && list.indexOf(elem) > -1) return options.fn(this);
            return options.inverse(this);
        },
        partial (name, options) {
            // Register a partial and output the content in a script for clientside rendering
            HandlebarsInstance.registerPartial(name, HandlebarsInstance.compile(options.fn()));
            // eslint-disable-next-line
            const script = `<script type="text/x-handlebars-template" class="${name} pagination-script">${options.fn()}</${'script'}>`;
            return script;
        },
        numCompare (l, r, operator, options) {
            const operators = {
                '==': function(l, r) {
                    // eslint-disable-next-line
                    return l == r;
                },
                '===': function(l, r) {
                    return l === r;
                },
                '!=': function(l, r) {
                    // eslint-disable-next-line
                    return l != r;
                },
                '<': function(l, r) {
                    return l < r;
                },
                '>': function(l, r) {
                    return l > r;
                },
                '<=': function(l, r) {
                    return l <= r;
                },
                '>=': function(l, r) {
                    return l >= r;
                }
            };
            const result = operators[operator](l, r);
            if (result) return options.fn ? options.fn(this) : true;
            return options.fn ? options.inverse(this) : false;
        },
        lpFormatNumber: lpFormatNumber,
        arrayToHtmlList (arr, options) {
            // eslint-disable-next-line
            return arr.reduce((acc, current)=>{
                try {
                    if (typeof current === 'object' || current === null) return acc;
                    // eslint-disable-next-line
                    return acc += `<li>${current}</li>`;
                } catch (e) {
                /* empty */ }
            }, '');
        },
        join (array, separator, options) {
            if (!array || !array.join) return '';
            return array.join(typeof separator === 'string' ? separator : ', ');
        },
        dedupe (items, key, options) {
            let data = null;
            let skippedItems = 0;
            const list = new Set();
            if (options.data) data = HandlebarsInstance.createFrame(options.data);
            return (items || []).reduce((res, item, idx)=>{
                const val = key ? item[key] : item;
                // Item is unique if we're passed a key that is not defined
                const isUnique = !list.has(val) || key && val === undefined;
                if (isUnique) list.add(val);
                else {
                    skippedItems += 1;
                    return res;
                }
                if (data) data.index = idx - skippedItems;
                return res + options.fn(item, {
                    data: data
                });
            }, '');
        },
        JSONstringify (obj, options) {
            return JSON.stringify(obj);
        },
        // eslint-disable-next-line sonarjs/cognitive-complexity
        formatPropertyPrice (...args) {
            const options = args[args.length - 1];
            const opts = options.hash;
            const property = args.length > 1 ? args[0] : opts.property;
            const precision = opts.precision || 0;
            if (args.length > 2) // eslint-disable-next-line
            opts.mode = args[1];
            if (!opts.mode) opts.mode = 'short';
            let separator = args.length > 3 ? args[2] : opts.separator;
            if (typeof separator !== 'string') separator = ' | ';
            if (property.isPasswordProtected) return 'Exclusive Listing';
            let priceUponRequestText = args.length > 4 ? args[3] : opts.priceUponRequestText;
            if (typeof priceUponRequestText !== 'string') priceUponRequestText = 'Price Upon Request';
            if (property.priceUponRequest) return priceUponRequestText;
            let price = property.salesPrice;
            let reduced = null;
            // eslint-disable-next-line sonarjs/no-collapsible-if
            if (property.status !== 'SOLD' && property.status !== 'Leased') {
                if (property.reducedPrice) {
                    if (!opts.reducedClass) price = property.reducedPrice;
                    else reduced = property.reducedPrice;
                }
            }
            let result = '';
            if (reduced) result += `<${opts.reducedTag || 'span'} class="${opts.reducedClass}">${lpFormatNumber(reduced, property.currency, precision)}</${opts.reducedTag || 'span'}>`;
            if (price) {
                price = lpFormatNumber(price, property.currency, precision);
                if (opts.priceTag || opts.priceClass) result += `<${opts.priceTag || 'span'}${opts.priceClass ? ` class="${opts.priceClass}"` : ''}>${price}</${opts.priceTag || 'span'}>`;
                else result += price;
            }
            const leasePrice = property.leasePrice && lpFormatNumber(property.leasePrice, property.currency, precision);
            if (leasePrice) {
                if (result) result += separator;
                const leaseText = `${leasePrice}${formatFrequencyExt(property.leasePeriod, opts)}`;
                if (opts.leaseTag || opts.leaseClass) result += `<${opts.leaseTag || 'span'}${opts.leaseClass ? ` class="${opts.leaseClass}"` : ''}>${leaseText}</${opts.leaseTag || 'span'}>`;
                else result += leaseText;
            }
            return new HandlebarsInstance.SafeString(result);
        },
        // eslint-disable-next-line sonarjs/cognitive-complexity
        mediaImage (mediaSource, options = {}) {
            if (!mediaSource) return;
            const { lazy: lazy, ...attributes } = options.hash;
            let src = '';
            let srcset = '';
            if (typeof mediaSource === 'string') src = mediaSource;
            else {
                const srcMap = {};
                const { height: height, width: width, altTagText: altTagText } = mediaSource;
                MEDIA_SIZES.forEach((src)=>{
                    if (mediaSource[src.field] && !srcMap[mediaSource[src.field]]) srcMap[mediaSource[src.field]] = src.w;
                });
                const srcs = Object.keys(srcMap);
                if (!srcs.length) return;
                if (altTagText) attributes.alt = altTagText;
                if (height && width) {
                    if (height >= width) {
                        if (attributes.class) attributes.class += ' portrait';
                        else attributes.class = 'portrait';
                    }
                    if ('setDims' in options.hash) {
                        attributes.width = width;
                        attributes.height = height;
                    }
                }
                if (srcs.length > 1 && width && width < srcMap[srcs[srcs.length - 1]]) {
                    const maxSrc = srcs.findIndex((src)=>srcMap[src] >= width);
                    srcs.splice(maxSrc + 1);
                    srcMap[srcs[srcs.length - 1]] = width;
                }
                if (srcs.length > 1) {
                    srcset = srcs.map((s)=>`${s} ${srcMap[s]}w`).join(', ');
                    srcs.sort((a, b)=>Math.abs(srcMap[a] - MEDIA_SIZE_FOR_SRC) - Math.abs(srcMap[b] - MEDIA_SIZE_FOR_SRC));
                }
                // eslint-disable-next-line
                src = srcs[0];
            }
            delete attributes.setDims;
            if (!srcset) delete attributes.sizes;
            if (!('alt' in attributes)) attributes.alt = '';
            if (!('loading' in attributes) && (options?.data?.root?.sectionIndex > 1 || lazy)) attributes.loading = 'lazy';
            const attrs = Object.keys(attributes).map((k)=>`${HandlebarsInstance.escapeExpression(k)}="${HandlebarsInstance.escapeExpression(attributes[k])}"`).join(' ');
            return new HandlebarsInstance.SafeString(// eslint-disable-next-line sonarjs/no-nested-template-literals
            `<img src="${src}"${srcset ? ` srcset="${srcset}"` : ''}${attrs ? ` ${attrs}` : ''}>`);
        },
        bgImage (mediaSource) {
            if (!mediaSource) return '';
            if (typeof mediaSource === 'string') return mediaSource;
            return mediaSource.largeUrl || mediaSource.url || '';
        },
        concat (...rest) {
            let outStr = '';
            // rest params are Array instances while arguments object is not
            for(const arg in rest)if (rest[arg] !== null && rest[arg] !== undefined && typeof rest[arg] !== 'object') outStr += rest[arg];
            return outStr;
        },
        setVideoExtension (uri, format) {
            if (!uri || !format) return '';
            const decodedUri = new URL(uri);
            if (decodedUri.host !== 'res.cloudinary.com') {
                // Not a cloudinary uri, do not rewrite
                if (decodedUri.pathname.endsWith(`.${format}`)) return uri;
                return '';
            }
            // Rewrite the cloudinary uri
            const lastPeriodIdx = decodedUri.pathname.lastIndexOf('.');
            let pathWithoutFormat = decodedUri.pathname;
            if (lastPeriodIdx !== -1) pathWithoutFormat = decodedUri.pathname.substr(0, lastPeriodIdx);
            decodedUri.pathname = `${pathWithoutFormat}.${format}`;
            return decodedUri.toString();
        },
        addVideoSources (uri) {
            if (!uri) return '';
            const VIDEO_VARIANTS = [
                {
                    format: 'webm',
                    codec: 'vp9',
                    htmlCodecs: ';codecs=vp9'
                },
                {
                    format: 'mp4',
                    codec: 'h265',
                    htmlCodecs: ';codecs=hvc1'
                },
                {
                    format: 'mp4',
                    codec: 'h264',
                    htmlCodecs: ''
                }
            ];
            const VIDEO_EXT_REGEXP = /\.(?:3gp|mpeg|mp4|m4v|m4p|ogv|ogg|mov|webm)$/;
            if (!uri.includes('res.cloudinary.com')) // keep existing or no extension for non Cloudinary urls
            return `<source data-src="${uri}">`;
            const uriNoExt = uri.replace(VIDEO_EXT_REGEXP, '');
            const sources = VIDEO_VARIANTS.map((type)=>{
                const cloudinaryFormatUrl = `${uriNoExt.replace(/f_auto(?::video)?/, `f_${type.format},vc_${type.codec}`)}.${type.format}`;
                return `<source data-src="${cloudinaryFormatUrl}" type="video/${type.format}${type.htmlCodecs}">`;
            });
            return sources.join('\n');
        },
        cloudinaryVideoFirstFrame: $0ce6edea77f7b81a$exports.getVideoFirstFrame,
        initials (text, options) {
            if (!text) return '';
            if (options?.hash?.endChar) // eslint-disable-next-line
            text = text.split(options.hash.endChar)[0];
            // eslint-disable-next-line
            const maxChars = +options?.hash?.maxChars || 2; // we do not allow this to be 0
            let result = text.match(/\b\w/g)?.slice(0, maxChars);
            if (!result) return '';
            if (options?.hash?.addText) result = result.map((item)=>item + options.hash.addText);
            return result.join(options?.hash?.joinWith || '').toUpperCase();
        },
        normalizePhone (phone) {
            if (!phone) return '';
            const str = String(phone).trim();
            return (str.startsWith('+') ? '+' : '') + str.replace(/\D/g, '');
        }
    };
}
$53de3c160faf5a81$exports = $53de3c160faf5a81$var$handlebarsHelpersFactory;


/* global window, document */ // eslint-disable-next-line import/prefer-default-export
class $dc851cf3939b6ef5$export$ff0712c26d5458f7 {
    /**
   * Initialize Modal Controller
   * @param {Object} options
   */ constructor(options){
        this.isBuilder = false;
        this.companyId = null;
        this.websiteId = null;
        this.pageId = null;
        this.shareId = null;
        this.pageMeta = null;
        this.websiteApiGatewayUrl = null;
        this.buyerSellerServiceUrl = null;
        this.leadIngesterUrl = null;
        this.divolteServiceUrl = null;
        this.eventBus = null;
        this.templateId = null;
        this.myhomeDashboardEnabled = false;
        this.googleMapsAPIKey = null;
    }
    /**
   * Controllers must implement a "destroy" method to be called
   * after page navigation to remove event handlers / cleanup
   */ destroy() {}
    /**
   * Set page and supporting data
   * @param {string} pageId
   * @param {Object} options
   */ setPage(pageId, options = {}) {
        this.pageId = pageId;
        this.shareId = options.shareId || null;
        this.pageMeta = {
            sourceResource: options.sourceResource,
            pageElementId: options.pageElementId,
            pageQueryVariables: options.pageQueryVariables || {}
        };
    }
    /**
   * Sets if we are in pagebuilder context or not
   * @param {boolean} isBuilder
   */ setIsBuilder(isBuilder) {
        this.isBuilder = isBuilder;
    }
    /**
   * Set Company and supporting data
   * @param {string} companyId
   * @param {Object} options
   */ setCompany(companyId, options = {}) {
        this.companyId = companyId;
    }
    /**
   * Set website and supporting data
   * @param {string} websiteId
   * @param {Object} options
   */ setWebsite(websiteId, options = {}) {
        this.websiteId = websiteId;
        if (options.myhomeDashboardEnabled) this.myhomeDashboardEnabled = options.myhomeDashboardEnabled;
    }
    /**
   * Set websiteApiGatewayUrl
   * @param {string} websiteApiGatewayUrl
   * @param {Object} options
   */ setWebsiteApiGatewayUrl(websiteApiGatewayUrl, options = {}) {
        this.websiteApiGatewayUrl = websiteApiGatewayUrl;
    }
    /**
   * Set buyerSellerServiceUrl
   * @param {string} buyerSellerServiceUrl
   * @param {Object} options
   */ setBuyerSellerServiceUrl(buyerSellerServiceUrl, options = {}) {
        this.buyerSellerServiceUrl = buyerSellerServiceUrl;
    }
    /**
   * Set divolteServiceUrl and supporting data
   * @param {string} divolteServiceUrl
   * @param {Object} options
   */ setDivolteServiceUrl(divolteServiceUrl, options = {}) {
        this.divolteServiceUrl = divolteServiceUrl;
    }
    /**
   * Set eventBusUrl
   * @param {string} eventBusUrl
   * @param {Object} options
   */ setEventBusUrl(eventBusUrl, options = {}) {
        this.eventBusUrl = eventBusUrl;
    }
    /**
   * Set templateId and supporting data
   * @param {string} templateId
   * @param {Object} options
   */ setTemplateId(templateId, options = {}) {
        this.templateId = templateId;
    }
    /**
   * Set leadIngesterUrl
   * @param {string} leadIngesterUrl
   * @param {Object} options
   */ setLeadIngesterUrl(leadIngesterUrl, options = {}) {
        this.leadIngesterUrl = leadIngesterUrl;
    }
    /**
   * Set googleMapsAPIKey
   * @param {string} googleMapsAPIKey
   * @param {Object} options
   */ setGoogleMapsAPIKey(googleMapsAPIKey, options = {}) {
        this.googleMapsAPIKey = googleMapsAPIKey;
    }
    /**
   * Set eventBus
   * @param {Object} options
   */ setEventBus({ enabled: enabled, apiKey: apiKey, url: url }) {
        this.eventBus = {
            enabled: enabled,
            apiKey: apiKey,
            url: url
        };
    }
}


/* eslint-disable import/prefer-default-export */ // eslint-disable-next-line import/prefer-default-export
class $7c391e2f7931d60d$export$3b5bd9381a52554c {
    /**
   * Initialize Base Controller at build time
   * @param { ConfigController } config
   * @param {Window} window
   * @param {Document} document
   */ constructor(config, window, document){
        // TODO: Listen for events from configController to update configuration
        this.config = config;
        this.window = window;
        this.document = document;
        if (!this.destroy) // With turbolinks, we want to ensure that on each page load we have the latest version of the sdk
        //  Controllers are deconstructed and replaced (on the window object) per request
        //  Controllers must use the destory method to remove event handlers to prevent undefined behavior
        throw new Error('Controllers must implement a deconstructor');
    }
}


// eslint-disable-next-line import/prefer-default-export
const $a3e97e89bbc2a366$export$f037eeffb5561205 = 2000;


class $0ead03fdb95fa9ce$export$d507f25e63650365 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    /**
   * Initialize Modal Controller at build time
   * @param { ConfigController } config
   * @param {Window} window
   * @param {Document} document
   */ constructor(config, window, document){
        super(config, window, document);
        this.setLoginState = this.setLoginState.bind(this);
        this.pageId = null;
        this.modals = [];
        this.exitModalTriggered = {};
        this.exitModalEventListeners = [];
    }
    /**
   * Initialize Modal Controller at run time
   * Attach handlers and events to DOM
   * @param {Object} options
   */ initialize(options) {
        try {
            const { config: config, document: document } = this;
            this.pageId = config.pageId;
            this.modals = document.querySelectorAll('body > #modals > .modal');
            options.modals.forEach((m)=>{
                this._attachModalHandler(m);
            });
        } catch (e) {
            // eslint-disable-next-line no-console
            console.log(e);
        }
    }
    /**
   * Controllers must implement a "destroy" method to be called
   * after page navigation to remove event handlers / cleanup
   */ destroy() {
        const { document: document } = this;
        this.exitModalEventListeners.forEach((listener)=>{
            document.removeEventListener('mouseout', listener);
        });
        this.modals = [];
        this.exitModalTriggered = {};
        this.exitModalEventListeners = [];
    }
    /**
   * Set modal to local storage with expiration
   * @param {string} modalId
   */ setModalWithExpiry(modalId) {
        const { window: window } = this;
        const TTL = 86400000; // 24 hours
        const now = new Date();
        const expiry = now.getTime() + TTL;
        const key = `modal-controller-${modalId}`;
        try {
            window.localStorage.setItem(key, JSON.stringify(expiry));
        } catch (err) {
        // catch error when setting item to storage on iOS private browser
        }
    }
    /**
   * Save success login modal to local storage
   */ setLoginState() {
        const { window: window } = this;
        try {
            window.localStorage.setItem('isSignedUp', 'true');
        } catch (err) {
        // catch error when setting item to storage on iOS private browser
        }
    }
    /**
   * Get modal and check expiration
   * @param {string} modalId
   * @return {boolean}
   */ getModalWithExpiry(modalId) {
        const { window: window } = this;
        const storage = window.localStorage;
        const expirationTime = storage.getItem(`modal-controller-${modalId}`);
        if (!expirationTime) return false;
        const expiry = JSON.parse(expirationTime);
        const now = new Date();
        if (now.getTime() > expiry) {
            storage.removeItem(`modal-controller-${modalId}`);
            return false;
        }
        return true;
    }
    /**
   * Make a modal visible
   * @param {string} modalId
   * @param {Object} options
   */ show(modalId, options = {}) {
        // TODO: migrate logic from page.handlebars
        const { window: window } = this;
        const modalViewed = this.getModalWithExpiry(modalId);
        // Only show a modal if it has not been seen
        // Does not affect "show modal on button click"
        if (modalId && !modalViewed || options.forced === true) {
            window.lpUI.showModal(`modal-${modalId}`, options);
            this.setModalWithExpiry(modalId);
        }
    }
    /**
   * Attach events based on Modal type and page settings
   * @param {Modal} modal
   */ _attachModalHandler(modal) {
        const { pageId: pageId } = this;
        const { trigger: trigger, pageSpecific: pageSpecific } = modal;
        if (pageSpecific) {
            const pageIds = modal.pages.map((p)=>p.pageId);
            if (!pageIds.includes(pageId)) // Modal does not belong to this page
            return;
        }
        if (trigger === 'EXIT') this._exitModalHandler(modal);
        else if (trigger === 'TIMER') this._timerModalHandler(modal);
        else if (trigger === 'FORCED') this._forcedModalHandler(modal);
    }
    /**
   * Attach events for exit Modals
   * @param {Modal} modal
   */ _exitModalHandler(modal) {
        // eslint-disable-next-line
        const that = this;
        const { document: document, exitModalTriggered: exitModalTriggered } = this;
        const { modalId: modalId } = modal;
        /**
     * Handle the mouseout dom event
     * @param {Event} event
     */ function triggerExitModal(event) {
            if (exitModalTriggered[modalId]) return;
            if (!event.toElement && !event.relatedTarget) {
                that.show(modalId);
                exitModalTriggered[modalId] = true;
            }
        }
        document.addEventListener('mouseout', triggerExitModal);
        this.exitModalEventListeners.push(triggerExitModal);
    }
    /**
   * Attach events for timer Modals
   * @param {Modal} modal
   */ _timerModalHandler(modal) {
        const { modalId: modalId, timerDelay: timerDelay } = modal;
        setTimeout(()=>{
            this.show(modalId);
        }, timerDelay);
    }
    /**
   * Attach events for Forced Modals
   * @param {Modal} modal
   */ _forcedModalHandler(modal) {
        const { modalId: modalId } = modal;
        const { window: window, document: document } = this;
        const isLoggedIn = window.localStorage.getItem('isSignedUp') === 'true';
        if (!isLoggedIn) {
            // watch for event triggering success login
            const forcedModal = document.querySelector(`#modal-${modalId}`);
            const contactForm = forcedModal?.querySelector('form');
            const MODAL_CLOSE_DELAY = contactForm?.dataset.delay || (0, $a3e97e89bbc2a366$export$f037eeffb5561205);
            // form submit autoclose is handled by contactForms controller
            contactForm.addEventListener('formsubmitted', ()=>{
                this.setLoginState();
            });
            window.addEventListener('oauthSuccess', ()=>{
                this.setLoginState();
                contactForm.classList.add('success');
                setTimeout(()=>{
                    window.lpUI.hideModal(`modal-${modalId}`);
                    contactForm.reset();
                    contactForm.classList.remove('success');
                }, MODAL_CLOSE_DELAY);
            });
            this.show(modalId, {
                forced: true
            });
        }
    }
}


/* eslint-disable import/prefer-default-export */ /* global window */ /* eslint-disable import/prefer-default-export */ /**
 * Handle navigation push
 * @param {string} href
 * @param {boolean} _blank
 */ const $fc0a058ae42af628$export$95e8d77caafa3e06 = (href, _blank = false)=>{
    if (!href) return;
    if (_blank) {
        window.open(href);
        return;
    }
    window.location.assign(href);
};
const $fc0a058ae42af628$export$267a1435fe18b8d4 = (obj, path, defValue)=>{
    if (!path) return undefined;
    const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g);
    const result = pathArray.reduce((prevObj, key)=>prevObj && prevObj[key], obj);
    return result === undefined ? defValue : result;
};



class $d48f9f944810f613$export$ca3218b7861b9cb0 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    /**
   * Initialize Button Controller at build time
   * @param { ConfigController } config
   * @param {Window} window
   * @param {Document} document
   */ constructor(config, window, document){
        super(config, window, document);
        this._boundClickHandler = this._buttonClickHandler.bind(this);
    }
    /**
   * Initialize Button Controller at run time
   * Attach handlers and events to DOM
   * @param {Object} options
   */ initialize(options = {}) {
        try {
            const { document: document } = this;
            document.body.removeEventListener('click', this._boundClickHandler);
            document.body.addEventListener('click', this._boundClickHandler);
        } catch (e) {
            // eslint-disable-next-line no-console
            console.error(e);
        }
    }
    /**
   * Controllers must implement a "destroy" method to be called
   * after page navigation to remove event handlers / cleanup
   */ destroy() {
        const { document: document } = this;
        document.body.removeEventListener('click', this._boundClickHandler);
    }
    /**
   * Buttons click handler
   * @param {event} e
   */ _buttonClickHandler(e) {
        this._handleButtonClick(e).catch((e)=>console.error(e));
    }
    /**
   * Handle button click
   * We need special function to have easy way to detach listener
   * @param {Event} e
   */ async _handleButtonClick(e) {
        const { window: window, document: document } = this;
        const button = e.target.closest('button, a');
        if (!button) return;
        const type = button.dataset.type || '';
        const href = button.href || button.dataset.href || '';
        const target = button.target || '';
        const { submit: submit } = button.dataset;
        if (submit) {
            try {
                await this._handleSubmit(button);
            } catch (err) {
                // eslint-disable-next-line no-console
                console.error(err);
            }
            (0, $fc0a058ae42af628$export$95e8d77caafa3e06)(href, target === '_blank');
        }
        this._trackConversion(button);
        if (type === 'VIDEO') {
            this._handleVideoButton(button);
            return;
        }
        if (type === 'CONTACT_US') {
            this._handleContactUsButton(button);
            return;
        }
        if (type === 'SUBSCRIBE') {
            // TODO: Extend for an overwritten subscribe
            window.lpUI.showModal('modal-global-subscribe');
            return;
        }
        if (type === 'MY_ACCOUNT') {
            // TODO: Extend for an overwritten subscribe
            window.lpUI.showModal('modal-global-my-account');
            return;
        }
        if (type === 'SHARE_POPUP') {
            // TODO: Extend for an overwritten subscribe
            const sharePopup = button.querySelector('.share-popup');
            if (sharePopup) sharePopup.style.display = 'flex';
            e.stopPropagation(); // this may not work in current 'delegate' mode
            return;
        }
        // Custom modals
        if (type.substring(0, 6) === 'MODAL_') {
            const modalId = type.substring(6);
            window.lpUI.showModal(`modal-${modalId}`);
            return;
        }
        // MAILTO / TEL Event
        if (href?.startsWith('mailto:')) {
            const email = href.substring(7);
            // TODO: Replace with SDK method
            document.sendGoogleAnalyticsEvent({
                hitType: 'event',
                eventCategory: 'button',
                eventAction: 'click',
                eventLabel: 'Email',
                eventValue: email
            });
        } else if (href?.startsWith('tel:')) {
            const phoneNumber = href.substring(4);
            // TODO: Replace with SDK method
            document.sendGoogleAnalyticsEvent({
                hitType: 'event',
                eventCategory: 'button',
                eventAction: 'click',
                eventLabel: 'Phone',
                eventValue: phoneNumber
            });
        }
    }
    /**
   * Handle submit
   * @param {HTMLButtonElement|HTMLAnchorElement} button
   */ async _handleSubmit(button) {
        const form = button.closest('form');
        const { window: window } = this;
        if (form) return await window.luxuryPresence.contactForms.submitForm(form);
        return null;
    }
    _getVimeoSrc(link) {
        if (!link || !link.includes('vimeo.com') || link.length > 2000) return null;
        const matchResult = link.match(/(?:(?:www\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^/]*)\/videos\/|)|player.vimeo.com\/video\/)(\d+)(?:(?:\?.*&*h=|\/)+([\d,a-f]+))?/);
        if (!matchResult) return null;
        const [, vimeoId, vimeoHashParameter] = matchResult;
        let src = `https://player.vimeo.com/video/${vimeoId}?`;
        if (vimeoHashParameter) src += `h=${vimeoHashParameter}&`;
        src += 'autoplay=1';
        return src;
    }
    /**
   * Handle type video click
   * @param {HTMLElement} button
   */ // eslint-disable-next-line sonarjs/cognitive-complexity
    _handleVideoButton(button) {
        const { document: document } = this;
        const section = button.closest('section');
        // Embed youtube/vimeo video url
        let { src: src } = button.dataset;
        let youtubeId = '';
        if (src && (src.includes('youtube.com') || src.includes('youtu.be')) && !src.includes('youtube.com/embed')) {
            // test link: https://regexr.com/3anm9
            const youtubeRegex = /(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=))|youtu.be\/)([a-zA-Z0-9_-]{6,11})/;
            const youtubeResult = src.match(youtubeRegex);
            // eslint-disable-next-line
            if (youtubeResult) youtubeId = youtubeResult[1];
        }
        const vimeoSrc = this._getVimeoSrc(src);
        if (youtubeId) src = `https://youtube.com/embed/${youtubeId}?autoplay=1&controls=0`;
        else if (vimeoSrc) src = vimeoSrc;
        if (!src || !section) return;
        const isVideoFile = src.endsWith('.mp4') || src.endsWith('.webm') || src.includes('cloudinary.com');
        const modalHtml = `
      <div id="modal-${section.id}" class="modal visible">
        <div class="modal-content">
          <div class="lightbox-video">
            <div class="video-player">
              <div class="embed-container">
                ${isVideoFile ? `<video controls autoplay src="${src}"></video>` : `<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${src}"></iframe>`}
              </div>
            </div>
          </div>
        </div>
        <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button>
      </div>
    `;
        document.body.insertAdjacentHTML('beforeend', modalHtml);
        const modal = document.getElementById(`modal-${section.id}`);
        const closeModal = modal.querySelector('.close');
        closeModal.addEventListener('click', ()=>{
            modal.remove();
        });
    }
    /**
   * Handle type contact us click
   * @param {HTMLElement} button
   */ _handleContactUsButton(button) {
        const { window: window, document: document } = this;
        // TODO: Extend for an overwritten contact us
        document.sendGoogleAnalyticsEvent({
            hitType: 'event',
            eventCategory: 'button',
            eventAction: 'click',
            eventLabel: 'contact'
        });
        window.lpUI.showModal('modal-global-contact-us', {
            scrollLock: true
        });
    }
    /**
   * Track conversion
   * @param {HTMLElement} button
   */ _trackConversion(button) {
        const { window: window, document: document } = this;
        // Conversion Tracking Options
        const { gtagConversionId: gtagConversionId, gtagConversionLabel: gtagConversionLabel, fbEventName: fbEventName } = button.dataset;
        if (gtagConversionId && gtagConversionLabel) {
            if (window.dataLayer && window.dataLayer.length) {
                const configured = window.dataLayer.some((layer)=>layer.length && layer[0] === 'config' && layer[1] === gtagConversionId);
                if (!configured) document.sendGoogleTagManagerEvent('config', gtagConversionId);
            }
            const sentTo = `${gtagConversionId}/${gtagConversionLabel}`;
            document.sendGoogleTagManagerEvent('event', 'conversion', {
                send_to: sentTo
            });
        }
        if (window.fbq && fbEventName) window.fbq('track', fbEventName, {});
    }
}


/* eslint-disable import/prefer-default-export */ 
class $68a2d4aa500c7a05$export$61ec8f2b6291ec31 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    /**
   * Initialize Validation Controller at build time
   * @param { ConfigController } config
   * @param {Window} window
   * @param {Document} document
   */ constructor(config, window, document){
        super(config, window, document);
        this.validatedForms = [];
    }
    /**
   * Initialize Contact Form Controller at run time
   * Attach handlers and events to DOM
   * @param {Object} options
   */ initialize(options = {}) {
        try {
            const { window: window, document: document } = this;
            const { selector: selector } = options;
            let validatedForms = [];
            if (selector) validatedForms = document.querySelectorAll(`${selector} form[data-type="contact-form"]`);
            else validatedForms = document.querySelectorAll('form[data-type="contact-form"]');
            const isPhoneValidationLibRequired = !!document.querySelectorAll('input[type="tel"]').length;
            // we are loading the phone validation lib from the globally defined list of libs
            if (isPhoneValidationLibRequired && !window.libphonenumber && window?.luxuryPresence?.libs) {
                const { loadJs: loadJs, jsLibsMap: jsLibsMap } = window.luxuryPresence.libs;
                const { libphonenumber: libphonenumber } = jsLibsMap;
                loadJs(libphonenumber.jsSrc, this.attachValidation.bind(this, validatedForms));
            } else this.attachValidation(validatedForms);
            this.validatedForms = this.validatedForms.concat(validatedForms);
        } catch (e) {
            // eslint-disable-next-line no-console
            console.log(e);
        }
    }
    /**
   * Controllers must implement a "destroy" method to be called
   * after page navigation to remove event handlers / cleanup
   */ destroy() {
        this.validatedForms = [];
    }
    /**
   * Validate all forms in the document
   * @param {NodeListOf<HTMLFormElement>} forms
   */ attachValidation(forms) {
        forms.forEach((form)=>{
            const inputs = form.querySelectorAll('input, select, textarea');
            inputs.forEach((input)=>{
                this.applyFieldValidation(input);
            });
        });
    }
    /**
   * Field Validation Handler from global context
   * @param {HTMLInputElement|HTMLTextAreaElement|HTMLSelectElement} inputField
   */ applyFieldValidation(inputField) {
        const fieldType = inputField.getAttribute('type');
        if (fieldType === 'tel') this._applyPhoneValidation(inputField);
    }
    /**
   * Phone Field Validation Handler
   * @param {HTMLInputElement} inputField
   */ _applyPhoneValidation(inputField) {
        const { window: window } = this;
        if (window.libphonenumber) {
            // https://codepen.io/coinscope/pen/BaXBvBp?editors=1010
            const phoneUtil = window.libphonenumber.isValidPhoneNumber;
            inputField.addEventListener('keyup', function() {
                if (this.hasAttribute('required') || this.value.replace(/\s/g, '').length) try {
                    const phoneNumber = this.value;
                    const region = 'US';
                    const isValidNumber = phoneUtil(phoneNumber, region);
                    if (!isValidNumber) this.setCustomValidity('Please enter a valid phone number.');
                    else this.setCustomValidity('');
                } catch (e) {
                    this.setCustomValidity('Please enter a valid phone number.');
                }
                else this.setCustomValidity('');
            });
        }
    }
}





const $2aefad83322125c9$var$homeValuationRoute = '/api/v1/home-valuation';
class $2aefad83322125c9$export$2e2bcd8739ae039 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    destroy() {
    //
    }
    /**
   * Clean address string by removing call time frame suffix and extra whitespace
   *
   * Handles 17 templates that append ", call time frame: [value]" to the address:
   * - TheTrailblazerSir_2, TheMasterpiece (2x), TheInspirationSir_1, TheIconSir_3
   * - Influencer, GlobalCollective, Evolution, CorcoranAgent_1
   * - CompassSE (2x), CompassPrestige (2x), CompassNavigator
   * - ColdwellBanker (2x), Classic
   *
   * @param {string} address - Raw address string that may contain time frame info
   * @return {string} - Cleaned address string
   */ _cleanAddressString(address) {
        if (!address || typeof address !== 'string') return '';
        let cleaned = address.trim();
        // Fix 1: Handle "User entered address:\n..." pattern from TheProducer templates
        // Extract only the user entered address, ignore geocoded part
        if (cleaned.includes('User entered address:')) {
            const match = cleaned.match(/User entered address:\s*\n?\s*([^\n]+)/);
            if (match && match[1]) cleaned = match[1].trim();
        }
        // Fix 2: Remove ", call time frame: ..." suffix if present (affects 17 templates)
        const timeFrameIndex = cleaned.indexOf(', call time frame:');
        if (timeFrameIndex !== -1) cleaned = cleaned.substring(0, timeFrameIndex).trim();
        return cleaned;
    }
    /**
   * Transform Google Maps address components to structured format
   * @param {Array} addressComponents - Google Maps address components
   * @return {Object} - Structured address object
   */ _transformAddressComponents(addressComponents) {
        const get = (t)=>(addressComponents.find((c)=>c.componentType === t) || {}).componentName?.text;
        const structuredAddress = {};
        const streetNumber = get('street_number');
        const streetName = get('route');
        const state = get('administrative_area_level_1');
        const zipcode = get('postal_code');
        const addressLine2 = get('subpremise');
        // explicit precedence for city
        const city = get('locality') || get('sublocality_level_1') || get('neighborhood');
        if (streetNumber) structuredAddress.streetNumber = streetNumber;
        if (streetName) structuredAddress.streetName = streetName;
        if (city) structuredAddress.city = city;
        if (state) structuredAddress.state = state;
        if (zipcode) structuredAddress.zipcode = zipcode;
        if (addressLine2) structuredAddress.addressLine2 = addressLine2;
        return structuredAddress;
    }
    /**
   * Extract address and coordinates from Google Maps validation data
   * @param {Object} validatedAddressData - Google Maps validation result
   * @return {Object} - Object containing structuredAddress and coordinates
   */ _extractAddressAndCoordinates(validatedAddressData) {
        let structuredAddress = null;
        let coordinates = null;
        if (validatedAddressData?.result) {
            const { result: result } = validatedAddressData;
            // Extract structured address components
            if (result.address?.addressComponents) structuredAddress = this._transformAddressComponents(result.address.addressComponents);
            // Extract coordinates
            if (result.geocode?.location) coordinates = {
                latitude: result.geocode.location.latitude,
                longitude: result.geocode.location.longitude
            };
        }
        return {
            structuredAddress: structuredAddress,
            coordinates: coordinates
        };
    }
    /**
   * Filter out empty string values from an object, keeping only non-empty values
   * @param {Object} obj - Object to filter
   * @return {Object} - Filtered object without empty strings
   */ _filterEmptyStrings(obj) {
        const filtered = {};
        for (const [key, value] of Object.entries(obj))if (value !== '' && value !== null && value !== undefined) filtered[key] = value;
        return filtered;
    }
    /**
   * Extract raw address from form data with priority fallback chain.
   * Order is critical to handle 38 home valuation templates with different field naming:
   *
   * IMPORTANT: contactForms.js (line 189) stores name="message" in comments_attributes[0].text
   * because 'message' is in DEFAULT_LEAD_FIELDS. Fields NOT in DEFAULT_LEAD_FIELDS go to content.
   *
   * Priority (most specific → most generic):
   * 1. address           - Pattern 1: 9 templates (explicit address, stored in content)
   * 2. property-address  - Pattern 3: 4 templates (dash variant with JS, stored in content)
   * 3. property_address  - Pattern 4: 3 templates (underscore, stored in content - handles VanguardProperties!)
   * 4. Property_Address  - Pattern 5: 1 template (capital P - TheProducer/HomeValuationRansomHouse, stored in content)
   * 5. comments_attributes[0].text - Pattern 2: ALL 17 templates with name="message" store HERE!
   *                                   (e.g., Evolution/HomeValuation, TheProducer/HomeValuation, etc.)
   * 6. message           - Pattern 6: 4 templates with JS-populated message (rare, checked last)
   * 7-8. homeValuationAddress, propertyAddress - Legacy/unknown formats
   *
   * Critical: Each field is cleaned BEFORE checking, so dropdown values are skipped and we try next field
   *
   * @param {Object} data - Form data
   * @return {string} - Raw address string (may contain trailing text like ", call time frame: ...")
   */ _getRawAddress(data) {
        const content = data.activity.content || {};
        const comments = data.activity.comments_attributes?.[0]?.text;
        const possibleFields = [
            content.address,
            content['property-address'],
            content.property_address,
            content.Property_Address,
            comments,
            content.message,
            content.homeValuationAddress,
            content.propertyAddress
        ];
        return possibleFields.map((field)=>field && this._cleanAddressString(field)).find(Boolean) || '';
    }
    /**
   * Logs lead-related events for monitoring
   * @param {string} eventType - Type of event
   * @param {Object} data - Form data
   * @param {Error} error - Optional error object
   */ _logLeadEvent(eventType, data, error = null) {
        const eventPayload = {
            event: eventType,
            companyId: this.config.companyId,
            websiteId: this.config.websiteId,
            timestamp: new Date().toISOString(),
            hasEmail: !!data.activity?.author_email,
            hasAddress: !!this._getRawAddress(data)
        };
        if (error) {
            // Use userMessage (sanitized) instead of raw message to prevent PII exposure
            // userMessage is set by _getUserFriendlyErrorMessage() which provides safe messages
            eventPayload.errorMessage = error.userMessage || (error.status ? `Request failed with status ${error.status}` : 'An error occurred');
            eventPayload.errorName = error.name;
            eventPayload.errorStatus = error.status;
        }
        // Log to console with structured format for log aggregation
        // eslint-disable-next-line no-console
        console.error(`[HomeValuation] ${eventType}`, JSON.stringify(eventPayload));
        // If PostHog is available, send event for analytics
        // Wrap in try/catch to prevent SDK failures from blocking submissions
        if (this.window.posthog) try {
            this.window.posthog.capture(eventType, eventPayload);
        } catch (posthogError) {
            // eslint-disable-next-line no-console
            console.error('[HomeValuation] PostHog capture failed:', posthogError);
        }
    }
    /**
   * Maps error types to user-friendly messages
   * @param {Error} error - The error object
   * @returns {string} - User-friendly message
   */ _getUserFriendlyErrorMessage(error) {
        if (error.name === 'AbortError' || error.message?.includes('timeout')) return 'Connection timed out. Please try again.';
        if (error.name === 'TypeError' && error.message?.includes('fetch')) return 'Unable to connect. Please check your internet connection and try again.';
        if (error.status === 503 || error.status === 502 || error.status === 504) return 'Service temporarily unavailable. Please try again in a moment.';
        if (error.status === 400) return 'Please check your information and try again.';
        return 'Something went wrong. Please try again or contact us directly.';
    }
    /**
   * Build formatted address string from structured address components
   * @param {Object} structuredAddress - Structured address object
   * @return {string} - Formatted address string
   */ _formatStructuredAddress(structuredAddress) {
        if (!structuredAddress || Object.keys(structuredAddress).length === 0) return '';
        const parts = [];
        // Line 1: streetNumber streetName addressLine2
        const line1 = [
            structuredAddress.streetNumber,
            structuredAddress.streetName,
            structuredAddress.addressLine2
        ].filter(Boolean).join(' ');
        parts.push(line1);
        // Line 2: city, state zipcode
        const cityState = [
            structuredAddress.city,
            structuredAddress.state
        ].filter(Boolean).join(', ');
        const line2 = [
            cityState,
            structuredAddress.zipcode
        ].filter(Boolean).join(' ');
        parts.push(line2);
        return parts.filter(Boolean).join(', ');
    }
    /**
   * Build home valuation data object
   * @param {Object} data - Form data
   * @param {string} homeValuationEstimate - Home valuation estimate
   * @param {Object} structuredAddress - Structured address object
   * @param {Object} coordinates - Coordinates object
   * @return {Object} - Home valuation data object
   */ _buildHomeValuationData(data, homeValuationEstimate, structuredAddress, coordinates) {
        // Build homeValuationAddress from structured address (validated by Google) if available
        // Format: streetNumber streetName, city, state zipcode, addressLine2
        const homeValuationAddress = this._formatStructuredAddress(structuredAddress) || this._getRawAddress(data);
        // Validate that we have an address before proceeding
        if (!homeValuationAddress) throw new Error('Unable to extract home valuation address from form data');
        // Required fields that must always be included
        const requiredFields = {
            companyId: data.companyId,
            homeValuationAddress: homeValuationAddress,
            homeValuationEstimate: homeValuationEstimate ? new Intl.NumberFormat('en-US', {
                style: 'currency',
                currency: 'USD',
                maximumFractionDigits: 0,
                minimumFractionDigits: 0
            }).format(homeValuationEstimate) : null,
            websiteId: data.page.websiteId,
            sourceUrl: data.activity.source_url
        };
        // Optional fields that will be filtered if empty
        const optionalFields = {
            leadEmailAddress: data.activity.author_email,
            leadFullName: data.activity.author_name,
            leadPhoneNumber: data.activity.author_phone,
            parcelId: data.activity.content?.parcelId,
            resourceId: data.page.pageMeta?.resourceId,
            pageId: data.page.pageId,
            sourceResource: data.page.pageMeta?.sourceResource,
            pageElementId: data.page.pageMeta?.pageElementId,
            formId: data.page.pageMeta?.formId,
            utmSource: data.activity.content?.utm_source,
            utmMedium: data.activity.content?.utm_medium,
            utmCampaign: data.activity.content?.utm_campaign,
            utmTerm: data.activity.content?.utm_term,
            utmContent: data.activity.content?.utm_content,
            utmId: data.activity.content?.utm_id,
            timeToSell: data.activity.content?.timeToSell,
            lookingToBuy: data.activity.content?.lookingToBuy,
            referrer: data.referrer,
            content: data.activity.content || {},
            fields: data.fields || {}
        };
        // Filter out empty strings from optional fields
        const filteredOptionalFields = this._filterEmptyStrings(optionalFields);
        return {
            ...requiredFields,
            ...filteredOptionalFields,
            // Add structured address and coordinates if they exist
            ...structuredAddress && {
                address: structuredAddress
            },
            ...coordinates && {
                coordinates: coordinates
            }
        };
    }
    /**
   * Validate address with Google Maps
   * @param {string} rawAddress - Raw address string
   * @returns {Promise<Object|null>} - Validated address data or null
   * @throws {Error} - If validation fails, error is thrown with userMessage
   */ async _validateAddressSafely(rawAddress) {
        if (!rawAddress) {
            // eslint-disable-next-line no-console
            console.error('Home valuation: No address found in form data');
            return null;
        }
        try {
            return await this._validateAddressWithGoogleMaps(rawAddress);
        } catch (error) {
            // eslint-disable-next-line no-console
            console.error('Error validating address with Google Maps:', error);
            // Attach user-friendly message and throw so user sees the error
            error.userMessage = this._getUserFriendlyErrorMessage(error);
            throw error;
        }
    }
    /**
   * Get home valuation estimate
   * @param {Object} validatedAddressData - Validated address data
   * @returns {Promise<number|null>} - Home valuation estimate or null
   * @throws {Error} - If estimate fetch fails, error is thrown with userMessage
   */ async _getHomeValuationEstimateSafely(validatedAddressData) {
        try {
            return await this._getHomeValuationEstimate(validatedAddressData);
        } catch (error) {
            // eslint-disable-next-line no-console
            console.error('Error getting home valuation estimate:', error);
            // Attach user-friendly message and throw so user sees the error
            error.userMessage = this._getUserFriendlyErrorMessage(error);
            throw error;
        }
    }
    /**
   * Parse response text into payload object
   * @param {string} text - Response text
   * @returns {Object} - Parsed payload
   */ _parseResponsePayload(text) {
        try {
            return text ? JSON.parse(text) : {};
        } catch  {
            return {
                raw: text
            };
        }
    }
    /**
   * Create error from failed response
   * @param {Object} payload - Response payload
   * @param {number} status - HTTP status code
   * @returns {Error} - Error object with status and payload
   */ _createResponseError(payload, status) {
        const errorMessage = payload && typeof payload === 'object' && Object.keys(payload).length ? payload.message || JSON.stringify(payload) : 'Request failed';
        const error = new Error(errorMessage);
        // Preserve payload properties if it's an object
        if (payload && typeof payload === 'object' && Object.keys(payload).length) Object.assign(error, payload);
        // Preserve numeric HTTP status - must be set after Object.assign
        // to ensure it takes precedence over any status in payload
        error.status = status;
        return error;
    }
    /**
   * Submit lead to API endpoint
   * @param {string} leadRoute - API endpoint URL
   * @param {Object} homeValuationData - Data to submit
   * @returns {Promise<Object>} - Submission result
   */ async _submitLead(leadRoute, homeValuationData) {
        const controller = new AbortController();
        const timeoutId = setTimeout(()=>controller.abort(), 10000);
        try {
            const response = await fetch(leadRoute, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify(homeValuationData),
                signal: controller.signal
            });
            clearTimeout(timeoutId);
            const text = await response.text();
            const payload = this._parseResponsePayload(text);
            if (!response.ok) throw this._createResponseError(payload, response.status);
            if (payload && payload.status === 'success' && payload.redirectUrl) {
                this.window.location.href = payload.redirectUrl;
                return {
                    redirected: true,
                    url: payload.redirectUrl
                };
            }
            return payload;
        } catch (error) {
            clearTimeout(timeoutId);
            throw error;
        }
    }
    /**
   * Submit home valuation request with Google Maps validation
   * @param {Object} data
   * @return {Promise<Object>}
   */ async _submitHomeValuationRequest(data) {
        const { config: config } = this;
        // Use websiteApiGatewayUrl from config
        if (!config.websiteApiGatewayUrl) throw new Error('websiteApiGatewayUrl not configured for home valuation');
        // Log submission started
        this._logLeadEvent('home_valuation_submission_started', data);
        try {
            // Validate address with Google Maps
            const rawAddress = this._getRawAddress(data);
            let validatedAddressData = null;
            try {
                validatedAddressData = await this._validateAddressSafely(rawAddress);
            } catch (error) {
                // Error already has userMessage from _validateAddressSafely
                this._logLeadEvent('home_valuation_address_validation_failed', data, error);
                throw error;
            }
            // Get home valuation estimate
            let homeValuationEstimate = null;
            try {
                homeValuationEstimate = await this._getHomeValuationEstimateSafely(validatedAddressData);
            } catch (error) {
                // Error already has userMessage from _getHomeValuationEstimateSafely
                this._logLeadEvent('home_valuation_estimate_failed', data, error);
                throw error;
            }
            // Extract structured address and coordinates from Google Maps validation
            const { structuredAddress: structuredAddress, coordinates: coordinates } = this._extractAddressAndCoordinates(validatedAddressData);
            const leadRoute = `${config.websiteApiGatewayUrl}${$2aefad83322125c9$var$homeValuationRoute}`;
            const homeValuationData = this._buildHomeValuationData(data, homeValuationEstimate, structuredAddress, coordinates);
            const result = await this._submitLead(leadRoute, homeValuationData);
            // Log success
            this._logLeadEvent('home_valuation_submission_success', data);
            return result;
        } catch (error) {
            // Ensure error has user-friendly message (may already be set by helper methods)
            if (!error.userMessage) error.userMessage = this._getUserFriendlyErrorMessage(error);
            this._logLeadEvent('home_valuation_submission_failed', data, error);
            throw error;
        }
    }
    /**
   * Validate address using Google Maps Address Validation API
   * @param {string} addressStr - The address string to validate
   * @returns {Promise<Object|null>} - Validated address data or null if validation fails
   */ async _validateAddressWithGoogleMaps(addressStr) {
        const { config: config, window: window } = this;
        // Ensure Google Maps API key is loaded
        let apiKey = config.googleMapsAPIKey;
        if (!apiKey && window.luxuryPresence?.mapApiLoader) apiKey = await window.luxuryPresence.mapApiLoader.getMapApiKey();
        if (!apiKey) throw new Error('Google Maps API key not configured');
        const controller = new AbortController();
        const timeoutId = setTimeout(()=>controller.abort(), 10000);
        try {
            const response = await fetch(`https://addressvalidation.googleapis.com/v1:validateAddress?key=${apiKey}`, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                    address: {
                        addressLines: [
                            addressStr
                        ]
                    },
                    enableUspsCass: false
                }),
                signal: controller.signal
            });
            clearTimeout(timeoutId);
            if (!response.ok) {
                const error = new Error(`Address validation failed: ${response.status}`);
                error.status = response.status;
                throw error;
            }
            return response.json();
        } catch (error) {
            clearTimeout(timeoutId);
            throw error;
        }
    }
    /**
   * Check if structured address has all mandatory fields
   * @param {Object} structuredAddress - Structured address object
   * @return {boolean}
   */ _hasMandatoryAddressFields(structuredAddress) {
        return !!(structuredAddress.streetNumber && structuredAddress.streetName && structuredAddress.city && structuredAddress.state && structuredAddress.zipcode);
    }
    /**
   * Log missing mandatory address fields
   * @param {Object} structuredAddress - Structured address object
   */ _logMissingAddressFields(structuredAddress) {
        const missingFields = [];
        if (!structuredAddress.streetNumber) missingFields.push('streetNumber');
        if (!structuredAddress.streetName) missingFields.push('streetName');
        if (!structuredAddress.city) missingFields.push('city');
        if (!structuredAddress.state) missingFields.push('state');
        if (!structuredAddress.zipcode) missingFields.push('zipcode');
        // eslint-disable-next-line no-console
        console.log('Home valuation estimate skipped - missing required fields:', missingFields.join(', '), 'Available fields:', Object.keys(structuredAddress).join(', '));
    }
    /**
   * Build query string from structured address
   * @param {Object} structuredAddress - Structured address object
   * @return {string}
   */ _buildAddressQueryString(structuredAddress) {
        return Object.entries(structuredAddress).map(([key, value])=>`${encodeURIComponent(key)}=${encodeURIComponent(value)}`).join('&');
    }
    /**
   * GET home valuation estimate
   * @param {string} address
   * @param {Object} validatedAddressData - Google Maps validated address data
   * @return {Promise<number|null>}
   */ async _getHomeValuationEstimate(validatedAddressData = null) {
        const { config: config } = this;
        if (!config.websiteApiGatewayUrl) throw new Error('websiteApiGatewayUrl not configured');
        const base = `${config.websiteApiGatewayUrl}${$2aefad83322125c9$var$homeValuationRoute}`;
        // Check if we have validated address data
        if (!validatedAddressData?.result?.address?.addressComponents) return null;
        const structuredAddress = this._transformAddressComponents(validatedAddressData.result.address.addressComponents);
        // Check if all mandatory fields exist
        if (!this._hasMandatoryAddressFields(structuredAddress)) {
            this._logMissingAddressFields(structuredAddress);
            return null;
        }
        // Build URL with query string
        const qs = this._buildAddressQueryString(structuredAddress);
        const homeValURL = `${base}?${qs}`;
        const controller = new AbortController();
        const timeoutId = setTimeout(()=>controller.abort(), 10000);
        try {
            const response = await fetch(homeValURL, {
                headers: {
                    Accept: 'application/json'
                },
                signal: controller.signal
            });
            clearTimeout(timeoutId);
            if (!response.ok) {
                const error = new Error(`Home valuation estimate failed: ${response.status}`);
                error.status = response.status;
                throw error;
            }
            const data = await response.json();
            return data?.valueDollars ?? null;
        } catch (error) {
            clearTimeout(timeoutId);
            // Re-throw to allow retry logic to handle it
            throw error;
        }
    }
}


const $e10bd00497be8876$export$97de66002300ed70 = 'middleName';
// Default lead fields
const $e10bd00497be8876$var$DEFAULT_LEAD_FIELDS = [
    'name',
    'firstName',
    'lastName',
    $e10bd00497be8876$export$97de66002300ed70,
    'email',
    'phone',
    'phoneNumber',
    'source',
    'message',
    'mlsId',
    'sourceUrl'
];
class $e10bd00497be8876$export$3c5380623cf51249 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    /**
   * Initialize Contact Form Controller at build time
   * @param { ConfigController } config
   * @param {Window} window
   * @param {Document} document
   */ constructor(config, window, document){
        super(config, window, document);
        this.forms = [];
        this.homeValuationService = new (0, $2aefad83322125c9$export$2e2bcd8739ae039)(config, window, document);
    }
    /**
   * Initialize Contact Form Controller at run time
   * Attach handlers and events to DOM
   * @param {Object} options
   */ initialize(options = {}) {
        try {
            const { document: document } = this;
            const { selector: selector } = options;
            let forms = [];
            if (selector) forms = document.querySelectorAll(`${selector} form[data-type="contact-form"]`);
            else forms = document.querySelectorAll('form[data-type="contact-form"]');
            forms.forEach((form)=>{
                this._attachSubmitHandler(form);
            // this._attachValidation(form);
            });
            this.forms = this.forms.concat(forms);
        } catch (e) {
            // eslint-disable-next-line no-console
            console.log(e);
        }
    }
    /**
   * Controllers must implement a "destroy" method to be called
   * after page navigation to remove event handlers / cleanup
   */ destroy() {
        this.forms = [];
    }
    /**
   * Handle submit from global context
   * @param {HTMLFormElement} form
   */ submitForm(form) {
        this._handleSubmit(null, form).catch((e)=>console.error(e));
    }
    /**
   * Attach submit event for form
   * @param {HTMLFormElement} contactForm
   */ _attachValidation(contactForm) {
        const { window: window } = this;
        const inputs = contactForm.querySelectorAll('input, select, textarea');
        inputs.forEach((input)=>{
            window.luxuryPresence.validation.applyFieldValidation(input);
        });
    }
    /**
   * Attach submit event for form
   * @param {HTMLFormElement} contactForm
   */ _attachSubmitHandler(contactForm) {
        contactForm.addEventListener('submit', (e)=>this._handleSubmit(e, contactForm));
    }
    /**
   * Extract and process form values
   * @param {HTMLFormElement} contactForm
   * @return {Object} - Processed form values
   */ _extractFormValues(contactForm) {
        const formData = new FormData(contactForm);
        const values = {};
        const nameParts = [];
        const nameKeyRegex = /^name(?:-\d+)?$/;
        formData.forEach((value, key)=>{
            if (typeof value === 'string') {
                const curr = value.trim();
                if (nameKeyRegex.test(key) && curr) nameParts.push(curr);
                const prev = values[key];
                values[key] = prev ? `${prev} ${curr}` : curr;
            } else values[key] = value;
        });
        if (nameParts.length) values.name = nameParts.join(' ').trim();
        else if (!values.name && values.firstName) {
            values.name = values.firstName;
            if (values.lastName) values.name += ` ${values.lastName}`;
        }
        return values;
    }
    /**
   * Build submission data object
   * @param {Object} values - Form values
   * @param {Object} fields - Form fields
   * @param {HTMLFormElement} contactForm - Form element
   * @return {Object} - Submission data
   */ _buildSubmissionData(values, fields, contactForm) {
        const { window: window, config: config } = this;
        const content = Object.keys(values).filter((key)=>!$e10bd00497be8876$var$DEFAULT_LEAD_FIELDS.includes(key)).reduce((result, key)=>{
            // eslint-disable-next-line
            result[key] = values[key];
            return result;
        }, {});
        const { pageId: pageId, companyId: companyId, websiteId: websiteId, pageMeta: pageMeta } = config;
        const utm = window.localStorage.getItem('utm_vars') || '{}';
        const referrer = window.localStorage.getItem('referrer') || '';
        const formId = this._getFormId(contactForm);
        return {
            activity: {
                author_email: values.email,
                author_name: values.name,
                author_phone: values.phone || values.phoneNumber,
                activity_source: values.source || 'CONTACT_INQUIRY',
                comments_attributes: [
                    {
                        text: values.message || undefined
                    }
                ],
                source_url: window.location.href,
                content: {
                    ...content,
                    ...JSON.parse(utm)
                }
            },
            page: {
                pageId: pageId,
                companyId: companyId,
                websiteId: websiteId,
                pageMeta: {
                    ...pageMeta,
                    formId: formId
                }
            },
            companyId: companyId,
            referrer: referrer,
            fields: fields
        };
    }
    /**
   * Handle successful form submission
   * @param {HTMLFormElement} contactForm - Form element
   */ _handleSubmissionSuccess(contactForm) {
        const { window: window } = this;
        const closeDelay = contactForm.dataset.delay || (0, $a3e97e89bbc2a366$export$f037eeffb5561205);
        contactForm.classList.remove('loading');
        contactForm.classList.remove('error');
        contactForm.classList.add('success');
        // TODO: Review producer and classic to deprecate "hide"
        contactForm.querySelectorAll('.success').forEach((el)=>el.classList.remove('hide'));
        contactForm.dispatchEvent(new Event('formsubmitted'));
        setTimeout(()=>{
            window.lpUI.hideClosestModal(contactForm);
            contactForm.reset();
            window.lpUI.sideMenuHide();
            contactForm.querySelectorAll('.success').forEach((el)=>el.classList.add('hide'));
            contactForm.classList.remove('success');
        }, closeDelay);
    }
    /**
   * Submit Contact Form Handler
   * @param {Event} e
   * @param {HTMLFormElement} contactForm
   * @return {Promise<Object>}
   */ async _handleSubmit(e, contactForm) {
        if (e) e.preventDefault();
        if (contactForm.classList.contains('loading')) // Form already submitting
        return;
        // Hide any previous error message and clear error state
        this._hideSubmissionError(contactForm);
        contactForm.classList.remove('error');
        contactForm.classList.add('loading');
        try {
            // Extract form values first (before async operations)
            const values = this._extractFormValues(contactForm);
            // TODO: HoneyPot should still send request
            if (values.middleName) {
                contactForm.classList.remove('loading');
                return;
            }
            const fields = this._getFields(contactForm);
            const data = this._buildSubmissionData(values, fields, contactForm);
            await this._submitLeadRequest(data);
            this._sendGAEvent(data);
            this._handleSubmissionSuccess(contactForm);
        } catch (err) {
            // eslint-disable-next-line no-console
            console.error('Form submission failed:', err);
            contactForm.dispatchEvent(new Event('formsubmiterror'));
            contactForm.classList.remove('loading');
            contactForm.classList.add('error');
            // Show user-friendly error message if available (from home valuation service)
            if (err.userMessage) this._showSubmissionError(contactForm, err.userMessage);
            else this._showSubmissionError(contactForm, 'Something went wrong. Please try again.');
        }
    }
    /**
   * Alias anonymous user with canonical ID using event bus
   * Links the user's anonymous browsing session to their canonical identity
   * @param {Object} data - Form submission data
   * @private
   */ _aliasUserWithEventBus(data) {
        try {
            // Check if event bus library and required methods are available
            if (!this.window.eventBusProvider?.alias || !this.window.eventBusProvider?.isIdentified || !this.window.eventBusProvider?.getDistinctId || !this.window.LuxuryPresenceEventBus?.generateUUIDv5FromCompanyEmail) return; // Event bus or required methods not available
            // Skip if user is already identified
            if (this.window.eventBusProvider.isIdentified()) {
                console.log('[EventBus] User already identified, skipping alias');
                return;
            }
            const email = data.activity?.author_email;
            const { companyId: companyId } = this.config;
            if (!email || !companyId) {
                console.warn('[EventBus] Missing required data for user alias');
                return;
            }
            // Get the anonymous distinct ID from PostHog
            const anonId = this.window.eventBusProvider.getDistinctId();
            if (!anonId) {
                console.warn('[EventBus] No anonymous ID available for alias');
                return;
            }
            // Generate deterministic canonical ID from company + email
            const canonicalId = this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(companyId, email);
            // Create alias linking anonymous ID to canonical ID
            this.window.eventBusProvider.alias({
                anonId: anonId,
                canonicalId: canonicalId
            });
            console.log('[EventBus] User aliased with canonical ID');
        } catch (error) {
            // Never block form submission due to analytics errors
            console.error('[EventBus] User alias failed:', error);
        }
    }
    /**
   * Send Lead Request
   * @param {Object} data
   * @return {Promise<Object>}
   */ async _submitLeadRequest(data) {
        const { config: config } = this;
        // Alias user with event bus before submitting the lead
        this._aliasUserWithEventBus(data);
        if (config.myhomeDashboardEnabled && (data.activity?.activity_source === 'HOME_VALUATION' || data.activity?.activity_source === 'HOME_VALUE')) return this.homeValuationService._submitHomeValuationRequest(data);
        const leadRoute = `${config.leadIngesterUrl}/api/v1/leads`;
        return fetch(leadRoute, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(data)
        }).then((response)=>{
            if (!response.ok) return response.json().then((error)=>{
                throw error;
            });
            return response.json();
        });
    }
    /**
   * Send GA event
   * @param {Object} data
   */ _sendGAEvent(data) {
        const { document: document } = this;
        let event = {
            hitType: 'event',
            eventCategory: 'button',
            eventAction: 'click'
        };
        switch(data.activity.activity_source){
            case 'NEWSLETTER_SIGNUP':
                event.eventLabel = 'Newsletter';
                document.sendGoogleTagManagerEvent('event', 'newsletter_signup');
                break;
            case 'HOME_SEARCH':
                event.eventLabel = 'HomeSearch';
                document.sendGoogleTagManagerEvent('event', 'home_search');
                break;
            case 'HOME_VALUE':
            case 'HOME_VALUATION':
                event.eventLabel = 'HomeValue';
                document.sendGoogleTagManagerEvent('event', 'home_valuation');
                break;
            case 'EBOOK':
                event.eventLabel = 'Ebook';
                document.sendGoogleTagManagerEvent('event', 'ebook_download');
                break;
            case 'CONTACT_INQUIRY':
            default:
                // for contact forms, Marketing has requested that they see a page-view of 'thank-you' as indication of success
                // Note that this will break if we have actual page with url of /thank-you
                event = {
                    hitType: 'pageview',
                    page: '/thank-you'
                };
                document.sendGoogleTagManagerEvent('event', 'contact_inquiry');
                break;
        }
        document.sendGoogleAnalyticsEvent(event);
    }
    /**
   * Gather fields / schema for form, used for display in CRM
   * @param {HTMLFormElement} form
   * @return {Object}
   */ _getFields(form) {
        const inputs = form.querySelectorAll('input, select, textarea');
        const fields = {};
        inputs.forEach((input)=>{
            const { id: id, name: name, type: inputType } = input;
            if (name === $e10bd00497be8876$export$97de66002300ed70) // Honeypot continue
            return true;
            let label = '';
            if (id) {
                const labelNode = form.querySelector(`label[for='${id}']`);
                if (labelNode) label = labelNode.textContent.trim();
                else if (input.placeholder) label = input.placeholder.trim();
            }
            fields[name] = {
                label: label,
                type: input.tagName,
                inputType: input.tagName === 'INPUT' ? inputType : 'text'
            };
        });
        return fields;
    }
    /**
   * Figure out relevant section or div ID for form
   * @param {HTMLFormElement} form
   * @return {string}
   */ _getFormId(form) {
        const SELECTORS = "section[id^='section-'], footer[id], .modal[id^='modal-']";
        const parent = form.closest(SELECTORS);
        return parent?.id ? this._cleanFormId(parent.id) : '';
    }
    /**
   * Remove prefix from formID
   * @param {string} formId
   * @return {string}
   */ _cleanFormId(formId) {
        const PREFIXES = [
            'section-',
            'modal-'
        ];
        for (const prefix of PREFIXES){
            if (formId.startsWith(prefix)) return formId.substring(prefix.length);
        }
        return formId;
    }
    /**
   * Show submission error message on form
   * @param {HTMLFormElement} form
   * @param {string} message
   */ _showSubmissionError(form, message) {
        const errorEl = form.querySelector('.submission-error-message');
        if (errorEl) {
            errorEl.textContent = message || 'Something went wrong. Please try again.';
            errorEl.style.display = 'block';
        }
    }
    /**
   * Hide submission error message on form
   * @param {HTMLFormElement} form
   */ _hideSubmissionError(form) {
        const errorEl = form.querySelector('.submission-error-message');
        if (errorEl) errorEl.style.display = 'none';
    }
}



const $ea6901fdf47e0ec1$var$CALLBACK = '__googleMapsCallback';
const $ea6901fdf47e0ec1$var$GOOGLE_MAPS_URL = 'https://maps.googleapis.com/maps/api/js';
const $ea6901fdf47e0ec1$export$76299006759be400 = 1024;
class $ea6901fdf47e0ec1$export$3c19195edca3fa5c extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    /**
   * Initialize Button Controller at build time
   * @param { ConfigController } config
   * @param {Window} window
   * @param {Document} document
   */ constructor(config, window, document){
        super(config, window, document);
        this.retries = 3;
        this.callbacks = [];
        this.id = `__googleMapsScriptId${Date.now()}`;
        this._apiKey = '';
        this.reset();
    }
    /**
   * Set the Google Maps api key
   * @param {string} apiKey
   */ set apiKey(apiKey) {
        this._apiKey = apiKey;
        this.config.setGoogleMapsAPIKey(apiKey);
    }
    /**
   * Get the Google Maps api key
   * @return {string}
   */ get apiKey() {
        return this._apiKey;
    }
    /**
   * Reset the loader state.
   */ reset() {
        this.deleteScript();
        this.done = false;
        this.loading = false;
        this.errors = [];
        this.onerrorEvent = null;
    }
    /**
   * Destroy
   */ destroy() {
        this.reset();
    }
    /**
   * get map api Key
   * @return {Promise<string>}
   */ async getMapApiKey() {
        if (this.apiKey) return this.apiKey;
        try {
            const response = await fetch(`${this._getBaseUrl()}/api/v1/map`);
            if (!response.ok) throw new Error('Failed to fetch API key');
            const code = await response.text();
            this.apiKey = code;
            return this.apiKey;
        } catch (e) {
            // eslint-disable-next-line no-console
            console.error(e);
            return '';
        }
    }
    /**
   * CreateUrl returns the Google Maps JavaScript API script url ].
   * @return {string}
   */ async createUrl() {
        let url = $ea6901fdf47e0ec1$var$GOOGLE_MAPS_URL;
        url += `?callback=${$ea6901fdf47e0ec1$var$CALLBACK}`;
        const apiKey = await this.getMapApiKey();
        if (apiKey) url += `&key=${apiKey}`;
        url += `&libraries=places`;
        return url;
    }
    /**
   * Set the script on document.
   */ async setScript() {
        if (this.document.getElementById(this.id)) {
            this.callback();
            return;
        }
        const url = await this.createUrl();
        const script = this.document.createElement('script');
        script.id = this.id;
        script.type = 'text/javascript';
        script.src = url;
        script.onerror = this.loadErrorCallback.bind(this);
        script.defer = true;
        script.async = true;
        this.document.head.appendChild(script);
    }
    /**
   * Function to be called if script tag fails
   * @param {Error} e
   */ loadErrorCallback(e) {
        this.errors.push(e);
        if (this.errors.length <= this.retries) {
            const delay = this.errors.length * 2 ** this.errors.length;
            // eslint-disable-next-line no-console
            console.log(`Failed to load Google Maps script, retrying in ${delay} ms.`);
            setTimeout(()=>{
                this.deleteScript();
                this.setScript().catch((e)=>console.error(e));
            }, delay);
        } else {
            this.onerrorEvent = e;
            this.callback();
        }
    }
    /**
   * Delete the script tag
   */ deleteScript() {
        const script = this.document.getElementById(this.id);
        if (script) script.remove();
    }
    /**
   * Load the Google Maps JavaScript API script and return a Promise.
   * @return {Promise}
   */ load() {
        return this.loadPromise();
    }
    /**
   * Load the Google Maps JavaScript API script and return a Promise.
   * @return {Promise}
   */ loadPromise() {
        return new Promise((resolve, reject)=>{
            this.loadCallback((err)=>{
                if (!err) resolve();
                else reject(err);
            });
        });
    }
    /**
   * Load the Google Maps JavaScript API script with a callback.
   * @param {Function<Event>} fn
   */ loadCallback(fn) {
        this.callbacks.push(fn);
        this.execute();
    }
    /**
   * Sets the callback function that will be sent as part of the script URL.
   */ setCallback() {
        this.window.__googleMapsCallback = this.callback.bind(this);
    }
    /**
   * Reset if failed
   */ resetIfRetryingFailed() {
        if (this.failed) this.reset();
    }
    /**
   * This is the function that we set the callback parameter to.
   */ callback() {
        this.done = true;
        this.loading = false;
        this.callbacks.forEach((cb)=>{
            cb(this.onerrorEvent);
        });
        this.callbacks = [];
    }
    /**
   * Set the script a if needed; set the callback
   */ execute() {
        if (this.window.google && this.window.google.maps && this.window.google.maps.version) // Google Maps already loaded
        this.callback();
        this.resetIfRetryingFailed();
        if (this.done) this.callback();
        else if (this.loading) ;
        else {
            this.loading = true;
            this.setCallback();
            this.setScript().catch((e)=>console.error(e));
        }
    }
    /**
   * get base url based on current config
   * @return {string}
   */ _getBaseUrl() {
        // Special handling for page builder since no wag available
        const { isBuilder: isBuilder, websiteApiGatewayUrl: websiteApiGatewayUrl } = this.config;
        return isBuilder ? websiteApiGatewayUrl : '';
    }
    /**
   * Resize static map requests to the max 1024px while preserving aspect ratio
   * @param {number} width
   * @param {number} height
   * @return {{width, height}}
   */ resizeStaticMapDimensions(width, height) {
        if (width <= $ea6901fdf47e0ec1$export$76299006759be400 && height <= $ea6901fdf47e0ec1$export$76299006759be400) return {
            width: width,
            height: height
        };
        // Size param ignored if dimensions exceed STATIC_MAP_MAX_DIM
        const ratio = Math.min($ea6901fdf47e0ec1$export$76299006759be400 / width, $ea6901fdf47e0ec1$export$76299006759be400 / height);
        return {
            width: parseInt(width * ratio),
            height: parseInt(height * ratio)
        };
    }
    /**
   * Convert theme to static api param object
   * @param {Object} theme
   * @return {Object}
   */ convertThemeToStaticApiUrl(theme) {
        // https://developers.google.com/maps/documentation/maps-static/style-reference
        // Google Maps Static API uses a special syntax for it's urls based on the interactive map styles
        return theme.map((t)=>{
            const styles = t.stylers.reduce((acc, s)=>{
                const visibility = s.visibility ? `visibility:${s.visibility}` : '';
                const color = s.color ? `color:${s.color.replace('#', '0x')}` : '';
                const lightness = s.lightness ? `lightness:${s.lightness}` : '';
                return `${acc}|${visibility}${color}${lightness}`;
            }, '');
            const element = t.elementType ? `|element:${t.elementType}` : '';
            return `feature:${t.featureType}${element}${styles}`;
        });
    }
    /**
   * generate digital signature for url
   * @param {string} queryString to sign
   * @return {Promise<string>} digitally signed url
   */ async getMapApiSignedUrl(queryString) {
        try {
            const response = await fetch(`${this._getBaseUrl()}/api/v1/map/signature?${queryString}`);
            if (!response.ok) throw new Error('Failed to fetch signed URL');
            const { url: url } = await response.json();
            return url;
        } catch (e) {
            // eslint-disable-next-line no-console
            console.error(e);
            return '';
        }
    }
    /**
   * Generate static map url
   * @param {number} lat
   * @param {number} lng
   * @param {number} zoom
   * @param {Object} theme
   * @param {number} srcWidth
   * @param {number} srcHeight
   * @return {string}
   */ generateStaticMapUrl(lat, lng, zoom, theme, srcWidth, srcHeight) {
        const baseUrl = 'https://maps.googleapis.com/maps/api/staticmap';
        const { width: width, height: height } = this.resizeStaticMapDimensions(srcWidth, srcHeight);
        const query = {
            center: `${lat},${lng}`,
            zoom: zoom,
            scale: 2,
            size: `${width}x${height}`,
            key: this.apiKey
        };
        if (theme) query.style = this.convertThemeToStaticApiUrl(theme);
        const params = new URLSearchParams();
        Object.entries(query).forEach(([key, value])=>{
            if (Array.isArray(value)) value.forEach((v)=>params.append(key, v.toString()));
            else params.append(key, value.toString());
        });
        return `${baseUrl}?${params.toString()}`;
    }
    /**
   * Generate static map url with digital signature
   * @param {Object} {
   *  srcWidth {number}, required
   *  srcHeight {number}, required
   *  theme {array},
   *  center: `${lat},${lng}`, required
   *  zoom: number, required
   *  markers: `${lat},${lng}`,
   *  scale: number,
   *  otherQueryParams... (these must match what is compatible with google maps static api query params)
   * }
   * @return {Promise<string>} digitally signed url
   */ async generateDigitallySignedStaticMapUrl({ srcWidth: srcWidth, srcHeight: srcHeight, theme: theme, ...query }) {
        const { width: width, height: height } = this.resizeStaticMapDimensions(srcWidth, srcHeight);
        const queryParams = {
            ...query,
            size: `${width}x${height}`
        };
        if (theme) queryParams.style = this.convertThemeToStaticApiUrl(theme);
        const params = new URLSearchParams();
        Object.entries(queryParams).forEach(([key, value])=>{
            if (Array.isArray(value)) value.forEach((v)=>params.append(key, v.toString()));
            else params.append(key, value.toString());
        });
        const queryString = params.toString();
        try {
            // fetch digitally signed url
            return await this.getMapApiSignedUrl(queryString);
        } catch (e) {
            console.error(e);
            return '';
        }
    }
}


/* eslint-disable import/prefer-default-export */ 

class $0a0ad49f13c0b8fd$export$ba9afeb75f20f616 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    // constructor is not needed as it is inherited from BaseController
    /**
   * Controllers must implement a "destroy" method to be called
   * after page navigation to remove event handlers / cleanup
   */ destroy() {}
    /**
   * Places (re-places) a value into the query string under specified key
   *   or removes it if new value is null or undefined
   * @param {string} key
   * @param {string|null|undefined|object|array} value
   * @param {string} url - defaults to window.location.href
   * @return {string}
   */ // eslint-disable-next-line sonarjs/cognitive-complexity
    updateQueryString(key, value, url) {
        // https://stackoverflow.com/questions/5999118/how-can-i-add-or-update-a-query-string-parameter
        if (!url) // eslint-disable-next-line
        url = this.window.location.href;
        let re = new RegExp(`([?&])${key}=.*?(&|#|$)`, 'i');
        let replacement = '';
        if (typeof value !== 'undefined' && value !== null) {
            if (Array.isArray(value)) {
                if (value.length) replacement = this.serializeArray(key, value);
            } else if (typeof value === 'object') {
                re = new RegExp(`([?&])${key}\\[[^=]*\\]=.*?(&|#|$)`, 'i');
                replacement = this.serializeObj(value, '', key);
            } else replacement = `${key}=${encodeURIComponent(value)}`;
        }
        const hash = url.split('#');
        let result = hash[0];
        if (re.test(url)) {
            let clean = result;
            replacement = replacement ? `$1${replacement}$2` : '$1';
            while(re.test(clean)){
                result = clean.replace(re, replacement);
                clean = clean.replace(re, '$1');
            }
            result = result.replace(/(&|\?)$/, '');
        } else if (replacement) {
            const separator = result.indexOf('?') !== -1 ? '&' : '?';
            result += `${separator}${replacement}`;
        }
        if (typeof hash[1] !== 'undefined' && hash[1] !== null) result += `#${hash[1]}`;
        return result;
    }
    /**
   * Returns variable from query string specified by parameter name
   * @param {string} name
   * @param {string} url defaults to window.location.href
   * @return {string|null}
   */ getParameterByName(name, url) {
        if (!url) // eslint-disable-next-line
        url = this.window.location.href;
        // eslint-disable-next-line
        name = name.replace(/[[\]]/g, '\\$&');
        const regex = new RegExp(`[?&]${name}(=([^&#]*)|&|#|$)`);
        let results = Array.from(RegExp.prototype[Symbol.matchAll].call(regex, url)).flat();
        // check for object like syntax where the last value can be an array eg. advancedFilters[query][statusIds][in][0] or advancedFilters[query][city]
        if (!results.length) {
            const objRegex = new RegExp(`[?&]${name}(\\[.*?\\])=(.*?)(?=&|#|$)`, 'g');
            results = Array.from(RegExp.prototype[Symbol.matchAll].call(objRegex, url)).flat();
            return this._parseParamToObject(results, name === 'advancedFilters');
        }
        // For multiple param values, eg arrays
        /* Results from regex match all come in this form:
    [ '&advancedFilters[query][statusIds][in]=uuid-segundo-123', '[query][statusIds][in]', 'uuid-segundo-123' ]
    So using every third value will be the actual value and the second value will be the path
    */ if (results.length > 3) return results.reduce((acc, value, index)=>{
            if ((index + 1) % 3 === 0) acc.push(decodeURIComponent(value.replace(/\+/g, ' ')));
            return acc;
        }, []);
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, ' '));
    }
    /**
   * Generates section specific key to store page number in the URL
   * @param {string} sectionDomId
   * @return {string}
   */ makePageKey(sectionDomId) {
        return sectionDomId.replace('section-', '').replace(/-/g, '');
    }
    /**
   * Generates specific key to store parameter in the URL
   * uses prevsiouly calculated baseKey for section specific parameters
   * @param {Object} formParam
   * @param {string} baseKey pre-calculated base for section specific parameters
   * @return {string}
   */ makeParamKey(formParam, baseKey) {
        return formParam.global ? formParam.urlKey : `${baseKey}-${formParam.urlKey}`;
    }
    /**
   * Gets a set of parameters from window query string
   * always returns value of "page" parameter if present
   * @param {Object[]} formConfig
   * @param {string} sectionDomId
   * @return {Object}
   */ deserializeParams(formConfig, sectionDomId) {
        const params = {};
        const urlPageKey = this.makePageKey(sectionDomId);
        const page = this.getParameterByName(urlPageKey);
        if (page) params.page = parseInt(page);
        if (Array.isArray(formConfig)) formConfig.forEach((formParam)=>{
            const key = this.makeParamKey(formParam, urlPageKey);
            let urlValue = this.getParameterByName(key);
            if (formParam.type === 'int') {
                urlValue = parseInt(urlValue);
                // eslint-disable-next-line
                if (!isFinite(urlValue)) urlValue = null;
            } else if (formParam.type === 'bool' || formParam.type === 'boolean') urlValue = // eslint-disable-next-line
            urlValue === 'true' ? true : urlValue === 'false' ? false : null;
            else if (formParam.type === 'json') try {
                urlValue = JSON.parse(urlValue);
            } catch (e) {
            // no need to do anything
            }
            params[formParam.formKey || formParam.param] = urlValue;
        });
        return params;
    }
    /**
   * Serializes set of parameters defined by formConfig into the URL
   * adding or replacing or removing required parameters
   * @param {Object[]} formConfig
   * @param {string} sectionDomId
   * @param {Object} params
   * @return {string}
   */ serializeParams(formConfig, sectionDomId, params) {
        let result = this.window.location.href;
        const urlPageKey = this.makePageKey(sectionDomId);
        result = this.updateQueryString(urlPageKey, params.page, result);
        if (Array.isArray(formConfig)) formConfig.forEach((formParam)=>{
            const key = this.makeParamKey(formParam, urlPageKey);
            let value = params[formParam.formKey || formParam.param];
            if (formParam.type === 'json' && value !== null && typeof value !== 'undefined') value = JSON.stringify(value);
            result = this.updateQueryString(key, value, result);
        });
        return result;
    }
    /**
   * Formats small number for slider values
   * @param {number} value
   * @param {string} currency
   * @return {string}
   */ formatSliderAtom(value, currency = '') {
        const formattedValue = Number.isInteger(value) ? value : value.toFixed(2);
        return currency + formattedValue;
    }
    /**
   * Formats a number for slider values
   * @param {number} value
   * @param {string} currency
   * @param {string} delimiter
   * @return {string}
   */ formatSliderValue(value, currency = '', delimiter = '') {
        if (value < 1000) return this.formatSliderAtom(value, currency);
        if (value < 1000000) return `${this.formatSliderAtom(value / 1000, currency)}${delimiter}K`;
        return `${this.formatSliderAtom(value / 1000000, currency)}${delimiter}M`;
    }
    /**
   * Format price slider range
   * @param {number} value
   * @param {Object} range
   * @param {string} currency
   * @param {Object} options
   * @return {string}
   */ formatSliderPriceRange(value, range, currency, options) {
        if (range.min === value && value !== 0) return `${options.lowPrefix}${this.formatSliderValue(value, currency, ' ')}`;
        if (range.max === value) return `${this.formatSliderValue(value, currency, ' ')}${options.highSuffix}`;
        return `${this.formatSliderValue(value, currency, ' ')}`;
    }
    /**
   * Format area slider range
   * @param {number} value
   * @param {Object} range
   * @param {string} suffix
   * @param {Object} options
   * @return {string}
   */ formatSliderAreaRange(value, range, suffix, options) {
        if (range.min === value && value !== 0) return `${options.lowPrefix}${this.formatSliderValue(value)} ${suffix}`;
        if (range.max === value) return `${this.formatSliderValue(value)}${options.highSuffix} ${suffix}`;
        return `${this.formatSliderValue(value)} ${suffix}`;
    }
    /**
   * Utility function to get properties search parameters from a set of jQuery objects
   * @param {Object} options
   * @param {jQuery|HTMLElement} [options.queryElement]
   * @param {jQuery|HTMLElement} [options.priceSliderElement]
   * @param {jQuery|HTMLElement} [options.areaSliderElement]
   * @param {jQuery|HTMLElement} [options.neighborhoodSelect]
   * @return {Object}
   */ // eslint-disable-next-line sonarjs/cognitive-complexity
    getSearchFormValues(options) {
        const { queryElement: queryElement, priceSliderElement: priceSliderElement, areaSliderElement: areaSliderElement, neighborhoodSelect: neighborhoodSelect } = options;
        const result = {};
        if (queryElement) result.search = queryElement.value || null;
        if (priceSliderElement) {
            const priceValues = priceSliderElement.value.split(';');
            const priceMinLimit = parseInt(priceSliderElement.dataset.min);
            const priceMaxLimit = parseInt(priceSliderElement.dataset.max);
            const priceMin = parseInt(priceValues[0]);
            const priceMax = parseInt(priceValues[1]);
            result.priceMin = priceMin !== priceMinLimit ? priceMin : null;
            result.priceMax = priceMax !== priceMaxLimit ? priceMax : null;
        }
        if (areaSliderElement) {
            const areaValues = areaSliderElement.value.split(';');
            const areaMinLimit = parseInt(areaSliderElement.dataset.min);
            const areaMaxLimit = parseInt(areaSliderElement.dataset.max);
            const areaMin = parseInt(areaValues[0]);
            const areaMax = parseInt(areaValues[1]);
            result.areaMin = areaMin !== areaMinLimit ? areaMin : null;
            result.areaMax = areaMax !== areaMaxLimit ? areaMax : null;
        }
        if (neighborhoodSelect) result.neighborhoodId = neighborhoodSelect.value || null;
        return result;
    }
    /**
   * Add supports for object typeof values to be encoded on URL
   * Ref: https://stackoverflow.com/questions/1714786/query-string-encoding-of-a-javascript-object
   * @param {*} obj
   * @param {string} prefix
   * @param {string} baseParam used for grouping in case of nested objects
   * @returns
   */ // eslint-disable-next-line sonarjs/cognitive-complexity
    serializeObj(obj, prefix = '', baseParam = '') {
        const result = [];
        for(const prop in obj)if (obj.hasOwnProperty(prop)) {
            const value = obj[prop];
            let k;
            if (baseParam) {
                const newPrefix = prefix ? `[${prefix}][${prop}]` : `[${prop}]`;
                k = `${baseParam}${newPrefix}`;
            } else k = prefix ? `${prefix}[${prop}]` : prop;
            if (value !== null && Array.isArray(value)) {
                if (value.length) result.push(this.serializeArray(k, value));
            } else if (value !== null && typeof value === 'object') result.push(this.serializeObj(value, k));
            else result.push(`${k}=${encodeURIComponent(value)}`);
        }
        return result.join('&');
    }
    /**
   * Adds support for array values to be encoded on URL
   * @param {string} key
   * @param {Array} value
   * @param {string} baseParam
   */ serializeArray(key, value, baseParam = '') {
        const result = [];
        value.forEach((val)=>{
            const paramName = baseParam ? `${baseParam}${key}` : key;
            result.push(`${paramName}=${encodeURIComponent(val)}`);
        });
        return result.join('&');
    }
    /**
   * Private method to process string search values.
   * @param {Array} results comes from regex matchAll.
   * @param {Boolean} isAdvancedFilters flag to determine if the search is for advanced filters.
   * @returns
   */ _parseParamToObject(results, isAdvancedFilters = false) {
        if (!results.length) return null;
        const obj = {};
        for(let i = 0; i < results.length; i++)/* Results from regex match all come in this form:
      [ '&advancedFilters[query][statusIds][in]=uuid-segundo-123', '[query][statusIds][in]', 'uuid-segundo-123' ]
      So using every third value will be the actual value and the second value will be the path
    */ if ((i + 1) % 3 === 0) {
            const value = decodeURIComponent(results[i].replace(/\+/g, ' '));
            const path = results[i - 1];
            Object.assign(obj, this._setObjectPath(path, value, obj, isAdvancedFilters));
        }
        return obj;
    }
    /** *
   * Private method to set object value given a path
   * @param {String} path
   * @param {*} value
   * @param {Object} baseObj
   * @param {Boolean} isAdvancedFilters flag to determine if the search is for advanced filters.
   */ _setObjectPath(path, value, baseObj, isAdvancedFilters = false) {
        // eslint-disable-next-line
        const keys = path.split(/[\[\]]/).filter(Boolean);
        const afArrayKeys = [
            'in',
            'nin',
            'btw',
            'ciin',
            'cinin'
        ];
        const obj = {};
        let ref = obj;
        const valueExists = (0, $fc0a058ae42af628$export$267a1435fe18b8d4)(baseObj, keys.join('.'));
        keys.forEach((key, index)=>{
            if (index === keys.length - 1) {
                if (valueExists) ref[key] = Array.isArray(valueExists) ? [
                    ...valueExists,
                    value
                ] : [
                    valueExists,
                    value
                ];
                else ref[key] = isAdvancedFilters && afArrayKeys.includes(key) ? [
                    value
                ] : value;
            } else {
                ref[key] = baseObj[key] ? baseObj[key] : {};
                ref = ref[key];
            }
        });
        return obj;
    }
}


/* eslint-disable import/prefer-default-export */ 
class $2b1790aa32f109d1$export$43e435c053a109f6 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    /**
   * Initialize Expand Slider Controller at build time
   * @param { ConfigController } config
   * @param {Window} window
   * @param {Document} document
   */ constructor(config, window, document){
        super(config, window, document);
        this._createLightbox = this._createLightbox.bind(this);
        this.expandSliders = [];
    }
    /**
   * Initialize Expand Slider Controller at run time
   * Attach handlers and events to DOM
   * @param {Object} options
   */ initialize(options = {}) {
        try {
            const { document: document } = this;
            const expandSliders = document.querySelectorAll('.has-mobile-expand');
            expandSliders.forEach((block)=>{
                this._addExpandButton(block);
            });
            this.expandSliders = this.expandSliders.concat(expandSliders);
        } catch (e) {
            // eslint-disable-next-line no-console
            console.log(e);
        }
    }
    /**
   * Controllers must implement a "destroy" method to be called
   * after page navigation to remove event handlers / cleanup
   */ destroy() {
        const { document: document } = this;
        document.querySelectorAll('.lp-expand-btn, .lp-expand-btn-wrapper').forEach((element)=>element.remove());
        this.expandSliders = [];
    }
    /**
   * Create expand button for sliders
   * @param {HTMLElement} slider
   */ _addExpandButton(slider) {
        const { document: document } = this;
        const section = slider.closest('section[id]');
        const appendTargetSelector = slider.dataset.append;
        let expandBtn = section.querySelector('.lp-expand-btn');
        if (!expandBtn) {
            expandBtn = document.createElement('button');
            expandBtn.className = 'lp-expand-btn';
            expandBtn.setAttribute('aria-label', 'Open a lightbox');
            expandBtn.innerHTML = `<span class="lp-i lp-i--expand-alt" aria-hidden="true"></span>`;
            if (appendTargetSelector) {
                const appendTarget = section.querySelector(appendTargetSelector);
                if (appendTarget) appendTarget.appendChild(expandBtn);
            } else {
                const wrapper = document.createElement('div');
                wrapper.className = 'lp-expand-btn-wrapper';
                wrapper.style.position = 'relative';
                wrapper.appendChild(expandBtn);
                slider.parentNode.insertBefore(wrapper, slider.nextSibling);
            }
        }
        expandBtn.addEventListener('click', ()=>{
            this._createLightbox({
                slider: slider,
                section: section
            });
        });
    }
    /**
   * Creates a lightbox modal for displaying slider images in a larger view.
   *
   * @param {Object} params - The parameters for the function.
   * @param {HTMLElement} params.slider - The slider element containing images.
   * @param {HTMLElement} params.section - The section element related to the slider.
   * @param {number} [params.initialIndex] - Optional index of the image to show initially.
   */ _createLightbox({ slider: slider, section: section, initialIndex: initialIndex }) {
        const { window: window, document: document } = this;
        const modalId = `lightbox-for-${section?.id}`;
        const isSlickAvailable = window.$ && window.$.fn.slick;
        const isSectionSlickInitialized = isSlickAvailable && slider.slick;
        const isSplideAvailable = typeof window.Splide === 'function';
        const isSectionSplideInitialized = slider.classList.contains('is-initialized') && slider.classList.contains('splide');
        if (typeof window.lpUI.requestScrollLock === 'function') window.lpUI.requestScrollLock(modalId);
        else document.body.style.overflow = 'hidden';
        function createSlickLightbox() {
            const slickOverlayOptions = {
                arrows: true,
                dots: false,
                infinite: true,
                draggable: true,
                prevArrow: '<button type="button" class="lp-lightbox-arrow--prev lp-lightbox-arrow" aria-label="Previous"></button>',
                nextArrow: '<button type="button" class="lp-lightbox-arrow--next lp-lightbox-arrow" aria-label="Next"></button>'
            };
            const modal = document.createElement('div');
            modal.id = modalId;
            modal.className = 'lp-lightbox';
            modal.setAttribute('tabindex', '-1');
            modal.setAttribute('role', 'dialog');
            modal.setAttribute('aria-modal', 'true');
            modal.innerHTML = `
        <button class="lp-lightbox__close" aria-label="close modal"></button>
        <div class="lp-lightbox__content">
          <div class="lp-lightbox__carousel"></div>
        </div>
      `;
            document.body.appendChild(modal);
            const overlaySlider = modal.querySelector('.lp-lightbox__carousel');
            modal.classList.add('show');
            let sourceImages;
            if (isSectionSlickInitialized) {
                sourceImages = slider.slick.$slides.find('img');
                slickOverlayOptions.initialSlide = slider.slick?.currentSlide || 0;
                sourceImages.each(function() {
                    window.$('.lp-lightbox__carousel').append(window.$(this).clone(false).removeAttr('style').wrap('<div class="lp-lightbox__slide"></div>').parent());
                });
            } else {
                sourceImages = slider.querySelectorAll('img');
                sourceImages.forEach((img)=>{
                    const imgClone = img.cloneNode(true);
                    imgClone.removeAttribute('style');
                    const slide = document.createElement('div');
                    slide.className = 'lp-lightbox__slide';
                    slide.appendChild(imgClone);
                    overlaySlider.appendChild(slide);
                });
            }
            window.$(overlaySlider).slick(slickOverlayOptions);
            // Focus modal after it's created
            setTimeout(()=>{
                modal.focus();
            }, 100);
            // Keyboard navigation handler
            const handleKeydown = (e)=>{
                if (!modal.classList.contains('show')) return;
                const prevArrow = modal.querySelector('.lp-lightbox-arrow--prev');
                const nextArrow = modal.querySelector('.lp-lightbox-arrow--next');
                const closeBtn = modal.querySelector('.lp-lightbox__close');
                if (e.key === 'ArrowLeft' && prevArrow) {
                    e.preventDefault();
                    prevArrow.click();
                } else if (e.key === 'ArrowRight' && nextArrow) {
                    e.preventDefault();
                    nextArrow.click();
                } else if (e.key === 'Escape' && closeBtn) {
                    e.preventDefault();
                    closeBtn.click();
                }
            };
            document.addEventListener('keydown', handleKeydown);
            modal.querySelector('.lp-lightbox__close').addEventListener('click', ()=>{
                document.removeEventListener('keydown', handleKeydown);
                modal.classList.remove('show');
                const currentSlide = overlaySlider?.slick ? window.$(overlaySlider).slick('slickCurrentSlide') : 0;
                if (overlaySlider?.slick) window.$(overlaySlider).slick('unslick');
                if (isSectionSlickInitialized) window.$(slider).slick('slickGoTo', currentSlide);
                if (typeof window.lpUI.releaseScrollLock === 'function') window.lpUI.releaseScrollLock(modalId);
                else document.body.style.overflow = '';
                modal.remove();
            });
        }
        function createSplideLightbox() {
            const splideOptions = {
                rewind: true,
                arrows: true,
                arrowPath: '',
                type: 'loop',
                clones: 1,
                pagination: false,
                perPage: 1,
                perMove: 1
            };
            const modal = document.createElement('div');
            modal.id = modalId;
            modal.className = 'lp-lightbox';
            modal.setAttribute('tabindex', '-1');
            modal.setAttribute('role', 'dialog');
            modal.setAttribute('aria-modal', 'true');
            modal.innerHTML = `
      <button class="lp-lightbox__close" aria-label="close modal"></button>
      <div class="lp-lightbox__content">
        <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery">
          <div class="splide__arrows">
            <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button>
            <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button>
          </div>
          <div class="splide__track">
            <ul class="splide__list"></ul>
          </div>
        </div>
      </div>
    `;
            if (typeof window.lpUI.requestScrollLock === 'function') window.lpUI.requestScrollLock(modalId);
            else document.body.style.overflow = 'hidden';
            document.body.appendChild(modal);
            const overlaySlider = modal.querySelector('.lp-lightbox__carousel');
            const overlaySliderList = overlaySlider.querySelector('.splide__list');
            modal.classList.add('show');
            let sourceImages;
            if (isSectionSplideInitialized) sourceImages = slider.querySelectorAll('.splide__slide:not(.splide__slide--clone) img');
            else sourceImages = slider.querySelectorAll('img');
            sourceImages.forEach((img)=>{
                const imgClone = img.cloneNode(true);
                imgClone.removeAttribute('style');
                const slide = document.createElement('li');
                slide.className = 'lp-lightbox__slide splide__slide';
                slide.appendChild(imgClone);
                overlaySliderList.appendChild(slide);
            });
            const overlaySplide = new window.Splide(overlaySlider, splideOptions);
            overlaySplide.mount();
            // Navigate to initial index if provided
            if (typeof initialIndex !== 'undefined' && initialIndex >= 0) overlaySplide.go(initialIndex);
            // Focus modal after it's created and mounted
            setTimeout(()=>{
                modal.focus();
            }, 100);
            // Keyboard navigation handler
            const handleKeydown = (e)=>{
                if (!modal.classList.contains('show')) return;
                const prevArrow = modal.querySelector('.splide__arrow--prev');
                const nextArrow = modal.querySelector('.splide__arrow--next');
                const closeBtn = modal.querySelector('.lp-lightbox__close');
                if (e.key === 'ArrowLeft' && prevArrow) {
                    e.preventDefault();
                    prevArrow.click();
                } else if (e.key === 'ArrowRight' && nextArrow) {
                    e.preventDefault();
                    nextArrow.click();
                } else if (e.key === 'Escape' && closeBtn) {
                    e.preventDefault();
                    closeBtn.click();
                }
            };
            document.addEventListener('keydown', handleKeydown);
            modal.querySelector('.lp-lightbox__close').addEventListener('click', ()=>{
                document.removeEventListener('keydown', handleKeydown);
                modal.classList.remove('show');
                if (overlaySplide) overlaySplide.destroy();
                if (typeof window.lpUI.releaseScrollLock === 'function') window.lpUI.releaseScrollLock(modalId);
                else document.body.style.overflow = '';
                modal.remove();
            });
        }
        if (isSlickAvailable && !isSectionSplideInitialized) createSlickLightbox();
        else if (isSplideAvailable) createSplideLightbox();
        else {
            window.luxuryPresence.libs.loadCss(window.luxuryPresence.libs.jsLibsMap.splide.cssSrc);
            window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.splide.jsSrc, ()=>{
                createSplideLightbox();
                window.luxuryPresence.libs.jsLibsMap.splide.isLoaded = true;
            });
        }
    }
}


/* eslint-disable import/prefer-default-export */ 
class $4f184d9bd3037f15$export$7a6215890afba974 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    // constructor is not needed as it is inherited from BaseController
    /**
   * Destroy
   */ destroy() {
        if (!this.window.divolte) this.window.divolteLp = function() {
            (this.window.divolteLp.q = this.window.divolteLp.q || []).push(// eslint-disable-next-line prefer-rest-params
            arguments);
        };
    }
    /**
   * Initialize divolte controller
   * @param {Object} options
   */ initialize(options = {}) {
        const { divolteServiceUrl: divolteServiceUrl } = this.config;
        if (!divolteServiceUrl || this.window.divolte) return;
        this.loadScript();
    }
    /**
   * loads divolte
   */ loadScript() {
        const { divolteServiceUrl: divolteServiceUrl } = this.config;
        const script = this.document.createElement('script');
        script.id = 'divolte-script';
        script.type = 'text/javascript';
        script.defer = true;
        script.async = true;
        script.src = `${divolteServiceUrl}/divolte.js`;
        this.document.head.appendChild(script);
        script.addEventListener('load', this.executeQueue.bind(this));
    }
    /**
   * executeQueue
   */ executeQueue() {
        (this.window.divolteLp.q || []).forEach(([methodName, params])=>{
            this[methodName](params);
        });
        this.window.divolteLp = this.divolteLp.bind(this);
    }
    /**
   * divolteLp
   * @param {string} name
   * @param {Object} params
   */ divolteLp(name, params) {
        try {
            this[name](params);
        } catch (error) {
            // eslint-disable-next-line no-console
            console.log(error);
        }
    }
    /**
   * sendLpEvent
   * @param {string} name
   * @param {Object} params
   */ sendLpEvent(name, params) {
        // Events must be defined in divolte schema! To ensure correct usage, event names are validated here.
        if (!name.includes('pageView')) {
            // Event not defined
            // eslint-disable-next-line no-console
            console.log(`${name} IS NOT SUPPORTED`);
            return;
        }
        const { companyId: companyId, templateId: templateId, websiteId: websiteId, pageId: pageId, shareId: shareId, pageMeta: pageMeta } = this.config;
        const baseParams = {
            companyId: companyId,
            templateId: templateId,
            websiteId: websiteId,
            pageId: pageId,
            shareId: shareId,
            pageMeta: pageMeta
        };
        this.window.divolte.signal(name, Object.assign(baseParams, params));
    }
    /**
   * sendLpPageView
   */ sendLpPageView() {
        this.sendLpEvent('pageView', {});
    }
}


/* eslint-disable import/prefer-default-export */ 
const $102039871668a1df$var$EVENT_BUS_SCRIPT = 'event-bus-js.js';
const $102039871668a1df$var$EVENT_BUS_VERSION = 'v2.1.0';
class $102039871668a1df$export$e22e4b1be0bb6c61 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    // eslint-disable-next-line @typescript-eslint/no-useless-constructor
    constructor(config, window, document){
        super(config, window, document);
    }
    /**
   * Initialize EventBus controller
   * @param {Object} options
   */ initialize(options = {}) {
        const enabled = options.enabled !== undefined ? options.enabled : this.config.eventBus?.enabled;
        if (enabled && this.config.eventBus?.apiKey && this.config.eventBus?.url) this.loadScript();
    }
    /**
   * loads eventBus script
   */ loadScript() {
        const { eventBusUrl: eventBusUrl } = this.config;
        const script = this.document.createElement('script');
        script.id = 'posthog-script';
        script.type = 'text/javascript';
        script.defer = true;
        script.async = true;
        script.src = `${eventBusUrl}/${$102039871668a1df$var$EVENT_BUS_VERSION}/${$102039871668a1df$var$EVENT_BUS_SCRIPT}`;
        this.document.head.appendChild(script);
        script.addEventListener('load', this.executeQueue.bind(this));
    }
    /**
   * executeQueue - Process queued eventBusLp calls
   */ executeQueue() {
        // Initialize the event bus provider using the global EventBusJS
        if (this.window.LuxuryPresenceEventBus) this.window.eventBusProvider = this.window.LuxuryPresenceEventBus.createEventBusProvider({
            apiKey: this.config.eventBus.apiKey,
            host: this.config.eventBus.url
        });
        (this.window.eventBusLp.q || []).forEach(([methodName, params])=>{
            this[methodName](params);
        });
        // Replace queue function with real function
        this.window.eventBusLp = this.eventBusLp.bind(this);
    }
    /**
   * Destroy
   */ destroy() {
        if (!this.window.eventBusProvider) {
            // Reset to queue function if no provider exists
            this.window.eventBusLp = function() {
                (this.window.eventBusLp.q = this.window.eventBusLp.q || []).push(// eslint-disable-next-line prefer-rest-params
                arguments);
            };
            return;
        }
        this.window.eventBusProvider.shutdown();
    }
    /**
   * sendLpEvent
   * @param {string} eventType
   * @param {Object} data
   */ sendLpEvent(eventType, data) {
        // Events must be defined in event-bus schema! To ensure correct usage, event types are validated here.
        if (eventType !== 'user.activity.page.viewed') {
            // Event type not defined
            // eslint-disable-next-line no-console
            console.log(`${eventType} IS NOT SUPPORTED`);
            return;
        }
        if (!this.window.eventBusProvider) return;
        const { companyId: companyId } = this.config;
        const eventData = {
            company: companyId,
            data: {}
        };
        try {
            this.window.eventBusProvider.capture(eventType, eventData);
        } catch (error) {
            // eslint-disable-next-line no-console
            console.log('EventBus capture error:', error);
        }
    }
    /**
   * eventBusLp
   * @param {string} name
   * @param {Object} params
   */ eventBusLp(name, params) {
        try {
            this[name](params);
        } catch (error) {
            // eslint-disable-next-line no-console
            console.log(error);
        }
    }
    /**
   * sendLpPageView
   */ sendLpPageView() {
        this.sendLpEvent('user.activity.page.viewed', {});
    }
}


/* eslint-disable import/prefer-default-export */ 
const $0d25a3fa2e0f4f92$var$EVENT_NAME = 'oauthSuccess';
class $0d25a3fa2e0f4f92$export$b718a981691eae5c extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    /**
   * Initialize Button Controller at build time
   * @param { ConfigController } config
   * @param {Window} window
   * @param {Document} document
   */ constructor(config, window, document){
        super(config, window, document);
        this.successListeners = [];
        this._listenToMessages = this._listenToMessages.bind(this);
        this._listenToOneTapMessage = this._listenToOneTapMessage.bind(this);
    }
    /**
   * Initialize OAuth Controller at run time
   * Swap out special buttons for the iframe
   * @param {Object} options
   */ initialize(options = {}) {
        try {
            // handle google one tap
            if (options.googleSignOnEnabled && !options.iframe) this._renderGoogleOneTap();
            // handle google sign in buttons
            this.document.querySelectorAll('div[data-signin-type="google-sign-in"]').forEach((el)=>this._convertGoogleSignIn(el));
            // handle facebook sign in buttons
            this.document.querySelectorAll('div[data-signin-type="facebook-sign-in"]').forEach((el)=>this._convertFacebookSignIn(el));
        } catch (e) {
            // eslint-disable-next-line no-console
            console.log(e);
        }
    }
    /**
   * Controllers must implement a "destroy" method to be called
   * after page navigation to remove event handlers / cleanup
   */ destroy() {
        this.successListeners.forEach((callback)=>{
            this.window.removeEventListener('message', this._listenToMessages);
            this.window.removeEventListener('message', this._listenToOneTapMessage);
            this.window.removeEventListener($0d25a3fa2e0f4f92$var$EVENT_NAME, this.window[callback]);
        });
    }
    /**
   * Convert google one tap
   */ _renderGoogleOneTap() {
        if (!this._isGoogleOneTapOnCooldown()) {
            const dummyEl = this.document.createElement('div');
            // eslint-disable-next-line no-undef
            google.accounts.id.initializeIntermediate({
                src: this._buildUrlAndCopyAttributes(dummyEl, dummyEl, 'googleOneTap')
            });
            this.window.localStorage.removeItem('googleOneTapExpiration');
            this.window.addEventListener('message', this._listenToOneTapMessage);
        }
    }
    /**
   * Listening for messages from BSS one tap iframes
   * @param {MessageEvent} e
   */ _listenToOneTapMessage(e) {
        const messageTypes = {
            SHOW_INTERMEDIATE_IFRAME: 'show_intermediate_iframe',
            HIDE_INTERMEDIATE_IFRAME: 'hide_intermediate_iframe'
        };
        const iframeId = 'onetap_google_intermediate_iframe';
        const { buyerSellerServiceUrl: buyerSellerServiceUrl } = this.config;
        const { data: data, origin: origin } = e;
        const { type: type, height: height, event: event, source: source, token: token } = data;
        if (type === messageTypes.SHOW_INTERMEDIATE_IFRAME || type === messageTypes.HIDE_INTERMEDIATE_IFRAME) {
            const bssIframe = this.document.getElementById(iframeId);
            if (bssIframe) {
                bssIframe.style.height = height;
                bssIframe.style.display = type === messageTypes.SHOW_INTERMEDIATE_IFRAME ? 'unset' : 'none';
            }
        }
        // these events are generated by our code in the bss iframe
        if (origin === buyerSellerServiceUrl && source === 'GOOGLE_SIGN_ON') {
            if (event === 'success') {
                this._setExpirationLsItem(86400000); // 24 hours
                this._handleQualifyingQuestionsModal(token);
            } else if (event === 'cancel') this._setExpirationLsItem(7200000); // 2 hours
        }
    }
    /**
   * Set expiration local storage item for google one tap
   * @param {number} ms
   */ _setExpirationLsItem(ms) {
        const expiration = new Date().getTime() + ms;
        this.window.localStorage.setItem('googleOneTapExpiration', expiration);
    }
    /**
   * Check if google one tap is expired
   * @return {boolean}
   */ _isGoogleOneTapOnCooldown() {
        const expirationTime = this.window.localStorage.getItem('googleOneTapExpiration');
        return Number(expirationTime) > new Date().getTime();
    }
    /**
   * Convert google sign in buttons
   * @param {HTMLElement} el
   */ _convertGoogleSignIn(el) {
        this._replaceWithIframe('googleSignIn', el);
    }
    /**
   * Convert google sign in buttons
   * @param {HTMLElement} el
   */ _convertFacebookSignIn(el) {
        this._replaceWithIframe('facebookSignIn', el);
    }
    /**
   * Convert google sign in buttons
   * @param {'googleSignIn' | 'facebookSignIn'} provider
   * @param {HTMLElement} el
   */ _replaceWithIframe(provider, el) {
        this._attachSuccessCallback(el);
        const iframe = this.document.createElement('iframe');
        iframe.src = this._buildUrlAndCopyAttributes(el, iframe, provider);
        iframe.dataset.isSocialOauthButton = true;
        el.replaceWith(iframe);
    }
    /**
   * Listening for messages from BSS iframes
   * @param {Event} e
   */ _listenToMessages(e) {
        const { buyerSellerServiceUrl: buyerSellerServiceUrl } = this.config;
        // eslint-disable-next-line sonarjs/no-collapsible-if
        if (e.origin === buyerSellerServiceUrl) {
            if (e.data.event === 'success') {
                const event = new Event($0d25a3fa2e0f4f92$var$EVENT_NAME);
                this.window.dispatchEvent(event);
                this.successListeners.forEach((callback)=>{
                    if (this.window[callback]) this.window[callback](event);
                    else // eslint-disable-next-line no-console
                    console.error(`Callback function ${callback} not found on window object`);
                });
                this.document.documentElement.classList.add('is-login-success');
            }
        }
    }
    /**
   * Attach callback to iframe
   * @param {HTMLElement} el
   */ _attachSuccessCallback(el) {
        this.window.addEventListener('message', this._listenToMessages);
        const callbackFunction = el.dataset.onSuccessFunctionName;
        if (callbackFunction) this.successListeners.push(callbackFunction);
    }
    /**
   * Build Iframe URL
   * @param {HTMLElement} source
   * @param {HTMLElement} target
   * @param {string} provider
   * @return {string}
   */ _buildUrlAndCopyAttributes(source, target, provider) {
        const { buyerSellerServiceUrl: buyerSellerServiceUrl, companyId: companyId, websiteId: websiteId, pageId: pageId, pageMeta: pageMeta } = this.config;
        const { location: location } = this.window;
        const sourceUrl = location.origin + location.pathname;
        const destination = new URL(`${buyerSellerServiceUrl}/buttons/${provider}`);
        const utm = this.window.localStorage.getItem('utm_vars');
        const referrer = this.window.localStorage.getItem('referrer');
        destination.searchParams.append('companyId', companyId);
        destination.searchParams.append('websiteId', websiteId);
        destination.searchParams.append('pageId', pageId);
        destination.searchParams.append('sourceUrl', sourceUrl);
        destination.searchParams.append('pageMeta', JSON.stringify(pageMeta));
        if (utm) destination.searchParams.append('utm', utm);
        if (referrer) destination.searchParams.append('referrer', referrer);
        // Google and Facebook Attributes used to style the social button
        const RESERVED_ATTRIBUTES = [
            'data-size',
            'data-width',
            'data-text',
            'data-button-type',
            'data-shape',
            'data-layout',
            'data-max-rows',
            'data-use-continue-as',
            'data-type',
            'data-theme',
            'data-logo_alignment',
            'data-locale'
        ];
        Array.from(source.attributes).forEach((attribute)=>{
            if (RESERVED_ATTRIBUTES.includes(attribute.nodeName)) destination.searchParams.append(attribute.nodeName, attribute.nodeValue);
            else target.setAttribute(attribute.nodeName === 'id' ? 'data-id' : attribute.nodeName, attribute.nodeValue);
        });
        return destination.toString();
    }
    /**
   * Decode a JWT token to extract payload information
   * @param {string} token - The JWT token to decode
   * @return {Object|null} The decoded payload object or null if decoding fails
   */ _decodeToken(token) {
        try {
            const parts = token.split('.');
            const payload = parts[1];
            const base64 = payload.replace(/-/g, '+').replace(/_/g, '/');
            const padding = 4 - base64.length % 4;
            const padded = padding === 4 ? base64 : base64 + '='.repeat(padding);
            return JSON.parse(atob(padded));
        } catch (error) {
            return null;
        }
    }
    /**
   * Handle qualifying questions modal showing for Google Sign On
   * Decodes the JWT token to extract user email and shows the modal if available
   * @param {string} token - The JWT token containing user information
   */ _handleQualifyingQuestionsModal(token) {
        if (token && this.window.luxuryPresence && this.window.luxuryPresence.qualifyingQuestionsModal) {
            // Decoding only for lead attribution, fine to skip signature verification
            const decoded = this._decodeToken(token);
            if (decoded && decoded.email) this.window.luxuryPresence.qualifyingQuestionsModal.showModal(decoded.email, 'Google Sign On');
        }
    }
}


/* eslint-disable import/prefer-default-export */ 
class $dcf72769f009ff26$export$b900d6fe921fd49c extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    /**
   * Initialize Qualifying Questions Modal Controller at build time
   * @param { ConfigController } config
   * @param {Window} window
   * @param {Document} document
   */ constructor(config, window, document){
        super(config, window, document);
        this.showModal = this.showModal.bind(this);
        this.hasModalBeenSubmitted = this.hasModalBeenSubmitted.bind(this);
        this.modalId = 'qualifying-questions-modal';
        this.cookieKey = 'qualifyingQuestionsModalSubmitted';
        this.qualifyingQuestionsModalEnabled = true;
        // Store references for cleanup
        this.eventListeners = [];
        this.timeouts = [];
    }
    initialize(options = {}) {
        this.qualifyingQuestionsModalEnabled = options.qualifyingQuestionsModalEnabled ?? this.qualifyingQuestionsModalEnabled;
        if (!this.qualifyingQuestionsModalEnabled) return;
        this.attachModalCloseListeners();
    }
    destroy() {
        // Remove all stored event listeners
        this.eventListeners.forEach(({ element: element, event: event, handler: handler })=>{
            if (element && element.removeEventListener) element.removeEventListener(event, handler);
        });
        this.timeouts.forEach((timeoutId)=>{
            clearTimeout(timeoutId);
        });
        this.restoreBodyScroll();
        this.eventListeners = [];
        this.timeouts = [];
    }
    /**
   * Check if modal has been submitted using cookie-based deduplication
   * @return {boolean}
   */ hasModalBeenSubmitted() {
        const cookieValue = this.getCookie(this.cookieKey);
        return cookieValue === 'true';
    }
    /**
   * Set cookie to prevent modal from showing again
   */ setModalSubmittedCookie() {
        this.setCookie(this.cookieKey, 'true', 365); // 1 year
    }
    showModal(email, triggerSource) {
        if (!this.qualifyingQuestionsModalEnabled || this.hasModalBeenSubmitted()) return;
        this.updateEmailValue(email);
        this.updateTriggerSourceValue(triggerSource);
        this.showModalElement();
    }
    /**
   * Get modal element with error handling
   * @return {Element|null}
   */ getModalElement() {
        const modal = this.document.getElementById(this.modalId);
        if (!modal) console.error('Modal element not found:', this.modalId);
        return modal;
    }
    updateEmailValue(email) {
        const modal = this.getModalElement();
        if (!modal) return;
        const emailInput = modal.querySelector('input[name="email"]');
        if (emailInput && typeof email === 'string') emailInput.value = email;
    }
    updateTriggerSourceValue(triggerSource) {
        const modal = this.getModalElement();
        if (!modal) return;
        const triggerSourceInput = modal.querySelector(`#${this.modalId}-triggerSource`);
        if (triggerSourceInput && typeof triggerSource === 'string') triggerSourceInput.value = triggerSource;
    }
    showModalElement() {
        const modal = this.getModalElement();
        if (!modal) return;
        modal.style.display = 'flex';
        this.blockBodyScroll();
    }
    /**
   * Helper method to get cookie value
   * @param {string} name
   * @return {string|null}
   */ getCookie(name) {
        const value = `; ${this.document.cookie}`;
        const parts = value.split(`; ${name}=`);
        if (parts.length === 2) return decodeURIComponent(parts.pop().split(';').shift());
        return null;
    }
    /**
   * Helper method to set cookie
   * @param {string} name
   * @param {string} value
   * @param {number} days
   */ setCookie(name, value, days) {
        let expires = '';
        if (days) {
            const date = new Date();
            date.setTime(date.getTime() + days * 86400000);
            expires = `; expires=${date.toUTCString()}`;
        }
        let attrs = '; path=/; SameSite=Lax';
        if (this.window && this.window.location && this.window.location.protocol === 'https:') attrs += '; Secure';
        this.document.cookie = `${name}=${encodeURIComponent(value || '')}${expires}${attrs}`;
    }
    blockBodyScroll() {
        this._prevOverflow = this.document.body.style.overflow;
        this.document.body.style.overflow = 'hidden';
    }
    restoreBodyScroll() {
        this.document.body.style.overflow = this._prevOverflow || '';
        this._prevOverflow = null;
    }
    attachModalCloseListeners() {
        const modal = this.getModalElement();
        if (!modal) return;
        // Listen for form submission success (when modal closes automatically)
        const form = this.document.getElementById(`${this.modalId}-form`);
        if (form) {
            const formSubmittedHandler = ()=>{
                // Set cookie to prevent showing again and hide modal
                this.setModalSubmittedCookie();
                const timeoutId = setTimeout(()=>{
                    modal.style.display = 'none';
                    this.restoreBodyScroll();
                }, 100);
                this.timeouts.push(timeoutId);
            };
            form.addEventListener('formsubmitted', formSubmittedHandler);
            this.eventListeners.push({
                element: form,
                event: 'formsubmitted',
                handler: formSubmittedHandler
            });
        }
        // Listen for close button clicks
        const closeButton = modal.querySelector('[data-dismiss="modal"]');
        if (closeButton) {
            const closeButtonHandler = ()=>{
                modal.style.display = 'none';
                this.restoreBodyScroll();
            };
            closeButton.addEventListener('click', closeButtonHandler);
            this.eventListeners.push({
                element: closeButton,
                event: 'click',
                handler: closeButtonHandler
            });
        }
        // Listen for backdrop clicks
        const backdropClickHandler = (e)=>{
            // Check if click is on the modal backdrop (not on the modal content)
            if (e.target === modal || e.target.id === this.modalId) {
                modal.style.display = 'none';
                this.restoreBodyScroll();
            }
        };
        modal.addEventListener('click', backdropClickHandler);
        this.eventListeners.push({
            element: modal,
            event: 'click',
            handler: backdropClickHandler
        });
    }
}


/* eslint-disable import/prefer-default-export */ 
class $50eefeef8d1f2372$export$8a2bf06fbae4dde extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    constructor(configController, window, document){
        super(configController, window, document);
        this.isValidating = false;
        this.lastValidationResult = null;
        this.lastValidationTime = null;
        this.validationCacheDuration = 300000; // 5 minutes
    }
    /**
   * Destroy
   */ destroy() {
        this.isValidating = false;
        this.lastValidationResult = null;
        this.lastValidationTime = null;
    }
    /**
   * Validate user session using GraphQL validSession query
   * @param {Object} options - Options for session validation
   * @param {boolean} options.useCache - Whether to use cached validation result
   * @returns {Promise<boolean>} - true if session is valid, false otherwise
   */ async validateSession(options = {}) {
        const { useCache: useCache = true } = options;
        if (useCache && this.lastValidationResult !== null && this.lastValidationTime) {
            const timeSinceLastValidation = Date.now() - this.lastValidationTime;
            if (timeSinceLastValidation < this.validationCacheDuration) return this.lastValidationResult;
        }
        if (this.isValidating) return this.lastValidationResult !== null ? this.lastValidationResult : false;
        this.isValidating = true;
        const query = `
      query {
        validSession {
          success
        }
      }
    `;
        try {
            // query from same domain as the website
            const response = await this.window.fetch(`/graphql`, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                credentials: 'include',
                body: JSON.stringify({
                    query: query
                })
            });
            if (!response.ok) {
                // eslint-disable-next-line no-console
                console.error('SessionController: HTTP error during session validation', response.status);
                this.lastValidationResult = false;
                this.lastValidationTime = Date.now();
                return false;
            }
            const data = await response.json();
            if (data.errors) {
                this.lastValidationResult = false;
                this.lastValidationTime = Date.now();
                return false;
            }
            const isValid = data.data?.validSession?.success === true;
            this.lastValidationResult = isValid;
            this.lastValidationTime = Date.now();
            return isValid;
        } catch (error) {
            // eslint-disable-next-line no-console
            console.error('SessionController: Error validating session', error);
            this.lastValidationResult = false;
            this.lastValidationTime = Date.now();
            return false;
        } finally{
            this.isValidating = false;
        }
    }
    /**
   * Clear validation cache
   */ clearCache() {
        this.lastValidationResult = null;
        this.lastValidationTime = null;
    }
}


/* eslint-disable import/prefer-default-export */ 
class $6bb500f67d8e6b7b$export$19036f3e654d7262 extends (0, $7c391e2f7931d60d$export$3b5bd9381a52554c) {
    constructor(config, window, document){
        super(config, window, document);
        this.consentListener = null;
    }
    /**
   * Destroy and cleanup event listeners
   */ destroy() {
        if (this.consentListener) {
            this.document.removeEventListener('cookieyes_consent_update', this.consentListener);
            this.consentListener = null;
        }
    }
    /**
   * Check if cookieyes-consent cookie includes analytics consent
   * @returns {boolean} True if analytics is consented to
   */ hasAnalyticsConsent() {
        const cookieString = this.document.cookie;
        const match = cookieString.match(/cookieyes-consent=([^;]+)/);
        if (!match) return false;
        try {
            const cookieValue = decodeURIComponent(match[1]);
            if (cookieValue.includes(',')) {
                const segments = cookieValue.split(',').map((c)=>c.trim());
                // Handle CookieYes key:value format (e.g., "analytics:yes")
                if (segments.some((s)=>s.includes(':'))) return segments.some((s)=>s === 'analytics:yes');
                return segments.includes('analytics');
            }
            return cookieValue.includes('analytics');
        } catch (error) {
            return false;
        }
    }
    /**
   * Load PostHog and Divolte scripts
   */ loadScript() {
        const shouldAddPostHogScript = !this.document.getElementById('posthog-script');
        const shouldAddDivolteScript = !this.document.getElementById('divolte-script');
        if (shouldAddPostHogScript) this.window.luxuryPresence.eventBus.initialize({
            enabled: this.config.eventBus?.enabled
        });
        if (shouldAddDivolteScript) this.window.luxuryPresence.divolte.initialize({});
    }
    /**
   * Remove PostHog and Divolte scripts
   */ removeScripts() {
        this.window.luxuryPresence?.eventBus?.destroy?.();
        this.window.luxuryPresence?.divolte?.destroy?.();
        this.document.getElementById('posthog-script')?.remove();
        this.document.getElementById('divolte-script')?.remove();
    }
    /**
   * Initialize CookieYes controller
   */ async initialize() {
        const isAuthenticated = await this.window.luxuryPresence.session.validateSession();
        if (this.hasAnalyticsConsent() || isAuthenticated) this.loadScript();
        if (!this.consentListener) {
            this.consentListener = (eventData)=>{
                const data = eventData.detail;
                if (data?.accepted && Array.isArray(data.accepted) && data.accepted.includes('analytics')) this.loadScript();
                else this.removeScripts();
            };
            this.document.addEventListener('cookieyes_consent_update', this.consentListener);
        }
    }
}


const $fa0280e505379701$export$1fd2b467a3644d37 = new (0, $dc851cf3939b6ef5$export$ff0712c26d5458f7)({});
const $fa0280e505379701$export$e12694e911a05f40 = new (0, $0ead03fdb95fa9ce$export$d507f25e63650365)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$3de614e59a842917 = new (0, $d48f9f944810f613$export$ca3218b7861b9cb0)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$fb9b298fdbf31455 = new (0, $68a2d4aa500c7a05$export$61ec8f2b6291ec31)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$178cc3119b453c2a = new (0, $e10bd00497be8876$export$3c5380623cf51249)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$9376af1a01686f2 = new (0, $ea6901fdf47e0ec1$export$3c19195edca3fa5c)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$94d36f806562393e = new (0, $0a0ad49f13c0b8fd$export$ba9afeb75f20f616)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$89e66d1faf94651e = new (0, $2b1790aa32f109d1$export$43e435c053a109f6)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$7743b07270cd6d6c = new (0, $4f184d9bd3037f15$export$7a6215890afba974)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$40a7039551318c37 = new (0, $102039871668a1df$export$e22e4b1be0bb6c61)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$8a0bbf7e7652fcfc = new (0, $0d25a3fa2e0f4f92$export$b718a981691eae5c)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$b313b3f6544c97a3 = new (0, $dcf72769f009ff26$export$b900d6fe921fd49c)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$b526bc4ac03268ef = new (0, $50eefeef8d1f2372$export$8a2bf06fbae4dde)($fa0280e505379701$export$1fd2b467a3644d37, window, document);
const $fa0280e505379701$export$ec41309a2e823376 = new (0, $6bb500f67d8e6b7b$export$19036f3e654d7262)($fa0280e505379701$export$1fd2b467a3644d37, window, document);


/**
 * Attach controller to window for usage
 * @param {string} key
 * @param {any} controller
 */ function $89a8a84b77163415$var$attachController(key, controller) {
    if (window.luxuryPresence[key]) try {
        // New version of sdk, destroy previous
        window.luxuryPresence[key].destroy();
    } catch (e) {
        // eslint-disable-next-line no-console
        console.log(e);
    }
    window.luxuryPresence[key] = controller;
}
$89a8a84b77163415$var$attachController('config', (0, $fa0280e505379701$export$1fd2b467a3644d37));
$89a8a84b77163415$var$attachController('modals', (0, $fa0280e505379701$export$e12694e911a05f40));
$89a8a84b77163415$var$attachController('buttons', (0, $fa0280e505379701$export$3de614e59a842917));
$89a8a84b77163415$var$attachController('validation', (0, $fa0280e505379701$export$fb9b298fdbf31455));
$89a8a84b77163415$var$attachController('contactForms', (0, $fa0280e505379701$export$178cc3119b453c2a));
$89a8a84b77163415$var$attachController('mapApiLoader', (0, $fa0280e505379701$export$9376af1a01686f2));
$89a8a84b77163415$var$attachController('pagination', (0, $fa0280e505379701$export$94d36f806562393e));
$89a8a84b77163415$var$attachController('expandSliders', (0, $fa0280e505379701$export$89e66d1faf94651e));
$89a8a84b77163415$var$attachController('divolte', (0, $fa0280e505379701$export$7743b07270cd6d6c));
$89a8a84b77163415$var$attachController('eventBus', (0, $fa0280e505379701$export$40a7039551318c37));
$89a8a84b77163415$var$attachController('oauth', (0, $fa0280e505379701$export$8a0bbf7e7652fcfc));
$89a8a84b77163415$var$attachController('qualifyingQuestionsModal', (0, $fa0280e505379701$export$b313b3f6544c97a3));
$89a8a84b77163415$var$attachController('session', (0, $fa0280e505379701$export$b526bc4ac03268ef));
$89a8a84b77163415$var$attachController('cookieyes', (0, $fa0280e505379701$export$ec41309a2e823376));
// methods for existing elements (can be removed later after elements updated)
window.luxuryPresence.formatSliderPriceRange = (0, $fa0280e505379701$export$94d36f806562393e).formatSliderPriceRange.bind((0, $fa0280e505379701$export$94d36f806562393e));
window.luxuryPresence.formatSliderAreaRange = (0, $fa0280e505379701$export$94d36f806562393e).formatSliderAreaRange.bind((0, $fa0280e505379701$export$94d36f806562393e));
// method below doesn't use 'this', but just to be safe in case of further method updates
window.luxuryPresence.getSearchFormValues = (0, $fa0280e505379701$export$94d36f806562393e).getSearchFormValues.bind((0, $fa0280e505379701$export$94d36f806562393e));
window.luxuryPresence.handlebarsHelpersFactory = function(handlebarsInstance) {
    return (0, (/*@__PURE__*/$parcel$interopDefault($53de3c160faf5a81$exports)))(handlebarsInstance, {
        isEqual (a, b) {
            // eslint-disable-next-line
            return a == b;
        }
    });
};



})();
//# sourceMappingURL=lp-sdk.js.map

    </script>

    <script>
        var lpGlobalInitialized = false;

        function lpGlobalInit () {
          if (lpGlobalInitialized) {
            return;
          }
            lpGlobalInitialized = true;
            // Initialize wow animation plugin only according to turbolinks
            var wow;
            if (window.WOW) {
                wow = new WOW({
                    animateClass: 'animated',
                    offset: wowOffset,
                    live: false,
                    callback: function(box) {}
                });
            }
            // Initialize handlebar helpers only once
            function handlebarsInit() {
              if (!window.Handlebars) {
                return;
              }
              HandlebarsIntl.registerWith(Handlebars);
              Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars));
            }

            handlebarsInit();

            /* Initialize Luxury Presence SDK */
            try {
                window.luxuryPresence.config.setCompany("d35b9bef-9a0c-4a53-9f1b-87c4123830dd", {});
                window.luxuryPresence.config.setWebsite("f4b8db30-da91-4eb2-9f17-d2c4c35e57d3", {
                    myhomeDashboardEnabled: true
                });
                const url = new URL(window.location.href);
                const shareId = url.searchParams.get('shareId');
                window.luxuryPresence.config.setPage("3904a229-dcd2-4aa5-8157-40126c277eda", {
                    sourceResource: "",
                    pageElementId: "",
                    pageQueryVariables: {},
                    shareId: "",
                });
                window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {});
                window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {});
                    window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {});
                  window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {});
                  window.luxuryPresence.config.setEventBus({
                    enabled: true,
                    apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr",
                    url: "https://p.luxurypresence.com",
                  });
                window.luxuryPresence.config.setTemplateId("dbfbedc7-c7e2-4812-86ee-0ee198862c21", {});
                window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {});
                window.luxuryPresence.buttons.initialize({});
                window.luxuryPresence.eventBus.initialize({});
                window.luxuryPresence.contactForms.initialize({});
                window.luxuryPresence.validation.initialize({});
                window.luxuryPresence.expandSliders.initialize({});
                window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false });
                window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true });
                    window.luxuryPresence.divolte.initialize({});
            } catch (e) {
                console.log(e);
            }

            /* Inject Section Specific Javascript */
                try {
(function init(sectionDomId) {
  const disclaimerLabel = document.querySelector('#' + sectionDomId + ' .lp-tcr-content');
  if (disclaimerLabel) {
    const input = disclaimerLabel.querySelector('input');
    if (input) {
      input.setAttribute('id', `${sectionDomId}-termsAccepted`);
      input.value = 'true';
      const label = document.createElement('label');
      label.setAttribute('for', `${sectionDomId}-termsAccepted`);
      label.classList.add('lp-visually-hidden');
      label.textContent = 'Opt in/Disclaimer Consent:';
      disclaimerLabel.prepend(label);
    }
  }
  function setHttp(link) {
    if (link.search(/^http[s]?\:\/\/|\//) == -1) {
      link = 'https://' + link;
    }
    return link;
  }
  const socialLinks = document.querySelectorAll('#' + sectionDomId + ' .socials__link, #' + sectionDomId + ' .lp-socials__link');
  socialLinks.forEach(linkElement => {
    const href = linkElement.getAttribute('href');
    if (href) {
      linkElement.setAttribute('href', setHttp(href));
    }
  });
  const redirectLink = $('#' + sectionDomId + ' .redirect-link');
  if (redirectLink.length) {
    const rawHref = setHttp(redirectLink.attr('href'));
    let formEvent;
    if (rawHref) {
      formEvent = redirectLink.data('redirect') ? 'formsubmitted' : 'reset';
      $('#' + sectionDomId + ' .contact-form').find('form').on(formEvent, function () {
        redirectLink.attr('href', rawHref);
        redirectLink[0].click();
      });
    }
  }
})('modal-global-contact-us');
} catch(e) {
console.log(e);
}
                
                try {
(function init(sectionDomId) {
  const $section = $('#' + sectionDomId);
  const $hamburger = $section.find('.hamburger-component');
  function onSideMenuShow() {
    if (!$hamburger.hasClass('active')) {
      $hamburger.addClass('active');
    }
  }
  function onSideMenuHide() {
    $hamburger.removeClass('active');
  }
  const $window = $(window);
  $window.on('lpui-sidemenu-show.lpui-auto-clean', onSideMenuShow);
  $window.on('lpui-sidemenu-hide.lpui-auto-clean', onSideMenuHide);
  const $subContainers = $section.find('.navigation__item.sub-nav-container');
  $subContainers.hover(function () {
    $(this).find('.sub-nav').addClass('visible');
  }, function () {
    $(this).find('.sub-nav').removeClass('visible');
  });
  $window.on('click.lpui-auto-clean', function () {
    $('.sub-nav-container.visible-dropdown').removeClass('visible-dropdown');
  });
  let fixedWidth = 0;
  const rightPad = 20;
  function fixSubsPosition() {
    const wWidth = window.innerWidth;
    if (innerWidth === fixedWidth) {
      return;
    }
    fixedWidth = wWidth;
    $subContainers.each(function () {
      const $sub = $(this).find('.sub-nav');
      $sub[0].style.right = '';
      const sRect = $sub[0].getBoundingClientRect();
      const sRight = sRect.left + sRect.width;
      if (sRight > wWidth - rightPad) {
        const parentRect = $sub[0].offsetParent.getBoundingClientRect();
        const parentRight = parentRect.left + parentRect.width;
        $sub[0].style.right = `${parentRight - wWidth + rightPad}px`;
      }
    });
  }
  var debouncer;
  $window.on('resize.lpui-auto-clean', function () {
    clearTimeout(debouncer);
    debouncer = setTimeout(fixSubsPosition, 500);
  });
  fixSubsPosition();
  if ($('.property-intro').length || $('.property-intro-2').length) {
    $('nav').addClass('dark-opening');
    $("#global-navbar").css({
      "background-color": "rgb(26, 26, 26)",
      "color": "rgb(255, 255, 255)"
    });
  }
})('global-navbar');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId, options) {
  var elementSelector = options.elementSelector || 'nav';
  var element = document.querySelector(elementSelector);
  var sections = document.querySelectorAll('body > section');
  var subNavContainers = element.querySelectorAll('.sub-nav');
  var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor;
  var backgroundColorScroll = options.backgroundColorScroll || '#191919';
  var fontColor = options.fontColor || '#fff';
  var fontColorScroll = options.fontColorScroll || '#000';
  var didScroll = false;
  var lastScrollTop = 0;
  var delta = 5;

  // eslint-disable-next-line sonarjs/no-collapsible-if
  if (wow) {
    // Wowjs might not trigger for position fixed elements
    if (window.scrollY > 0) {
      element.querySelectorAll('.wow').forEach(el => wow.show(el));
    }
  }
  function adjustNavPinState() {
    // Remove 'visible' class from all subNavContainers
    for (let i = 0; i < subNavContainers.length; i++) {
      subNavContainers[i].classList.remove('visible');
    }
    if (window.scrollY > 0) {
      element.style.backgroundColor = backgroundColorScroll;
      element.style.color = fontColorScroll;
      element.classList.add('scroll');
    } else {
      element.style.backgroundColor = initialBackgroundColor;
      element.style.color = fontColor;
      element.classList.remove('scroll');
    }
  }
  adjustNavPinState();
  function onScroll() {
    didScroll = true;
  }
  window.addEventListener('scroll', onScroll);

  // eslint-disable-next-line
  var debounceInterval = setInterval(() => {
    if (didScroll) {
      // eslint-disable-next-line
      hasScrolled();
      didScroll = false;
    }
  }, 250);
  function hasScrolled() {
    adjustNavPinState();
    // eslint-disable-next-line
    var navbarHeight = element.offsetHeight;
    // eslint-disable-next-line
    var st = window.scrollY;

    // Make sure they scroll more than delta
    if (Math.abs(lastScrollTop - st) <= delta) {
      return;
    }
    if (st > lastScrollTop && st > navbarHeight) {
      // Scroll Down
      element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`;
      document.documentElement.style.setProperty('--global-header-height', '0px');

      // Some sections "follow" the navbar with class sticky (i.e. Producer search)
      sections.forEach(section => {
        if (section.classList.contains('sticky')) {
          section.style.top = '0px';
        }
      });
    } else {
      // Scroll Up
      // eslint-disable-next-line
      if (st + window.innerHeight < document.documentElement.scrollHeight) {
        element.style.transform = `translateY(0) scaleY(1)`;
        document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`);
        sections.forEach(section => {
          if (section.classList.contains('sticky')) {
            section.style.top = `${navbarHeight}px`;
          }
        });
      }
    }
    lastScrollTop = st;
  }
})('NAVBAR', JSON.parse("{\"fontColor\":\"#fff\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#fff\",\"initialFontColor\":\"#fff\",\"backgroundColorScroll\":\"#1a1a1a\",\"initialBackgroundColor\":\"rgba(0,0,0,0)\"}"));
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {
  var $sidemenu = $('#' + sectionDomId);
  var shown = false;
  function onShow() {
    if (shown) {
      return;
    }
    shown = true;
    window.lpUI.requestScrollLock(sectionDomId);
  }
  function onHide(ev, opts) {
    if (!shown) {
      return;
    }
    shown = false;
    window.lpUI.releaseScrollLock(sectionDomId);
    $('body').removeClass('locked');
    opts = ev.detail || opts;
    if (!opts || !opts.instant) {
      $sidemenu.addClass("is-hiding");
      setTimeout(function () {
        $sidemenu.removeClass("is-hiding");
      }, 300);
    }
  }
  $sidemenu.on('lpui-show', onShow);
  $(window).on('lpui-sidemenu-hide.lpui-auto-clean', onHide);
  $sidemenu.removeClass("is-hiding");
})('global-sidemenu');
} catch(e) {
console.log(e);
}
                
                try {
(function init(footerId) {
  var textContent = $(".text_content_wrap p").text().trim().length;
  const socialLinks = $(`#${footerId} .lp-socials__link`);
  if (textContent < 1) {
    $(".text_content_wrap").remove();
    $(".second_text_footer").css({
      'margin-bottom': 0
    });
  }
  if (socialLinks.length > 0) {
    socialLinks.attr('data-wow-offset', '10');
  }
  if ($(window).width() > 1280) {
    let footer = document.querySelector("#" + footerId);
    let copyrightElem = footer.querySelector(".copy_zone");
    if (copyrightElem) {
      copyrightElem.style.whiteSpace = "nowrap";
      let nowrapElemWidth = copyrightElem.clientWidth;
      copyrightElem.style.whiteSpace = "";
      let normalElemWidth = copyrightElem.clientWidth;
      if (nowrapElemWidth > normalElemWidth) {
        footer.querySelector(".form-col--socials").classList.add("form-col--xl-auto");
      }
    }
  }
  const form = $("#" + footerId).find("form");
  const redirectLink = $('#' + footerId + ' .redirect-link');
  form.on("reset", function () {
    redirectPage(redirectLink);
  });
  function redirectPage(link) {
    if (link.length) {
      const rawHref = link.attr('href');
      link.attr('href', setHttp(rawHref));
      link[0].click();
    }
  }
  function setHttp(link) {
    if (link.search(/^http[s]?\:\/\/|\//) == -1) {
      link = 'http://' + link;
    }
    return link;
  }
})('global-footer');
} catch(e) {
console.log(e);
}
                
                try {
(function init(options) {})('global-mobile-contact');
} catch(e) {
console.log(e);
}
                
                try {
(function init(sectionDomId) {
  var $section = $('#' + sectionDomId);
  var $carousel = $section.find('.collection');
  var currentPreTitle = '';
  var currentTitle = '';
  const $videoWrap = $section.find('.full-screen-video-component > .video-wrapper');
  if ($videoWrap.length) {
    const $video = $videoWrap.find('video');
    $video.each(function () {
      var v = this;
      if (v.readyState > 0) {
        $videoWrap.addClass('playing');
      } else {
        v.addEventListener('canplay', function () {
          $videoWrap.addClass('playing');
        }, {
          once: true
        });
      }
    });
  }
  $('#' + sectionDomId + ' .collection').slick({
    dots: $('#' + sectionDomId + ' .collection').find('.item').length > 1 ? true : false,
    arrows: false,
    speed: 0,
    fade: true,
    autoplay: true,
    autoplaySpeed: 6000,
    pauseOnHover: false,
    pauseOnFocus: false
  });
  $carousel.on('beforeChange', function () {
    currentPreTitle = $(this).find('.slick-current').find('.lp-text--pretitle').text();
    currentTitle = $(this).find('.slick-current').find('.lp-h1').text();
    $(this).find('.slick-current').find('.lp-h1').addClass('animation');
    $(this).find('.slick-current').find('.lp-text--pretitle').addClass('animation');
  });
  $carousel.on('afterChange', function () {
    if (currentPreTitle === $(this).find('.slick-current').find('.lp-text--pretitle').text()) {
      $(this).find('.slick-current').find('.lp-text--pretitle').removeClass('animation');
    }
    if (currentTitle === $(this).find('.slick-current').find('.lp-h1').text()) {
      $(this).find('.slick-current').find('.lp-h1').removeClass('animation');
    }
  });
})('section-4ef6af6f-9dde-4ac0-8986-1dcd0f0cfb35', 'undefined');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {
  window.luxuryPresence.mapApiLoader.load().then(() => {
    const section = $(`#${sectionDomId}`);
    const searchBar = section.find('.search-bar');
    const searchResultContainer = section.find('.search-result-container');
    const searchInput = section.find('input.search-input');
    const searchResultsCard = section.find('.address-results');
    const addressSearchCard = section.find('.address-search');
    const neighborhoodSearchCard = section.find('.neighborhood-search');
    const areaSearchCard = section.find('.area-search');
    const service = new google.maps.places.AutocompleteService();
    const geocoder = new google.maps.Geocoder();
    const bounds = new google.maps.LatLngBounds();
    const nonStickySearchTop = searchBar.offset().top;
    const heightLimited = section.find('.height-limited');
    const staticHeader = $('.static-header');
    const rightBtn = section.find('.contact-section');
    function sticktothetop() {
      const top = staticHeader.length == 1 ? staticHeader[0].getBoundingClientRect().height : 0;
      const windowTop = $(window).scrollTop();
      const diff = nonStickySearchTop - windowTop;
      if (diff < top) {
        section.addClass('sticky');
        searchResultContainer.addClass('at-bottom');
        if (staticHeader.length == 1) {
          section[0].style.top = top + 'px';
        }
      } else {
        section.removeClass('sticky');
        section.addClass('test');
        section[0].style.top = '';
        if (diff > 300 + top) {
          searchResultContainer.removeClass('at-bottom');
          heightLimited.css('max-height', diff - 50 + 'px');
        } else {
          heightLimited.css('max-height', '');
          searchResultContainer.addClass('at-bottom');
        }
      }
    }
    $(window).on('scroll.lpui-auto-clean', function () {
      sticktothetop();
    });
    sticktothetop();
    var searchOpened = false;
    function showResults(show) {
      if (show) {
        searchResultContainer.css({
          display: ''
        });
        section.addClass('opened');
        searchOpened = true;
        setTimeout(() => {
          searchResultContainer.addClass('show');
        }, 1);
      } else {
        searchResultContainer.removeClass('show');
        section.removeClass('opened');
        searchOpened = false;
      }
    }
    $(document.body).on('click', function (e) {
      if (searchBar.find($(e.target)).length > 0 || heightLimited.find($(e.target)).length > 0) {
        return;
      }
      showResults(false);
      if (searchOpened) {
        return false;
      }
    });
    rightBtn.on('click', function () {
      showResults(false);
    });
    function resolveGeoBounds(placeId, description) {
      return new Promise(function (resolve, reject) {
        geocoder.geocode({
          'placeId': placeId
        }, function (results, status) {
          if (status != 'OK') {
            return reject(status);
          }
          var result = results[0];
          var bounds = new google.maps.LatLngBounds();
          bounds.extend(result.geometry.viewport.getSouthWest());
          bounds.extend(result.geometry.viewport.getNorthEast());
          result.geometry.bounds = bounds.toJSON();
          var placeUrl = window.luxuryPresence.makeMlsLink(result);
          return resolve({
            placeUrl: placeUrl,
            description: description
          });
        });
      });
    }
    function placesResults(keyword) {
      var request = {
        input: keyword,
        componentRestrictions: {
          country: 'us'
        },
        types: ['(regions)'],
        limit: 1
      };
      return new Promise(function (resolve, reject) {
        service.getPlacePredictions(request, function (results, status) {
          if (keyword === lastKeyword && status === google.maps.places.PlacesServiceStatus.OK) {
            var geoResultPromises = results.map(function (result) {
              return resolveGeoBounds(result.place_id, result.description).catch(function () {
                return null;
              });
            });
            Promise.all(geoResultPromises).then(function (geoLinks) {
              return resolve(geoLinks.filter(function (a) {
                return a;
              }));
            });
          } else {
            return resolve([]);
          }
        });
      });
    }
    function lpResults(keyword) {
      return new Promise(function (resolve, reject) {
        window.luxuryPresence.getMLSAutocomplete(keyword).then(function (results) {
          return resolve(results);
        }).catch(function (e) {
          console.log(e.message);
          return resolve([]);
        });
      });
    }
    searchInput[0].onfocus = function (e) {
      if (searchInput[0].value) {
        searchResultsCard.show();
      } else {
        addressSearchCard.show();
      }
      showResults(true);
    };
    var lastKeyword = '';
    function doSearch() {
      var keyword = searchInput.val();
      lastKeyword = keyword;
      if (!keyword) {
        searchResultsCard.hide();
        addressSearchCard.show();
      } else {
        searchResultsCard.show();
        addressSearchCard.hide();
        const searches = [placesResults(keyword), lpResults(keyword)];
        Promise.all(searches).then(function (results) {
          if (keyword !== lastKeyword) {
            return;
          }
          const placesResults = results[0];
          const lpResults = results[1];
          var placesHtml = placesResults.reduce(function (acc, result) {
            acc += `<a class="result place-link" href="${result.placeUrl}">${result.description}</a>`;
            return acc;
          }, '');
          var listingsHtml = lpResults.reduce(function (acc, result) {
            acc += `<span class="result"><a href="/home-search/listings/${result.id}">${result.display_address}</a></span>`;
            return acc;
          }, '');
          var html = `<div class="result-container"><h6>Locations</h6><div>${placesHtml}</div></div><div class="result-container"><h6>Listings</h6><div><div>${listingsHtml}</div></div>`;
          searchResultsCard.html(html);
        });
      }
    }
    var debouncedSearch = window.luxuryPresence.debounce(doSearch, 400);
    searchInput[0].onkeyup = debouncedSearch;
  });
})('section-7dadc30e-c952-4d4e-a20a-9418f8ef3104', 'undefined');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {
  var _target = $(`#${sectionDomId} .link.link--share`);
  _target.on('click', function () {
    $(this).toggleClass('link--share-visible');
  });
})('section-a7cc2fca-a22c-4888-aa6c-a6af63bb7f7b', 'undefined');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {
  var WIDTH_TOLERANCE_PERCENT = 10;
  var isSliderInitialized = false;
  var $slider = $("#" + sectionDomId + " .carousel-container");
  var slickOptions = {
    "speed": +$slider.data("speed") || 10000,
    "cssEase": "linear",
    "autoplay": true,
    "infinite": true,
    "nextArrow": "",
    "prevArrow": "",
    "pauseOnFocus": false,
    "pauseOnHover": false,
    "slidesToShow": 1,
    "autoplaySpeed": 0,
    "variableWidth": true,
    "slidesToScroll": 1
  };
  var $slides = $("#" + sectionDomId + " .carousel-slide");
  function doSlidesFit() {
    var containerWidth = $slider.width();
    var totalSlidesWidth = 0;
    $slider.find(".carousel-slide").not(".slick-cloned").each(function () {
      totalSlidesWidth += $(this).outerWidth();
    });
    return totalSlidesWidth < containerWidth * (100 - WIDTH_TOLERANCE_PERCENT) / 100;
  }
  if ($slides.length > 0 && doSlidesFit() && !isSliderInitialized) {
    $slides.clone().appendTo($slider);
    while (doSlidesFit()) {
      $slides.clone().appendTo($slider);
    }
  }
  if ($slides.length > 0) {
    $slider.slick(slickOptions);
    isSliderInitialized = true;
    $(window).on("resize.lpui-auto-clean orientationchange.lpui-auto-clean", function () {
      if (!doSlidesFit() && !isSliderInitialized) {
        $slider.slick(slickOptions);
        isSliderInitialized = true;
      } else if (doSlidesFit() && isSliderInitialized) {
        $slider.slick("unslick");
        $slider.slick(slickOptions);
      }
    });
  }
})('section-42184e31-83b8-4e3a-809d-b27f9407c48f', 'undefined');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {
  const $section = $(`#${sectionDomId}`);
  const $container = $section.find('.featured-properties-section');
  const $slider = $section.find('.featured-properties');
  const threeSlides = $container.hasClass('three-slides');
  const autoScroll = $container[0].dataset['autoScroll'] === 'true';
  const autoplaySpeed = parseInt($container[0].dataset['autoplaySpeed']) || 3000;
  const sliderOptions = {
    "arrows": true,
    "infinite": false,
    autoplay: autoScroll,
    autoplaySpeed: autoplaySpeed,
    "nextArrow": $section.find('.slick-links-nav .next'),
    "prevArrow": $section.find('.slick-links-nav .prev'),
    "slidesToShow": 2,
    "slidesToScroll": 2,
    "responsive": [{
      "settings": {
        "slidesToShow": 1,
        "slidesToScroll": 1
      },
      "breakpoint": 769
    }]
  };
  if (threeSlides) {
    sliderOptions.slidesToShow = 3;
    sliderOptions.slidesToScroll = 3;
    sliderOptions.responsive.unshift({
      "settings": {
        "slidesToShow": 2,
        "slidesToScroll": 2
      },
      "breakpoint": 1100
    });
  }
  if (!$slider.hasClass('.slick-initialized')) {
    $slider.slick(sliderOptions);
  }
  $slider.on('beforeChange', function () {
    $slider.find('.featured-properties__share.featured-properties__share--opened').removeClass('featured-properties__share--opened');
  });
  $slider.find('.featured-properties__share .btn').on('click', function () {
    $parent = $(this).parent();
    if ($parent.hasClass('featured-properties__share--opened')) {
      $parent.removeClass('featured-properties__share--opened');
    } else {
      $slider.find('.featured-properties__share.featured-properties__share--opened').removeClass('featured-properties__share--opened');
      $parent.addClass('featured-properties__share--opened');
    }
  });
})('section-77a55aad-9562-40b0-b006-a0e7da4a0ff6', 'undefined');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {
  const $section = $('#' + sectionDomId);
  if ($section.find('.parallax').length) $section.addClass('parallax-enabled');
  if ($section.find('.video-wrapper').length) $section.addClass('video');
  slider = $section.find('.js-slider');
  var autoscroll = slider.attr('data-autoscroll') === 'true';
  var autoscrollInterval = parseInt(slider.attr('data-autoscroll-interval'), 10) || 6;
  if (slider.length > 0) {
    slider.slick({
      dots: false,
      fade: true,
      speed: 300,
      arrows: true,
      infinite: true,
      nextArrow: ".featured-testimonials .slick-links-nav .next",
      prevArrow: ".featured-testimonials .slick-links-nav .prev",
      slidesToShow: 1,
      adaptiveHeight: true,
      slidesToScroll: 1,
      autoplay: autoscroll,
      autoplaySpeed: autoscrollInterval * 1000
    });
  }
})('section-f3880da9-ac15-47ea-aec3-62adde528f11', 'undefined');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {})('section-678bf8e3-d350-4cf7-bdf5-a5f4f0093911', 'undefined');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {})('section-d34dd8f7-cbdd-4352-84c9-f155a809528d', 'undefined');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {
  const $section = $('#' + sectionDomId);
  if ($section.find('.parallax').length) $section.addClass('parallax-enabled');
  if ($section.find('.video-wrapper').length) $section.addClass('video');
})('section-afd5b524-043d-40cc-9cd3-279654dad980', 'undefined');
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId, options) {
  let section = null;
  switch (sectionDomId) {
    case 'NAVBAR':
      section = document.querySelector('body > nav, #global-navbar');
      break;
    case 'FOOTER':
      section = document.querySelector('body > footer, #global-footer');
      break;
    case 'SIDEMENU':
      section = document.querySelector('body > div.sidemenu, #global-sidemenu');
      break;
    case 'CONTACT':
      section = document.querySelector('#modal-global-contact-us');
      break;
    case 'MOBILE_CONTACT':
      section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact');
      break;
    case 'SUBSCRIBE':
      // Subscribe Not Implemented
      section = null;
      break;
    case 'ACCOUNT':
      // Account Not Implemented
      section = null;
      break;
    default:
      section = document.querySelector('#' + sectionDomId);
  }
  if (!section) {
    return;
  }
  var url = window.luxuryPresence.defaults.apiGatewayUrl;
  var companyId = window.luxuryPresence.defaults.companyId;
  var limit = options.limit || 8;
  if (typeof limit === 'string') {
    limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected
  }
  var templateSelector = options.templateSelector || '.jsIGTemplate';
  var containerSelector = options.containerSelector || '.jsIGContainer';
  var hasDataClass = options.hasDataClass || 'has-data';
  var hideActivateMessage = options.hasDataClass || false;
  var payload = {
    companyId: companyId,
    limit: limit
  };
  if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) {
    payload.resourceId = options.resourceId;
    payload.resource = options.resource || 'agent';
    payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true;
  }
  var query = 'query InstagramFeed (\n' + '  $companyId: String\n' + '  $instagramAuthorizationId: String\n' + '  $username: String\n' + (payload.resourceId ? '$resource: InstagramAuthResourceEnum\n $resourceId: ID\n $fallbackToNoResource: Boolean' : '') + '  $limit: Int\n' + ') {\n' + '  instagramFeed (\n' + '  companyId: $companyId\n' + '  instagramAuthorizationId: $instagramAuthorizationId\n' + '  username: $username\n' + (payload.resourceId ? 'resource: $resource\n resourceId: $resourceId\n fallbackToNoResource: $fallbackToNoResource' : '') + '  limit: $limit\n' + '  ) {\n' + '    active\n' + '    feedUrl\n' + '    username\n' + '    items {\n' + '      id\n' + '      caption\n' + '      commentsCount\n' + '      likeCount\n' + '      mediaType\n' + '      mediaUrl\n' + '      permalink\n' + '      shortcode\n' + '      thumbnailUrl\n' + '      timestamp\n' + '      username\n' + '    }\n' + '  }\n' + '}\n';
  var templateHTML = section.querySelector(templateSelector)?.innerHTML || '';
  var template = Handlebars.compile(templateHTML);
  var container = section.querySelector(containerSelector);
  if (options.variables) {
    Object.keys(options.variables).forEach(function (key) {
      if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) {
        payload[key] = options.variables[key];
      }
    });
  }
  function getData() {
    var feed = {
      error: true
    };
    superagent.post(url + '/graphql').withCredentials() // for EB
    .send({
      query: query,
      variables: payload
    }).then(res => {
      try {
        if (!res.body.errors) {
          feed = res.body.data.instagramFeed;
          if (!feed.active) {
            if (!hideActivateMessage && sectionDomId === 'section-temp' && container) {
              if (payload.resourceId) {
                container.innerHTML = '<div style="text-align: center">Instagram account is not connected to selected ' + payload.resource + '.<br /> Connect it on the ' + payload.resource + ' page</div>';
              } else {
                container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>';
              }
            }
          } else {
            if (feed.items.length) {
              if (hasDataClass) {
                section.classList.add(hasDataClass);
              }
              const feedName = feed.username;
              section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl));
              section.querySelectorAll('.jsIGName').forEach(name => {
                name.textContent = '@' + feedName;
                name.setAttribute('title', '@' + feedName);
              });
              if (container && template) {
                container.innerHTML = template(feed);
              }
            }
          }
        }
      } catch (e) {}
      section.dispatchEvent(new CustomEvent('ig-data', {
        detail: feed
      }));
    }).catch(e => {
      console.log('err', e);
      section.dispatchEvent(new CustomEvent('ig-data', {
        detail: feed
      }));
    });
  }
  getData();
})('section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34', JSON.parse("{\"limit\":33,\"resource\":\"agent\",\"resourceId\":\"\",\"fallbackToNoResource\":\"true\",\"companyId\":\"d35b9bef-9a0c-4a53-9f1b-87c4123830dd\",\"sectionIndex\":10}"));
} catch(e) {
console.log(e);
}
                try {
(function init(sectionDomId) {
  const $section = $('#' + sectionDomId);
  var templateHTML = $section.find('.jsIGItem').html();
  var itemTemplate = templateHTML && Handlebars.compile(templateHTML);
  const $container = $section.find('.ig-feed-feed');
  const $topPrev = $section.find('.top-nav-prev');
  const $topNext = $section.find('.top-nav-next');
  const $bottomPrev = $section.find('.bottom-nav-prev');
  const $bottomNext = $section.find('.bottom-nav-next');
  let limit = 33;
  try {
    limit = parseInt($container[0].dataset['limit']);
  } catch (e) {}
  if (!limit) {
    limit = 33;
  }
  let igFeed = {};
  let usedWidth = 0;
  let slider = null;
  $section.on('ig-data', function (ev, feed) {
    feed = ev.detail || feed;
    igFeed = feed;
    if (feed.active && feed.items.length) {
      buildSlider();
    }
  });
  $(window).on('resize.lpui-auto-clean', onResize);
  let timer = null;
  function onResize() {
    clearTimeout(timer);
    timer = window.setTimeout(buildSlider, 50);
  }
  function getLayout(w, n) {
    if (w > 1100) {
      if (n > 7) {
        return {
          type: 'type1',
          single: 1,
          multi: n,
          slides: 3,
          slider: n > 9
        };
      }
      if (n > 5) {
        return {
          type: 'type1',
          single: 2,
          multi: n,
          slides: 3,
          slider: false
        };
      }
      return {
        type: 'type1',
        single: n,
        multi: n,
        slides: 3,
        slider: n > 3
      };
    } else if (w > 880) {
      if (n > 4) {
        return {
          type: 'type2',
          single: 1,
          multi: n,
          slides: 2.5,
          slider: n > 7
        };
      }
      return {
        type: 'type1',
        single: n,
        multi: n,
        slides: 3,
        slider: n > 3
      };
    } else if (w > 767) {
      if (n > 4) {
        return {
          type: 'type3',
          single: 1,
          multi: n,
          slides: 2,
          slider: n > 5
        };
      }
      return {
        type: 'type4',
        single: n,
        multi: n,
        slides: 2,
        slider: n > 2
      };
    } else if (w > 460) {
      return {
        type: 'type4',
        single: n,
        multi: n,
        slides: 2,
        slider: n > 2
      };
    }
    return {
      type: 'type5',
      single: n,
      multi: n,
      slides: 1,
      slider: n > 1
    };
  }
  function ensureClass($el, className) {
    if ($el.hasClass(className)) {
      return;
    }
    $el.addClass(className);
  }
  function makeSquare($el) {
    const el = $el[0];
    el.style.width = '';
    el.style.height = '';
    const rect = el.getBoundingClientRect();
    if (rect.width !== rect.height) {
      el.style.width = rect.height + 'px';
    }
  }
  function buildSlider() {
    const cWidth = $container[0].getBoundingClientRect().width;
    if (cWidth === usedWidth) {
      return;
    }
    $container.empty();
    slider = $('<div class="ig-feed-slider"></div>');
    const items = igFeed.items.slice(0, limit);
    const layout = getLayout(cWidth, items.length);
    let i = 0;
    let slide = null;
    while (i < layout.single) {
      slide = $(`<div class="slide-single ${layout.type}"></div>`).append(itemTemplate(items[i])).appendTo(slider);
      i++;
    }
    while (i < layout.multi) {
      slide = $(`<div class="slide-multi ${layout.type}"></div>`).appendTo(slider);
      let slideContent = $('<div class="slide-multi-content"></div>').appendTo(slide);
      const lim = i + 4;
      while (i < lim && i < layout.multi) {
        slideContent.append(itemTemplate(items[i]));
        i++;
      }
    }
    $container.append(slider);
    if (layout.slider) {
      $topPrev.removeClass('hidden-control');
      $topNext.removeClass('hidden-control');
      $bottomPrev.removeClass('hidden-control');
      $bottomNext.removeClass('hidden-control');
      let prev, next;
      if ($bottomPrev.parent()[0].getBoundingClientRect().width) {
        prev = $bottomPrev;
        next = $bottomNext;
      } else {
        prev = $topPrev;
        next = $topNext;
        makeSquare($topPrev);
        makeSquare($topNext);
      }
      slider.children().each(function () {
        this.style.width = this.getBoundingClientRect().width + 'px';
      });
      slider.slick({
        dots: false,
        prevArrow: prev,
        nextArrow: next,
        slidesToScroll: 1,
        infinite: false,
        slidesToShow: layout.slides
      });
    } else {
      ensureClass($topPrev, 'hidden-control');
      ensureClass($topNext, 'hidden-control');
      ensureClass($bottomPrev, 'hidden-control');
      ensureClass($bottomNext, 'hidden-control');
    }
  }
})('section-412dfc8f-c0ed-4502-8e0b-24f1f652bb34', 'undefined');
} catch(e) {
console.log(e);
}

            var { body } = document;
            var globalNav = body.querySelector(':scope > nav');
            var globalSideMenu = body.querySelector(':scope > div.sidemenu');

            document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => {
                modalCloseBtn.addEventListener('click', function() {
                window.lpUI.hideClosestModal(modalCloseBtn);
              });
            });

            window.addEventListener('click', function() {
                document.querySelectorAll('.share-popup').forEach(sharedPopup => {
                    sharedPopup.style.display = 'none' ;
                });
            });

            /* Misc Partials / Addons */
            function initWOW() {
                if (wow) {
                    wow.init();
                    wow.scrollHandler();
                    setTimeout(function () {
                        const wowHideStyle = document.getElementById('wow-hide-elements');
                        if(wowHideStyle) {
                            wowHideStyle.disabled = true;
                        }
                    }, 1);
                }
            }

            const wowHideElements =  document.getElementById('wow-hide-elements');
            if (wowHideElements) {
               wowHideElements.disabled = false;
            }

                initWOW();

            /* Generic Navbar Handling */
            globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => {
                hamburgerComponent.addEventListener('click', function() {
                window.lpUI.sideMenuToggle();
              });
            });
            globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => {
                toggleEl.addEventListener('click', function() {
                window.lpUI.sideMenuToggle();
              });
            });

            document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => {
                linkEl.addEventListener('click', function(e) {
                  e.preventDefault();
                  e.stopPropagation();
                  var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav');
                  if (subNav && subNav.classList.contains('visible')){
                    subNav.classList.remove('visible');
                  } else {
                    globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => {
                      globalSubNav.classList.remove('visible');
                    });
                    globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => {
                        sideMenuSubNav.classList.remove('visible');
                    });
                    subNav?.classList.add('visible');
                  }
                });
            });
            window.addEventListener('click', function() {
                document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => {
                    subNavEl.classList.remove('visible');
                });
            });

        }

        document.addEventListener('DOMContentLoaded', lpGlobalInit);

    </script>

    <script type="module">
    function selectorExists(selector) {
        return document.querySelector(selector) !== null;
    }

    // Function to initialize the third-party library
    function initParoller(selector = '.my-paroller') {
        var $parollerElements = $(selector);
        if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') {
            $parollerElements.paroller();
        }
    }

    const parollerSelector = '.my-paroller';

    if (selectorExists(parollerSelector)) {
        window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() {
            initParoller(parollerSelector);
            window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true;
        });
    }
    </script>

            <!-- Google Tag Manager (noscript) -->
            <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T9SFQGHZ"
            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
            <!-- End Google Tag Manager -->
        
            <script src="https://cdn.userway.org/widget.js" data-account="n1DRbtZoc3" defer onload="onAccessibilityWidgetLoaded()"></script>
            <script>
                function onAccessibilityWidgetLoaded() {
                    var MS_IN_TWO_MINUTES = 120000;
                    window.setTimeout(function() {
                        var accessibilityWidget = document.querySelector('.uwy:not(.uon)');
                        if (accessibilityWidget) {
                            accessibilityWidget.style.display = 'none';
                        }
                    }, MS_IN_TWO_MINUTES);
                }
            </script>
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a0332e79de826176',t:'MTc4MDAzMzQwNw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body>
</html>
