PageSourceSearch

https://ebhometransitions.com/team

html ebhometransitions.com collected 2026-09-24 13:57:19 UTC 351,213 bytes, 3,436 lines download raw bytes

1<!DOCTYPE html>
2<html class="no-js" lang=en>
3<head>
4    <meta charset="utf-8">
5    <meta http-equiv="x-ua-compatible" content="ie=edge">
6    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7    <meta name="twitter:card" content="summary_large_image">
8    <meta property="og:type" content="website">
9        <title>Meet the East Bay Home Transitions Real Estate Group</title>
10        <meta property="og:title" content="Meet the East Bay Home Transitions Real Estate Group">
11        <meta name="twitter:title" content="Meet the East Bay Home Transitions Real Estate Group">
12        <meta name="description" content="East Bay Home Transitions, your expert local realtors in Oakland, Montclair, Alameda, and more. Find your dream home. Call today for a free consultation!">
13        <meta property="og:description" content="East Bay Home Transitions, your expert local realtors in Oakland, Montclair, Alameda, and more. Find your dream home. Call today for a free consultation!">
14        <meta name="twitter:description" content="East Bay Home Transitions, your expert local realtors in Oakland, Montclair, Alameda, and more. Find your dream home. Call today for a free consultation!">
15        <meta property="og:image" content="https://media-production.lp-cdn.com/media/14d3ce0a-ac5c-47ff-b6b6-a2af36d4aea2">
16        <meta name="twitter:image" content="https://media-production.lp-cdn.com/media/14d3ce0a-ac5c-47ff-b6b6-a2af36d4aea2">
17        <meta property="og:url" content="https://ebhometransitions.com/team">
18        <link rel="canonical" href="https://ebhometransitions.com/team">
19    
19<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
19
20    <link rel="preconnect" href="https://fonts.googleapis.com">
21    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
22    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i">
23    <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'">
24    <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript>
25    <link rel="icon" type="image/x-icon" href="/favicon.ico">
26    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
27    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
28    <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png">
29    <style id="global-css">:root{--global-primary-font-family:Montserrat,sans-serif;--global-primary-font-family-short:Montserrat;--global-secondary-font-family:Montserrat,sans-serif;--global-secondary-font-family-short:Montserrat;--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:Montserrat,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:Montserrat,sans-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>
30        <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/producer/index.css" />
31    <style id="website-css">@media(max-width:769px){nav#global-navbar .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;}nav#global-navbar .header .navigation .sub-nav ul{background-color:transparent;}nav#global-navbar .header .navigation .sub-nav ul li{background-color:rgba(255,255,255,0.9);}nav#global-navbar .header .navigation .sub-nav ul li:hover{background-color:rgba(255,255,255,1);}nav#global-navbar .header .navigation .sub-nav ul a{color:#000;}nav#global-navbar.scroll{background-color:#F1F1F1!important;}nav#global-navbar.scroll li.navigation__item a.navigation__link{color:#000;}nav#global-navbar.scroll li.navigation__item a.navigation__link span:after{background-color:#000;}nav#global-navbar.scroll button.hamburger-component.hamburger{color:#000;}#global-navbar.scroll .header a.logo__link img:last-child{display:block!important;}#global-navbar.scroll .header a.logo__link img:first-child{display:none!important;}@media only screen and (min-width:768px){nav#global-navbar .header .logo img{max-height:39px;}}h1{text-transform:uppercase!important;}.lp-h1{text-transform:uppercase!important;}h2{text-transform:uppercase!important;}.lp-h2{text-transform:uppercase!important;}h3{text-transform:uppercase!important;}.lp-h3{text-transform:uppercase!important;}div#global-sidemenu.sidemenu a{text-transform:uppercase;}div#global-sidemenu.sidemenu button{text-transform:uppercase;}div#modal-global-contact-us .contact-form .section-message form{max-width:490px;}@media only screen and (max-width:1080px){div#modal-global-contact-us .contact-form h2{font-size:37px;}}@media only screen and (max-width:925px){div#modal-global-contact-us .contact-form h2{font-size:28px;}}footer#global-footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:46px;}@media (max-width: 768px){footer#global-footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:20px;}}div#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:1px;}@media (max-width: 768px){div#modal-global-contact-us .contact-form .info-zone .type_user{margin-bottom:25px;}}div#modal-global-contact-us .contact-form .info-zone_contact{margin-bottom:14px;}footer#global-footer .redesign.footer .grey-text{text-transform:none;}footer#global-footer .info-wrap-contact_zone .info-wrap-contact_cell p:nth-child(4){text-transform:none;}#modal-global-contact-us .redesign .link--white{text-transform:none;}#modal-global-contact-us .contact-form .pre-line{text-transform:none;}ul.lp-socials li a:hover i.fa-podcast:before{background-image:url(https://res.cloudinary.com/luxuryp/images/w_320,c_limit,f_auto,q_auto/uxp2xv3fsr9t4ryxqdgu/vppafagymzpshkyacaiy-2-2-3-1-1-1-1-2-1-2-3-3);-webkit-filter:invert(1);filter:invert(1);}ul.lp-socials li a i.fa-podcast:before{background-image:url(https://res.cloudinary.com/luxuryp/images/w_320,c_limit,f_auto,q_auto/uxp2xv3fsr9t4ryxqdgu/vppafagymzpshkyacaiy-2-2-3-1-1-1-1-2-1-2-3-3);content:"";width:25px;height:25px;display:block;-webkit-background-size:contain;background-size:contain;white-space:pre;background-repeat:no-repeat;}div#modal-global-contact-us ul.lp-socials li a:hover i.fa-podcast:before{background-image:url(https://res.cloudinary.com/luxuryp/images/w_320,c_limit,f_auto,q_auto/gnpjv6puok75bx3dg4bv/vpp
31afagymzpshkyacaiy-2-2-3-1-1-1-1-2-1-2-3-2);-webkit-filter:invert(1);filter:invert(1);}div#modal-global-contact-us ul.lp-socials li a i.fa-podcast:before{background-image:url(https://res.cloudinary.com/luxuryp/images/w_320,c_limit,f_auto,q_auto/gnpjv6puok75bx3dg4bv/vppafagymzpshkyacaiy-2-2-3-1-1-1-1-2-1-2-3-2);content:"";width:25px;height:25px;display:block;-webkit-background-size:contain;background-size:contain;white-space:pre;background-repeat:no-repeat;}footer#global-footer .footer .first_text_footer .img_size img{margin-top:32px;}@media (max-width: 768px){div#modal-global-contact-us .close{right:3vw;top:3vw;}}</style>
32    <style id="wow-hide-elements">.wow{visibility:hidden!important}</style>
33        <style id="page-css">
34            #section-eda32161-87c2-43c6-ac2a-1503a8905a4c{-webkit-background-position:50% 20%!important;background-position:50% 20%!important;color:#fff;--fontColor:#fff;--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.6));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/ymcrdguyuvj4sdptbvmt');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-eda32161-87c2-43c6-ac2a-1503a8905a4c .custom-intro{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:600px;-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;}#section-eda32161-87c2-43c6-ac2a-1503a8905a4c .custom-intro .container{z-index:1;text-align:center;max-width:900px;}#section-eda32161-87c2-43c6-ac2a-1503a8905a4c .custom-intro__title{margin-bottom:0px;font-weight:400;margin-bottom:24px;}@media (max-width: 768px){#section-eda32161-87c2-43c6-ac2a-1503a8905a4c .custom-intro__title{font-size:32px;}}@media (max-width: 360px){#section-eda32161-87c2-43c6-ac2a-1503a8905a4c .custom-intro__title{font-size:22px;}}#section-eda32161-87c2-43c6-ac2a-1503a8905a4c .custom-intro__subtitle{font-weight:400;white-space:pre-line;font-size:21px;line-height:1.57;}@media (max-width: 768px){#section-eda32161-87c2-43c6-ac2a-1503a8905a4c .custom-intro__subtitle{font-size:18px;}}#section-eda32161-87c2-43c6-ac2a-1503a8905a4c .description{margin-bottom:15px;}@media (min-width: 960px) and (orientation: landscape){#section-eda32161-87c2-43c6-ac2a-1503a8905a4c{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/ymcrdguyuvj4sdptbvmt');}}@media (min-width: 1280px) and (orientation: landscape){#section-eda32161-87c2-43c6-ac2a-1503a8905a4c{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=1920/https://media-production.lp-cdn.com/media/ymcrdguyuvj4sdptbvmt');}}@media (min-width: 1920px) and (orientation: landscape){#section-eda32161-87c2-43c6-ac2a-1503a8905a4c{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/ymcrdguyuvj4sdptbvmt');}}@media (min-width: 2560px) and (orientation: landscape){#section-eda32161-87c2-43c6-ac2a-1503a8905a4c{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/ymcrdguyuvj4sdptbvmt');}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9{color:#000000;--fontColor:#000000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#ffffff;--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(2 / 4 * var(--global-section-padding));background-color:#ffffff;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-grid{padding:140px 0 90px;}@media (max-width: 768px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-grid{padding:40px 0;}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-grid__title{text-align:center;margin-bottom:50px;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-grid .lp-input{width:100%;height:35px;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-grid__wrapper{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;margin-left:-25px;margin-right:-25px;}@media(min-width: 1001px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-grid__wrapper.two-col{max-width:750px;width:100%;margin:0 auto;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-grid__wrapper.two-col .team-member__container{width:50%;}}@media(max-width: 1000px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-grid__wrapper{max-width:1000px;}}@media (max-width: 768px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-grid__wrapper{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container{width:33.333%;padding-left:25px;padding-right:25px;margin-bottom:50px;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container:first-child{margin-left:auto;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container:last-child{margin-right:auto;}@media(max-width: 1000px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container{width:50%;}}@media (max-width: 768px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container{width:100%;}}@media (hover: hover) and (pointer: fine){@media (min-width: 769px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container:hover .team-member__image{opacity:.5;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container:hover .team-member__hover{opacity:1;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container:hover .team-member__hover::before,#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container:hover .team-member__hover::after{width:100%;height:100%;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container:hover .team-member__hover::before{border-top-color:inherit;border-right-color:inherit;-webkit-transition:width 0.25s ease-out,height 0.25s ease-out 0.25s;transition:width 0.25s ease-out,height 0.25s ease-out 0.25s;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container:hover .team-member__hover::after{border-bottom-color:inherit;border-left-color:inherit;-webkit-transition:width 0.25s ease-out 0.5s,height 0.25s ease-out 0.75s,border-color 0.01s ease-out 0.5s;transition:width 0.25s ease-out 0.5s,height 0.25s ease-out 0.75s,border-color 0.01s ease-out 0.5s;}}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__container.filtered-out{display:none;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__link{position:relative;display:block;height:100%;cursor:pointer;color:inherit;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__image{position:relative;width:100%;padding-top:130%;background-color:#cccccc;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__image img{position:absolute;object-fit:cover;width:100%;height:100%;top:0;left:0;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__image-wrap{position:relative;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__hover{opacity:0;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-transform:translate(20px, 20px);-moz-transform:translate(20px, 20px);-ms-transform:translate(20px, 20px);transform:translate(20px, 20px);
34display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10px;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__hover:before,#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__hover:after{content:' ';position:absolute;border:2px solid transparent;width:0;height:0;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__hover:before{top:0;left:0;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__hover:after{bottom:0;right:0;}@media (hover:none) and (pointer: coarse){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__hover{display:none;}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__name{display:block;margin-top:25px;font-size:30px;line-height:40px;font-weight:400;font-family:var(--global-primary-font-family);}@media (max-width: 560px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__name{font-size:18px;line-height:29px;letter-spacing:0.75px;}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__role{display:block;margin-top:8px;font-size:14px;line-height:24px;font-weight:700;font-family:inherit;text-transform:uppercase;letter-spacing:1.5px;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__license{font-size:13px;text-transform:uppercase;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__info{text-align:center;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .team-member__btn{margin-bottom:60px;position:relative;z-index:1;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .form-container{padding-bottom:48px;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .search-form{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;margin:0 -10px -8px;}@media (max-width: 600px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .search-form{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin:0;}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .input-group{-webkit-flex:1 0 250px;-ms-flex:1 0 250px;flex:1 0 250px;max-width:300px;position:relative;margin:8px 10px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 600px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .input-group{-webkit-flex:1;-ms-flex:1;flex:1;max-width:unset;margin:8px 0;}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .search-icon{position:absolute;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:0;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .search-clear-icon{color:#b2b2b2;position:absolute;top:calc(50% + 2px);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:40px;-webkit-transition:-webkit-transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0.3s;transition:transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0.3s;opacity:1;visibility:visible;cursor:pointer;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .search-clear-icon:hover{-webkit-transform:translateY(-50%) scale(1.2);-moz-transform:translateY(-50%) scale(1.2);-ms-transform:translateY(-50%) scale(1.2);transform:translateY(-50%) scale(1.2);}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .is-empty .search-clear-icon{opacity:0;visibility:hidden;-webkit-transition:-webkit-transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0s;transition:transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0s;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .search-input{padding-right:65px;}@media (max-width: 569px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .search-input{padding-bottom:5px;}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-toggle{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;outline:none;text-align:left;cursor:pointer;position:relative;padding-right:65px;overflow:hidden;text-overflow:ellipsis;text-transform:none;font-family:var(--global-secondary-font-family);}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-open-icon{position:absolute;right:17px;top:calc(50% - 1px);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:-webkit-transform .3s ease;transition:transform .3s ease;cursor:pointer;color:#b2b2b2;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-clear{color:#b2b2b2;position:absolute;right:40px;top:calc(50% + 2px);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:-webkit-transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0.3s;transition:transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0.3s;opacity:1;visibility:visible;cursor:pointer;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-clear:hover{-webkit-transform:translateY(-50%) scale(1.2);-moz-transform:translateY(-50%) scale(1.2);-ms-transform:translateY(-50%) scale(1.2);transform:translateY(-50%) scale(1.2);}@media (max-width: 639px){#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-clear{display:none;}}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-dropdown{position:absolute;width:100%;top:calc(100% + 5px);overflow:hidden;height:0;-webkit-transition:height 0.3s ease;transition:height 0.3s ease;background-color:#f5f5f5;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-dropdown.on-top{bottom:calc(100% + 5px);top:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-dropdown.opened{z-index:999;position:fixed;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-dropdown-wrapper{width:100%;overflow:hidden auto;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-optgroup{width:100%;padding:11px 20px;color:#b2b2b2;cursor:default;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-option{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;text-align:left;width:100%;border:none;border-radius:0;background-color:transparent;cursor:pointer;padding:11px 20px;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;text-transform:none;font-family:var(--global-secondary-font-family);}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select-option:hover{background-color:#b2b2b2;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select{-webkit-flex:1 0 0%;-ms-flex:1 0 0%;flex:1 0 0%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select.is-empty .c-select-toggle{color:#b2b2b2;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select.is-empty .c-select-clear{opacity:0;visibility:hidden;-webkit-transition:-webkit-transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0s;transition:transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0s;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .c-select.opened .c-select-open-icon{color:currentColor;-webkit-transform:translateY(-50%) rotateX(180deg);-moz-transform:translateY(-50%) rotateX(180deg);-ms-transform:translateY(-50%) rotateX(180deg);transform:translateY(-50%) rotateX(180deg);}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .empty-message{padding:160px 0;text-align:center;display:none;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .empty-message.visible{display:block;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9 .visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;padding:0;border:0;}#section-109ad32a-04ff-4f2e-9203-cb2104dad1b9>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(2 / 4 * var(--global-section-padding))!important;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7{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:#f8f8f8;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:97%;--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:#f8f8f8;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.6));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/rvpjl6frumsiyimq9ptk');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .redesign .link:after{background-color:#ffffff;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7.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-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:-9999;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7.parallax-enabled .featured-testimonials:before{display:block;content:'';left:0;top:0;width:100%;
34background:var(--sectionBackground) center no-repeat;-webkit-background-size:cover;background-size:cover;position:fixed;z-index:-1;height:100%;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials{padding:140px 0;position:relative;max-height:100vh;}@media(max-width: 768px){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials{padding:40px 0;max-height:unset;}}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .container{max-width:1300px;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .container:after{content:'';clear:both;display:block;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .slick-arrow:not(.slick-disabled){cursor:pointer;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__left{text-align:right;padding-right:45px;max-width:500px;width:100%;float:left;}@media(max-width: 991px){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__left{max-width:350px;width:inherit;padding-right:30px;}}@media(max-width: 768px){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__left{text-align:center;padding-right:0;margin-bottom:30px;float:none;max-width:100%;}}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__left h2{margin:0 0 15px;width:100%;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .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-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__left .slick-links-nav li{display:inline-block;vertical-align:top;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__left .slick-links-nav .separator{margin-left:40px;position:relative;pointer-events:none;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .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-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__left .slick-links-nav .link.slick-disabled:hover{color:inherit;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__left .slick-links-nav .link.slick-disabled:before,#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__left .slick-links-nav .link.slick-disabled:after{opacity:0;color:inherit;background-color:inherit;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__right{padding-left:45px;max-width:700px;overflow:hidden;}@media(max-width: 991px){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__right{padding-left:30px;}}@media(max-width: 768px){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials .featured-testimonials__right{overflow:visible;padding-left:0;}}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials__slider{border-left:solid 1px #d5d5d5;margin-left:-45px;padding-left:45px;margin-bottom:40px;}@media(max-width: 991px){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials__slider{margin-left:-30px;padding-left:30px;}}@media(max-width: 768px){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials__slider{margin-left:0;padding:0;margin-bottom:30px;border:none;}}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials__slider blockquote{margin:0 0 25px;white-space:pre-line;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials__slider cite{font-weight:bold;font-size:14px;line-height:18px;text-transform:uppercase;font-style:normal;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials__slider .slick-slide{vertical-align:top;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials__slider:not(.slick-initialized){display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7 .featured-testimonials__slider:not(.slick-initialized) li:not(:first-child){display:none;}#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}@media (min-width: 960px) and (orientation: landscape){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7{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/rvpjl6frumsiyimq9ptk');}}@media (min-width: 1280px) and (orientation: landscape){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7{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/rvpjl6frumsiyimq9ptk');}}@media (min-width: 1920px) and (orientation: landscape){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7{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/rvpjl6frumsiyimq9ptk');}}@media (min-width: 2560px) and (orientation: landscape){#section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7{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/rvpjl6frumsiyimq9ptk');}}
34#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c{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-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .boxed-text__description{margin-bottom:50px;text-align:center;}@media (max-width: 768px){#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .boxed-text__description{margin-bottom:30px;}}#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .lp-title-group .lp-h2{margin-top:0;}#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .button-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;}@media(max-width: 600px){#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .button-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .button-container .lp-btn{margin-right:20px;}#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .button-container .lp-btn:last-of-type{margin-right:0;}@media(max-width: 600px){#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .button-container .lp-btn{margin-right:0px;margin-bottom:20px;width:100%;}#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .button-container .lp-btn:last-of-type{margin-bottom:0;}}#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .lp-text--subtitle{margin-left:auto;margin-right:auto;text-transform:none;}#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c .redesign p{margin-bottom:1.666rem;}#section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c>div:last-child{padding-bottom:calc(0 / 4 * var(--global-section-padding))!important;}#section-64de7b13-9930-4519-a89c-b80f37d851fa{color:#F9F5F5;--fontColor:#F9F5F5;--fontColor_H:0;--fontColor_S:25%;--fontColor_L:97%;--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.30));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/rwmeayehltp0psyrfhhg');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-64de7b13-9930-4519-a89c-b80f37d851fa .cta-block{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;}#section-64de7b13-9930-4519-a89c-b80f37d851fa .cta-block .text-block{max-width:65%;}@media (max-width: 768px){#section-64de7b13-9930-4519-a89c-b80f37d851fa .cta-block .text-block{max-width:100%;margin-bottom:24px;}}#section-64de7b13-9930-4519-a89c-b80f37d851fa .cta-block .lp-h2{margin-bottom:0;}@media (max-width: 768px){#section-64de7b13-9930-4519-a89c-b80f37d851fa .cta-block{-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;}#section-64de7b13-9930-4519-a89c-b80f37d851fa .cta-block .lp-h2{margin-bottom:24px;text-align:center;}}#section-64de7b13-9930-4519-a89c-b80f37d851fa .cta-block--Center-aligned{-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;text-align:center;}#section-64de7b13-9930-4519-a89c-b80f37d851fa .cta-block--Center-aligned .text-block{margin-left:auto;margin-right:auto;margin-bottom:24px;}@media (min-width: 769px){#section-64de7b13-9930-4519-a89c-b80f37d851fa .cta-block--Right-aligned .text-block{padding-right:20px;}}@media (min-width: 960px) and (orientation: landscape){#section-64de7b13-9930-4519-a89c-b80f37d851fa{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/rwmeayehltp0psyrfhhg');}}@media (min-width: 1280px) and (orientation: landscape){#section-64de7b13-9930-4519-a89c-b80f37d851fa{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/rwmeayehltp0psyrfhhg');}}@media (min-width: 1920px) and (orientation: landscape){#section-64de7b13-9930-4519-a89c-b80f37d851fa{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/rwmeayehltp0psyrfhhg');}}@media (min-width: 2560px) and (orientation: landscape){#section-64de7b13-9930-4519-a89c-b80f37d851fa{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/rwmeayehltp0psyrfhhg');}}#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a{color:#010101;--fontColor:#010101;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#F9F5F5;--bgColor_H:0;--bgColor_S:25%;--bgColor_L:97%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#F9F5F5;}#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a.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-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:-9999;}#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a.parallax-enabled .work-with-us:before{display:block;content:'';left:0;top:0;width:100%;
34background:var(--sectionBackground) center no-repeat;-webkit-background-size:cover;background-size:cover;position:fixed;z-index:-1;height:100%;}#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .redesign.work-with-us{position:relative;color:var(--fontColor, #ffffff);}#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .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-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .redesign.work-with-us .container{min-height:auto;padding-top:100px;padding-bottom:100px;}}#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .redesign.work-with-us h2{position:relative;padding-bottom:28px;margin:0 0 30px;}@media(max-width: 768px){#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .redesign.work-with-us h2{padding-bottom:40px;}}#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .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-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .redesign.work-with-us .description{margin:0 0 30px;}@media(max-width: 768px){#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .redesign.work-with-us .description{margin-bottom:40px;}}#section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .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-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a .redesign.work-with-us .btn-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:10px;}}#section-91779466-3754-443e-816b-903fe9150afb{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;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:rgba(241, 241, 241, 1);}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section ul.featured-properties div.slick-track li.featured-properties__item-cover span.featured-properties__label{background:#000;color:#fff;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section ul.featured-properties .featured-properties__item{background-color:#fff;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section ul.featured-properties .featured-properties__text{padding-top:35px;padding-bottom:35px;background-color:#fff;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section ul.featured-properties .featured-properties__text p{color:#000;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section ul.featured-properties .featured-properties__text h4{color:#000;text-transform:uppercase;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section ul.featured-properties .featured-properties__text h5{color:#000;}@media only screen and (max-width:1024px){#section-91779466-3754-443e-816b-903fe9150afb div.featured-properties-button-holder{margin-top:20px;}}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section span.link--white{color:#000;border-color:#000;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section span.link--white:after{background-color:#a1a1a1;color:#a1a1a1;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section ul.slick-links-nav span.spacer{background-color:#000;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section ul.slick-links-nav li span.link:before{background-color:#000;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section span.link:hover{color:#a1a1a1;}#section-91779466-3754-443e-816b-903fe9150afb div.redesign.featured-properties-section span.link:after{background-color:#a1a1a1;color:#a1a1a1;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section{padding:140px 0;}@media (max-width: 991px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section{padding:100px 0;}}@media (max-width: 768px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section{padding:40px 0;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-list{width:100%;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-track{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-arrow:not(.slick-disabled){cursor:pointer;}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .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;
34-webkit-justify-content:center;justify-content:center;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-links-nav li{display:inline-block;vertical-align:top;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-links-nav li+li{margin-left:40px;position:relative;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-links-nav .slick-hidden+.spacer{display:none;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-links-nav .spacer{position:absolute;left:-23px;width:1px;height:10px;margin-top:-5px;top:50%;background-color:#fff;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-links-nav .link.slick-disabled{cursor:default;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-links-nav .link.slick-disabled:hover{color:inherit;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-links-nav .link.slick-disabled:before,#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .slick-links-nav .link.slick-disabled:after{opacity:0;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .btn{min-width:250px;}@media (min-width: 561px) and (max-width: 1024px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-section .btn{width:275px;}}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties-header{display:block;margin-bottom:40px;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-header h2{color:var(--fontColor);margin:0;}@media (max-width: 768px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-header h2{margin-bottom:25px;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-button-holder{text-align:center;margin-top:80px;}@media (max-width: 768px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-button-holder{margin-top:40px;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-nav{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 768px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-nav{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties-nav .slick-arrow:hover{color:#fff;opacity:1;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-nav .slick-arrow:before{content:'';}@media (max-width: 768px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-nav .slick-arrow{margin-top:0;}}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties-nav .slick-arrow.slick-prev:before{content:none;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties-nav .slick-arrow.slick-next{margin-left:41px;}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties-nav .slick-arrow.slick-disabled:after{opacity:0;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties{padding:0;margin:0 -40px;color:#000;}@media (max-width: 991px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties{margin-left:-12px;margin-right:-12px;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item-cover{padding:0 40px;}@media (max-width: 991px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item-cover{padding:0 12px;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item-cover:focus{outline:none;}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item{min-height:500px;}}@media (hover: none) and (pointer: coarse){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item{min-height:1px;background-color:transparent;}}@media (hover: hover) and (pointer: fine){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item:hover .featured-properties__hover{opacity:1;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item h4{text-transform:none;color:black;margin:0 0 7px;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item p{color:black;margin:0 0 7px;}@media (max-width: 768px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item p{margin-bottom:3px;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item h5{color:black;margin:0;font-family:var(--global-secondary-font-family);text-transform:none;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__item >a{width:100%;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__img{vertical-align:top;width:100%;height:315px;background-color:gray;position:relative;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__img img{width:100%;height:100%;object-fit:cover;}@media (max-width: 768px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__img{height:200px;}}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__text{padding:13px;min-height:175px;}}@media (max-width: 768px){#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__text p{white-space:normal;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__label{position:absolute;top:0;right:0;background:#000;color:#fff;
34padding:4px 35px;z-index:2;}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__hover{display:none;}}@media(max-width: 768px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__hover h4{display:none;}}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__hover >a{position:absolute;top:0;left:0;width:100%;height:100%;}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__share{display:inline-block;position:relative;}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__share{display:block;width:100%;margin-top:4px;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__share .btn.btn--primary-light{display:block;}}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__share .socials .socials__link{width:69px;}@media (hover: none) and (pointer: coarse){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties .featured-properties__share .socials .socials__link:hover{border-bottom:transparent!important;}}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties:not(.slick-initialized) >.featured-properties__item-cover{width:50%;}}@media (min-width: 1100px){#section-91779466-3754-443e-816b-903fe9150afb .three-slides .featured-properties:not(.slick-initialized)>.featured-properties__item-cover{width:33%;}}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties__item-info:has(.mls-compliance-container) .featured-properties__text{padding-bottom:0;}#section-91779466-3754-443e-816b-903fe9150afb .featured-properties__item-mls-attribution{text-shadow:none;margin:0!important;color:#000!important;width:calc(100% - 200px);}@media (max-width: 1024px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties__item-mls-attribution{width:100%;}}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties__item .featured-properties__item-mls-attribution+.featured-properties__item-mls-logo{position:static!important;}}@media (max-width: 1024px){#section-91779466-3754-443e-816b-903fe9150afb .featured-properties__item .featured-properties__item-mls-logo{display:inline-block!important;}}#section-91779466-3754-443e-816b-903fe9150afb .mls-compliance-container{margin-top:auto;padding:15px!important;}#section-91779466-3754-443e-816b-903fe9150afb .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-91779466-3754-443e-816b-903fe9150afb .featured-properties__open-house{font-size:12px;}}#section-91779466-3754-443e-816b-903fe9150afb .description{margin-bottom:15px;}#section-91779466-3754-443e-816b-903fe9150afb>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#modal-global-contact-us .close{z-index:11;}#modal-global-contact-us .description{margin-bottom:15px;}#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;}
34#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
34-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;
34-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;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}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;
34left: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;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}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;
34-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(
35      var(--bgColor_H, 0),
36      var(--bgColor_S, 0%),
37      calc(50% + (var(--bgColor_L, 100%) - 50%) * 0.9),
38      var(--bgColor_A, 1)
39    );}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(
40var(--fontColor_H),
41var(--fontColor_S),
42calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445),
43var(--fontColor_A));}footer .redesign .inp--dark-bg input{color:var(--fontColor);border-color:hsla(
44      var(--fontColor_H),
45      var(--fontColor_S),
46      calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445),
47      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;
47-webkit-justify-content:flex-end;justify-content:flex-end;}footer .redesign .socials--grey .socials__link{background-color:hsla(
48      var(--bgColor_H),
49      var(--bgColor_S),
50      calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.15),
51      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(
52        var(--bgColor_H),
53        var(--bgColor_S),
54        calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.4),
55        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;
55left: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(
56        var(--bgColor_H),
57        var(--bgColor_S),
58        calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55),
59        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(
60            var(--bgColor_H),
61            var(--bgColor_S),
62            calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55),
63            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;
63-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;
63-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;}}
64        </style>
65    <style id="custom-style-css">.hyperlink-style-1{color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-1:hover{color:rgba(26, 26, 26, 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;}.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;}
65.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.pagination-style-1 li a{color:rgba(26, 26, 26, 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(26, 26, 26, 1)!important;border-color:rgba(26, 26, 26, 1)!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(26, 26, 26, 1)!important;border-color:rgba(26, 26, 26, 1)!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;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:rgba(255, 255, 255, 0.7)!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;}.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;}
65.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.button-style-3{color:rgba(94, 94, 94, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(94, 94, 94, 1)!important;}.button-style-3:hover{color:rgba(255,255,255,1)!important;background-color:rgba(94, 94, 94, 1)!important;border-color:rgba(94, 94, 94, 1)!important;}.button-style-4{color:rgba(192, 192, 192, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(192, 192, 192, 1)!important;}.button-style-4:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(192, 192, 192, 1)!important;border-color:rgba(192, 192, 192, 1)!important;}.button-style-5{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 35, 73, 1)!important;border-color:rgba(0, 35, 73, 1)!important;}.button-style-5:hover{color:rgba(0, 35, 73, 1)!important;background-color:rgba(0, 0, 0, 0.01)!important;border-color:rgba(0, 35, 73, 1)!important;}.button-style-6{color:#000000!important;background-color:#FFFFFF!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-6:hover{color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#FFFFFF!important;}</style>
66        <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode
67             defaults, and dynamically loads the locale + main (and banner if needed). -->
68        
68<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="96b2125f-da36-451f-8701-3e7494eee5ae"></script>
68
69
70
71        
71<script>
72            (function utmParse() {
73                const url = new URL(window.location.href);
74                if (url.search) {
75                    const utm = url.search.split(/\?|&/g).reduce((acc, current) => {
76                        const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g);
77                        if (matched) {
78                        acc[matched[0]] = current.replace(`${matched[0]}=`, '');
79                        }
80                        return acc;
81                    }, {});
82                    if (Object.keys(utm).length) {
83                        window.localStorage.setItem('utm_vars', JSON.stringify(utm));
84                    } else {
85                        // Remove old utm vars
86                        window.localStorage.removeItem('utm_vars');
87                    }
88                }
89                // Set referrer in local storage
90                // This is meant to be stored once to avoid self-referrals and to have the first referrer only.
91                if (!window.localStorage.getItem('referrer')) {
92                    // Capture the Referrer URL
93                    const referrer = document.referrer;
94                    if (referrer) {
95                        // Only store the referrer if it comes from outside the current domain (to avoid self-referrals)
96                        const currentDomain = window.location.hostname;
97                        const referrerDomain = new URL(referrer).hostname;
98
99                        if (referrerDomain !== currentDomain) {
100                            // Store it in localStorage
101                            localStorage.setItem('referrer', referrer);
102                        }
103                    }
104                }
105            })();
106        </script>
106
107        
108    <!-- GOOGLE TRANSLATE STYLES are moved to external CSS -->
109</head>
110<body>
111    <div id="google_translate_element" style="display: none"></div>
112
113        <nav id="global-navbar" data-el-id="43e7a874-fb1e-4cdd-91fe-eb6bf5b9179b">
114            <div class="redesign">
115  <div class="content-container header">
116    <div class="container header__container">
117      <div class="navbar">
118        <div class="logo">
119          <a href="/" class="logo__link">
120            <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/mwnfylmwjjlrzdlzv2or" 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/mwnfylmwjjlrzdlzv2or 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/mwnfylmwjjlrzdlzv2or 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/mwnfylmwjjlrzdlzv2or 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/mwnfylmwjjlrzdlzv2or 1918w" class="logo__img light" alt="">
121            <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/pbqelaa7gwbbxxtvqgmp" 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/pbqelaa7gwbbxxtvqgmp 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/pbqelaa7gwbbxxtvqgmp 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/pbqelaa7gwbbxxtvqgmp 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/pbqelaa7gwbbxxtvqgmp 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/pbqelaa7gwbbxxtvqgmp 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/pbqelaa7gwbbxxtvqgmp 3456w" class="logo__img dark" alt="">
122          </a>
123        </div>
124        <div class="navigation">
125          <ul>
126            <li class="navigation__item">
127              <a  href="/properties" class="navigation__link wow fadeInUp" data-wow-delay="2.0"><span>Portfolio</span></a>
128            </li>
129            <li class="navigation__item">
130              <a  href="/home-search/listings?search_type&#x3D;envelope&amp;south&#x3D;37.77581722264004&amp;west&#x3D;-122.2829185307129&amp;north&#x3D;37.87805176810842&amp;east&#x3D;-122.13563306928712&amp;property_type%5B%5D&#x3D;Co-op&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Commercial&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Manufactured&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Townhouse&amp;property_type%5B%5D&#x3D;Other&amp;property_type%5B%5D&#x3D;Co-op&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Commercial&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Manufactured&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Townhouse&amp;property_type%5B%5D&#x3D;Other&amp;status%5B%5D&#x3D;Active&amp;status_days%5BActive%5D&#x3D;36500&amp;status_days%5BUnder+Contract%5D&#x3D;36500&amp;status_days%5BPending%5D&#x3D;36500&amp;status_days%5BSold%5D&#x3D;180&amp;mailer_schedule&#x3D;instant&amp;order&#x3D;status_modified_at%3Adesc&amp;page&#x3D;1" class="navigation__link wow fadeInUp" data-wow-delay="2.1"><span>Home Search</span></a>
131            </li>
132            <li class="navigation__item">
133              <a data-type="CONTACT_US" class="navigation__link wow fadeInUp"><span>Contact Us</span></a>
134            </li>
135            <li class="navigation__item">
136              <a  href="tel:4153429950" class="navigation__link wow fadeInUp" data-wow-delay="2.3"><span>(415) 342-9950</span></a>
137            </li>
138          </ul>
139        </div>
140        <div class="buttons-wrapper">
141          <button type="button" class="hamburger-component hamburger">
142            <span class="hamburger__bars"></span>
143          </button>
144        </div>
145      </div>
146    </div>
147  </div>
148</div>
149
150        </nav>
151        <div id="global-sidemenu" class="sidemenu" data-el-id="285d4c89-6ed5-4dac-8cef-5b61ac8aadad">
152            <div class="sidebar">
153  
154  <button class="toggle sidebar__close close"></button>
155  <div class="sidebar__content">
156
157    <ul class="sidebar__nav">
158      <li class="sidebar__nav-item">
159        <a  href="/" class="sidebar__nav-link">Home</a>
160      </li>
161      <li class="sidebar__nav-item">
162        <a  href="/team" class="sidebar__nav-link">Meet the Team</a>
163      </li>
164      <li class="sidebar__nav-item">
165        <a  href="/properties" class="sidebar__nav-link">Portfolio</a>
166      </li>
167      <li class="sidebar__nav-item">
168        <a  href="/home-search/listings?search_type&#x3D;envelope&amp;south&#x3D;37.77581722264004&amp;west&#x3D;-122.2829185307129&amp;north&#x3D;37.87805176810842&amp;east&#x3D;-122.13563306928712&amp;property_type%5B%5D&#x3D;Co-op&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Commercial&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Manufactured&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Townhouse&amp;property_type%5B%5D&#x3D;Other&amp;property_type%5B%5D&#x3D;Co-op&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Commercial&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Manufactured&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Townhouse&amp;property_type%5B%5D&#x3D;Other&amp;status%5B%5D&#x3D;Active&amp;status_days%5BActive%5D&#x3D;36500&amp;status_days%5BUnder+Contract%5D&#x3D;36500&amp;status_days%5BPending%5D&#x3D;36500&amp;status_days%5BSold%5D&#x3D;180&amp;mailer_schedule&#x3D;instant&amp;order&#x3D;status_modified_at%3Adesc&amp;page&#x3D;1" class="sidebar__nav-link">Home Search</a>
169      </li>
170      <li class="sidebar__nav-item">
171        <a  href="/home-valuation" class="sidebar__nav-link">Home Valuation</a>
172      </li>
173      <li class="sidebar__nav-item">
174        <a  href="/neighborhoods" class="sidebar__nav-link">Neighborhoods</a>
175      </li>
176      <li class="sidebar__nav-item">
177        <a  href="/testimonials" class="sidebar__nav-link">Testimonials</a>
178      </li>
179      <li class="sidebar__nav-item">
180        <a  href="/concierge" class="sidebar__nav-link">Compass Concierge</a>
181      </li>
182      <li class="sidebar__nav-item">
183        <a  href="/bridge-loan" class="sidebar__nav-link">Compass Bridge Loan</a>
184      </li>
185      <li class="sidebar__nav-item">
186        <a  href="/renovations" class="sidebar__nav-link">Renovations</a>
187      </li>
188      <li class="sidebar__nav-item">
189        <a  href="/open-house" class="sidebar__nav-link">Weekly Open House / Broker Tour Update</a>
190      </li>
191      <li class="sidebar__nav-item">
192        <a  href="/market-update" class="sidebar__nav-link">Market Update</a>
193      </li>
194      <li class="sidebar__nav-item">
195        <a  href="/blog" class="sidebar__nav-link">Blog</a>
196      </li>
197      <li class="sidebar__nav-item">
198        <button data-type="CONTACT_US" class="sidebar__nav-link">Contact Us</button>
199      </li>
200      <li class="sidebar__nav-item">
201        <a  href="/home-search/account" class="sidebar__nav-link">My Search Portal</a>
202      </li>
203    </ul>
204  </div>
205</div>
206        </div>
207        <div  id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="ca33406a-b24a-4100-b315-87fd53d5adc2">
208            <div class="mobile-contact dark">
209  <div class="buttons-holder">
210    <a href="/cdn-cgi/l/email-protection#30515e544255471e4059445142425570535f5d405143431e535f5d">
211      <i class="lp-i lp-i--envelope"></i>
212    </a>
213    <a href="tel:4153429950">
214      <i class="lp-i lp-i--phone"></i>
215    </a>
216  </div>
217</div>
218
219        </div>
220        <section  class="image-section is-font-color-light is-background-color-light" id="section-eda32161-87c2-43c6-ac2a-1503a8905a4c" data-el-id="e6c6941b-dd32-4d6b-b4aa-56593f2d58bb">
221    <div class="redesign custom-intro">
222    <div class="container">
223        <h1 class="custom-intro__title">Meet the Team</h1>
224        
225    </div>
226</div>
227
228</section>
229<section id="section-109ad32a-04ff-4f2e-9203-cb2104dad1b9"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="4fd88bff-4528-4094-a238-bc747e38f1f6">
vendor: 109 bytes, lines 229-230
229
230<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
230<script type="text/x-handlebars-template" class="gridItem pagination-script"><div class="team-member__container">
231  <a class="team-member__link" href="/agent/{{slug}}">
232    <div class="team-member__image-wrap">
233      <div class="team-member__image">
234        {{{mediaImage avatar alt=(concat firstName " " lastName) sizes="(max-width: 768px) 100vw, (max-width: 1000px) 50vw, 33vw"}}}
235      </div>
236      <div class="team-member__hover">
237        <span class="btn btn--primary-dark team-member__btn button-style-1">LEARN MORE</span>
238      </div>
239    </div>
240    <div class="team-member__info">
241      <span class="team-member__name">{{firstName}} {{lastName}}</span>
242      <span class="team-member__role">{{position}}</span>
243    </div> 
244  </a>
245</div>
246</script>
246<div class="team-grid redesign">
247  <div class="lp-container">
248    
249    <div class="js-sync-flag" style="display: none;"></div>
250    
251    
252    
253    
254    <div class="team-grid__wrapper  two-col   data-container">
255        <div class="team-member__container">
256          <a class="team-member__link" href="/agent/andrew-pitarre">
257            <div class="team-member__image-wrap">
258              <div class="team-member__image">
259                <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/t1xoczsorigqmjvmyecu" 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/t1xoczsorigqmjvmyecu 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/t1xoczsorigqmjvmyecu 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/t1xoczsorigqmjvmyecu 1600w" sizes="(max-width: 768px) 100vw, (max-width: 1000px) 50vw, 33vw" alt="ANDREW PITARRE" class="portrait" loading="lazy">
260              </div>
261              <div class="team-member__hover">
262                <span class="btn btn--primary-dark team-member__btn button-style-1">LEARN MORE</span>
263              </div>
264            </div>
265            <div class="team-member__info">
266              <span class="team-member__name">ANDREW PITARRE</span>
267              <span class="team-member__role">Founder</span>
268            </div> 
269          </a>
270        </div>
271        <div class="team-member__container">
272          <a class="team-member__link" href="/agent/britnee-underwood">
273            <div class="team-member__image-wrap">
274              <div class="team-member__image">
275                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/mpydxixha0rogdx34yb8" alt="BRITNEE UNDERWOOD" class="portrait" loading="lazy">
276              </div>
277              <div class="team-member__hover">
278                <span class="btn btn--primary-dark team-member__btn button-style-1">LEARN MORE</span>
279              </div>
280            </div>
281            <div class="team-member__info">
282              <span class="team-member__name">BRITNEE UNDERWOOD</span>
283              <span class="team-member__role">Realtor®</span>
284            </div> 
285          </a>
286        </div>
287        <div class="team-member__container">
288          <a class="team-member__link" href="/agent/ali-blesse">
289            <div class="team-member__image-wrap">
290              <div class="team-member__image">
291                <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/vpaezdzbpkt7jd4zoxob" 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/vpaezdzbpkt7jd4zoxob 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/vpaezdzbpkt7jd4zoxob 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/vpaezdzbpkt7jd4zoxob 1300w" sizes="(max-width: 768px) 100vw, (max-width: 1000px) 50vw, 33vw" alt="ALI BLESSE" class="portrait" loading="lazy">
292              </div>
293              <div class="team-member__hover">
294                <span class="btn btn--primary-dark team-member__btn button-style-1">LEARN MORE</span>
295              </div>
296            </div>
297            <div class="team-member__info">
298              <span class="team-member__name">ALI BLESSE</span>
299              <span class="team-member__role">Realtor®</span>
300            </div> 
301          </a>
302        </div>
303        <div class="team-member__container">
304          <a class="team-member__link" href="/agent/maricela-yee">
305            <div class="team-member__image-wrap">
306              <div class="team-member__image">
307                <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/ejy1mnwehkuffntddl9a" 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/ejy1mnwehkuffntddl9a 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/ejy1mnwehkuffntddl9a 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ejy1mnwehkuffntddl9a 1300w" sizes="(max-width: 768px) 100vw, (max-width: 1000px) 50vw, 33vw" alt="MARICELA  YEE" class="portrait" loading="lazy">
308              </div>
309              <div class="team-member__hover">
310                <span class="btn btn--primary-dark team-member__btn button-style-1">LEARN MORE</span>
311              </div>
312            </div>
313            <div class="team-member__info">
314              <span class="team-member__name">MARICELA  YEE</span>
315              <span class="team-member__role">Realtor®</span>
316            </div> 
317          </a>
318        </div>
319        <div class="team-member__container">
320          <a class="team-member__link" href="/agent/nicole-pitarre">
321            <div class="team-member__image-wrap">
322              <div class="team-member__image">
323                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/mgtwwmchztfwkejwrbms" alt="Nicole Pitarre" class="portrait" loading="lazy">
324              </div>
325              <div class="team-member__hover">
326                <span class="btn btn--primary-dark team-member__btn button-style-1">LEARN MORE</span>
327              </div>
328            </div>
329            <div class="team-member__info">
330              <span class="team-member__name">Nicole Pitarre</span>
331              <span class="team-member__role">Lead Design / Brand Manager</span>
332            </div> 
333          </a>
334        </div>
335    </div>
336      <div class="lp-pagination pagination-container pagination-style-1"></div>
337    
338    
339    <div class="empty-message js-empty-message">
340      <h3 class="header2 empty-title">No result found</h3>
341    </div>
342  </div>
343</div>
344</section>
345<section  class="image-section is-font-color-light is-background-color-light" id="section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7" data-el-id="3194d39b-ac2d-42a7-9973-4b279eaa51e6">
346    
346<script>
347  (function(){
348    const sectionId = 'section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7'
349    const section = document.querySelector(`#${sectionId}`);
350    var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image');
351
352    if('false' === 'true') {
353      section.classList.add('parallax-enabled');
354      section.style.setProperty('--sectionBackground', sectionBg);
355      section.style.setProperty('background', 'none');
356    }
357  })()
358</script>
358
359<div class="redesign featured-testimonials ">
360	<div class="container">
361		<div class="featured-testimonials__left">
362			<h2 class="serif">Testimonials</h2>
363			
364  			<ul class="slick-links-nav">
365  				<li><span class="link feature prev hyperlink-style-2">previous</span></li>
366  				<li><span class="separator hyperlink-style-2"></span></li>
367  				<li><span class="link feature next hyperlink-style-2">next</span></li>
368  			</ul>
369		</div>
370		<div class="featured-testimonials__right"> 
371			<ul class="featured-testimonials__slider js-slider" data-autoscroll=false data-autoscroll-interval=6>
372				<li>
373					<blockquote>Britnee was an absolute joy to work with and I would recommend her to anyone looking to buy or sell their home. She was extremely reliable and responsive throughout our search for our first home in Oakland.</blockquote>
374						— <cite>BUYER</cite>
375				</li>
376				<li>
377					<blockquote>Ali is very helpful and a wonderful support in this crazy market! She was very responsive to me and organized to get my house prepped and ready for sale. She also showed me a ton of properties in my process of buying a house. She's willing to go the extra mile with a friendly point of view.</blockquote>
378						— <cite>SELLER</cite>
379				</li>
380				<li>
381					<blockquote>Very caring, personable, and professional. Helped us to buy out a long-term tenant via a negotiator, and remodel our rental home extremely tastefully at an affordable price. Then he was able to attract, attract, attract buyers to our rental home. Got top dollar smoothly and comfortably. He is the G.O.A.T. real estate agent. The "Tom Brady" of real estate.</blockquote>
382						— <cite>SELLER</cite>
383				</li>
384			</ul>
385			        <a
386			            href="/testimonials"
387			            
388			            class="btn btn--primary-dark button-style-2"
389			            
390			            
391			            
392			            
393			            
394			            >
395			                    VIEW ALL
396			            </a>
397		</div>
398	</div>
399</div>
400
401</section>
402<section id="section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="21c5a117-61cb-4f43-8635-2da86e3ae7dd">
403  
404<div class="boxed-text lp-vertical-paddings redesign">
405  <div class="lp-container">
406    
407    <div class="boxed-text__description"><p style="text-align: center;"><span style="font-weight: 400;"><img src="https://media-production.lp-cdn.com/media/21c06241-4222-48a2-b42c-e2911defa4cb" alt width="581" height="327"></span></p>
408<p style="text-align: center;"><span style="font-weight: 400;">We take it personally, realizing that the real estate transaction represents something different for each client and&nbsp; that such a large transaction usually leads to a transition in lifestyle for many.&nbsp; Whether selling the long time residence leading into retirement, developing / enhancing the real estate to highest and best use upon sale, completing a 1031 exchange to grow a real estate portfolio, purchasing that very first home, or right sizing the home to meet current your lifestyle needs, we are there to draw upon our extensive experience to help that transition be the best it can possibly be.&nbsp; In addition to unwavering sage advice, when needed we have assembled a dedicated Construction Team and constellation of Consultants and Agents to help each client through their transaction / transition and maximize the potential of their real estate investments.</span></p>
409<p><br style="font-weight: 400;"><br style="font-weight: 400;"></p></div>
410  </div>
411</div>
412</section>
413<section  class="image-section is-font-color-light is-background-color-light" id="section-64de7b13-9930-4519-a89c-b80f37d851fa" data-el-id="e7db0aa2-a33d-4b1c-bd9f-41337c1c9384">
414    <div class="lp-vertical-paddings redesign">
415  <div class="lp-container cta-block cta-block--Center-aligned">
416    <div class="text-block">
417        <h2 class="lp-h2"><p>Find Your Dream Home</p></h2>
418    </div>
419    
420            <a
421                href="/home-search/listings?search_type&#x3D;envelope&amp;south&#x3D;37.77581722264004&amp;west&#x3D;-122.2829185307129&amp;north&#x3D;37.87805176810842&amp;east&#x3D;-122.13563306928712&amp;property_type%5B%5D&#x3D;Co-op&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Commercial&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Manufactured&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Townhouse&amp;property_type%5B%5D&#x3D;Other&amp;property_type%5B%5D&#x3D;Co-op&amp;property_type%5B%5D&#x3D;Condo&amp;property_type%5B%5D&#x3D;Commercial&amp;property_type%5B%5D&#x3D;Land&amp;property_type%5B%5D&#x3D;Multi-family&amp;property_type%5B%5D&#x3D;Manufactured&amp;property_type%5B%5D&#x3D;Residential&amp;property_type%5B%5D&#x3D;Townhouse&amp;property_type%5B%5D&#x3D;Other&amp;status%5B%5D&#x3D;Active&amp;status_days%5BActive%5D&#x3D;36500&amp;status_days%5BUnder+Contract%5D&#x3D;36500&amp;status_days%5BPending%5D&#x3D;36500&amp;status_days%5BSold%5D&#x3D;180&amp;mailer_schedule&#x3D;instant&amp;order&#x3D;status_modified_at%3Adesc&amp;page&#x3D;1"
422                
423                class="lp-btn lp-btn--dark lp-btn--big lp-btn--outline lp-btn--mob-full-width button-style-2"
424                
425                
426                
427                
428                
429                >
430                        Browse Homes
431                </a>
432  </div>
433</div>
434</section>
435<section id="section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="e6b1ae9f-5b8d-4ac5-a23f-bfb55ef91c3c">
436  
436<script>
437  (function(){
438    const sectionId = 'section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a'
439    const section = document.querySelector(`#${sectionId}`);
440    var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image');
441
442    if('false' === 'true') {
443      section.classList.add('parallax-enabled');
444      section.style.setProperty('--sectionBackground', sectionBg);
445      section.style.setProperty('background', 'none');
446    }
447  })()
448</script>
448
449<div class="redesign work-with-us ">
450	<div class="container">
451			<h2 class="serif">Work With Us</h2>
452			<div class="description">We pride ourselves in providing personalized solutions that bring our clients closer to their dream properties and enhance their long-term wealth. Contact us today to find out how we can be of assistance to you!</div>
453		<div class="btn-container">
454              <a
455                  role="button"
456                  data-type="CONTACT_US"
457                  class="btn btn--primary-light button-style-1"
458                  
459                  
460                  
461                  
462                  
463                  >
464                          Contact Us
465                  </a>
466    </div>
467	</div>
468</div> 
469</section>
470<section id="section-91779466-3754-443e-816b-903fe9150afb"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="09e98f83-51e3-4837-80a0-019e211aba4b">
471<div class="redesign featured-properties-section " data-auto-scroll=false data-autoplay-speed=3000>
472	<div class="container">
473		<div class="featured-properties-header">
474			<h2 class="serif">Notable Transactions</h2>
475			
476			<ul class="slick-links-nav">
477				<li><span class="link link--white feature prev">previous</span></li>
478				<li><span class="link link--white feature next">next</span> <span class="spacer"></span></li>
479			</ul>
480		</div>
481		<ul class="featured-properties carousel-container">
482				<li class="featured-properties__item-cover">
483					<div class="featured-properties__item feature">
484						<a class="featured-properties__item-info" href="/properties/345-51st-st-oakland-ca-94609-41025648">
485							<div class="featured-properties__img">
486								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/8853c562-273b-4c58-a71b-9ef5b2c3920c/41025648/-1880079800324666080.jpg" alt="" loading="lazy">
487							</div>
488							<span class="featured-properties__label">Inactive</span>
489							
490							<div class="featured-properties__text">
491								<h4 class="serif">345 51st St</h4>
492								<p>
493										345 51st St, Oakland, CA 94609
494								</p>
495
496								<p>
497									
498										0.32 Acres
499								</p>
500
501								<h5>
502										$2,695,000
503								</h5>
504							</div>
505						</a>
506						<div class="featured-properties__hover">
507							<a href="/properties/345-51st-st-oakland-ca-94609-41025648"></a>
508							<div class="featured-properties__buttons">
509								<a href="/properties/345-51st-st-oakland-ca-94609-41025648" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
510							</div>
511						</div>
512					</div>
513				</li>
514				<li class="featured-properties__item-cover">
515					<div class="featured-properties__item feature">
516						<a class="featured-properties__item-info" href="/properties/4523-howe-st-oakland-ca-94611-40981906">
517							<div class="featured-properties__img">
518								<img src="https://dq1niho2427i9.cloudfront.net/8853c562-273b-4c58-a71b-9ef5b2c3920c/-2061294815.jpg" alt="" loading="lazy">
519							</div>
520							<span class="featured-properties__label">Inactive</span>
521							
522							<div class="featured-properties__text">
523								<h4 class="serif">4523 Howe St</h4>
524								<p>
525										4523 Howe St, Oakland, CA 94611
526								</p>
527
528								<p>
529										4 BD | 
530									3.5 BA
531										 | 3,226 Sq.Ft.
532								</p>
533
534								<h5>
535										$2,675,000
536								</h5>
537							</div>
538						</a>
539						<div class="featured-properties__hover">
540							<a href="/properties/4523-howe-st-oakland-ca-94611-40981906"></a>
541							<div class="featured-properties__buttons">
542								<a href="/properties/4523-howe-st-oakland-ca-94611-40981906" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
543							</div>
544						</div>
545					</div>
546				</li>
547				<li class="featured-properties__item-cover">
548					<div class="featured-properties__item feature">
549						<a class="featured-properties__item-info" href="/properties/1720-carleton-street-berkeley-ca-94703-41065984">
550							<div class="featured-properties__img">
551								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/8853c562-273b-4c58-a71b-9ef5b2c3920c/41065984/6756626086972888150.jpg" alt="" loading="lazy">
552							</div>
553							<span class="featured-properties__label">Sold</span>
554							
555							<div class="featured-properties__text">
556								<h4 class="serif">1720 Carleton Street</h4>
557								<p>
558										1720 Carleton Street, Berkeley, CA 94703
559								</p>
560
561								<p>
562										4 BD | 
563									3 BA
564										 | 2,343 Sq.Ft.
565								</p>
566
567								<h5>
568										$2,400,000
569								</h5>
570							</div>
571						</a>
572						<div class="featured-properties__hover">
573							<a href="/properties/1720-carleton-street-berkeley-ca-94703-41065984"></a>
574							<div class="featured-properties__buttons">
575								<a href="/properties/1720-carleton-street-berkeley-ca-94703-41065984" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
576							</div>
577						</div>
578					</div>
579				</li>
580				<li class="featured-properties__item-cover">
581					<div class="featured-properties__item feature">
582						<a class="featured-properties__item-info" href="/properties/8210-skyline-blvd-oakland-ca-94611-41127304">
583							<div class="featured-properties__img">
584								<img src="https://dlajgvw9htjpb.cloudfront.net/cms/8853c562-273b-4c58-a71b-9ef5b2c3920c/41127304/4545268907407013756.jpg" alt="" loading="lazy">
585							</div>
586							<span class="featured-properties__label">Sold</span>
587							
588							<div class="featured-properties__text">
589								<h4 class="serif">8210 Skyline Blvd</h4>
590								<p>
591										8210 Skyline Blvd, Oakland, CA 94611
592								</p>
593
594								<p>
595										4 BD | 
596									3 BA
597										 | 2,690 Sq.Ft.
598								</p>
599
600								<h5>
601										$2,305,000
602								</h5>
603							</div>
604						</a>
605						<div class="featured-properties__hover">
606							<a href="/properties/8210-skyline-blvd-oakland-ca-94611-41127304"></a>
607							<div class="featured-properties__buttons">
608								<a href="/properties/8210-skyline-blvd-oakland-ca-94611-41127304" class="btn btn--primary-dark button-style-1">VIEW PROPERTY</a>
609							</div>
610						</div>
611					</div>
612				</li>
613		</ul>
614  			<div class="featured-properties-button-holder">        <a
615            href="/properties"
616            
617            class="btn btn--primary-light button-style-1"
618            
619            
620            
621            
622            
623            >
624                    VIEW ALL
625            </a>
626</div>
627	</div>
628</div>
629
630</section>
631
632        <div id="modals" class="modals"></div>
633        <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="874a9373-949d-4275-b72f-04c2a6ec373b">
634            <div class="footer redesign  no_newsletter "> 
635    <div class="container">
636        <h3>East Bay Home Transitions</h3>
637        <div class="info-wrap">
638            <div class="info-wrap-contact agent_box">
639                <div class="info-wrap-contact_zone type_user">
640                    <h4 class="serif">GET IN TOUCH</h4>
641                    <div class="info-wrap-contact_cell">
642                        <i>
643                            <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg">
644                                <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" />
645                            </svg>
646                        </i>
647                        <p class="contact_title">Email</p>
648                        <a href="/cdn-cgi/l/email-protection#cfaea1abbdaab8e1bfa6bbaebdbdaa8faca0a2bfaebcbce1aca0a2" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1"><span class="__cf_email__" data-cfemail="d5b4bbb1a7b0a2fba5bca1b4a7a7b095b6bab8a5b4a6a6fbb6bab8">[email&#160;protected]</span></a>
649                    </div>
650                    <div class="info-wrap-contact_cell">
651                        <i><svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg">
652                        <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.48
65215 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" />
653                        </svg></i>
654                        <p class="contact_title">Phone Number</p>
655                        <a href="tel:4153429950" class="lp-link info-wrap-contact_link grey-text hyperlink-style-1">(415) 342-9950</a>
656                    </div>
657                </div>
658                <div class="info-wrap-contact_zone">
659                    <div class="info-wrap-contact_cell">
660                        <i>
661                            <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg">
662                                <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" />
663                                <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" />
664                                <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" />
665                            </svg>
666                        </i>
667                        <p class="info-wrap-contact_title">Address</p>
668                        <p class="info-wrap-contact_link grey-text"><p>1900 Mountain Blvd<br />Oakland, CA, 94611</p></p>
669                    </div>
670                </div>
671            </div>
672        </div>
673        <div class="text_footer first_text_footer">
674            <div class="images_box">
675                <div class="img_size">
676                    <img src="https://media-production.lp-cdn.com/media/e0551e3b-ebd4-452b-8623-bebd3e7c336a" alt="Footer Image">
677                </div>
678            </div>
679            <div class="luxury-text">
680                <p style="font-size: 14px;">Andrew Pitarre | CA DRE# 01867911</p>
681<p>&nbsp;</p>
682<p style="font-size: 12px;">East Bay Home Transitions is a team of real estate agents licensed by the state of California affiliated with Compass. <a class="link" style="font-weight: 400;" href="http://compass.com" target="_blank" rel="noopener">Compass</a> is a licensed real estate broker licensed by the state of California and abides by equal housing opportunity laws. All material presented herein 
682is 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: 20px; width: 100px; height: auto;" src="https://media-production.lp-cdn.com/media/17e255b0-0bb8-4e44-ba24-7ee57e64e284"></p>
683            </div>
684        </div>
685        <div class="text_footer second_text_footer">
686            <div class="text_content_wrap">
687                <div>
688                    <div>&nbsp;</div>
689<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style>
690                </div>
691            </div>
692        </div>
693        <div class="info-privacy">
694          <div class="form-row info-privacy__row">
695
696            <div class="form-col form-col--powered powered-box">
697                <div class="powered_zone">
698                    Powered by <a href="https://www.luxurypresence.com/" target="_blank" class="lp-link grey-text luxury-link underlined hyperlink-style-1">Luxury Presence</a>
699                </div>
700            </div>
701
702            <div class="form-col form-col--copyright">
703              <div class="copy_zone">
704                <span class="copy_words">Copyright &copy;</span> <span class="auto-year-update">2026</span>
705                | <a href="/terms-and-conditions" class="lp-link grey-text hyperlink-style-1">Privacy Policy</a>
706
707              </div>
708            </div>
709
710            <div class="form-col form-col--socials">
711                <ul class="lp-socials social_icons-style-1 socials socials--grey socials_zone">
712                
713                        <li>
714                          <a
715                            href="https://www.facebook.com/EBHomeTransitions"
716                            class="lp-socials__link socials__item socials__link wow fadeInUp"
717                            data-wow-delay="0s"
718                            target="_blank"
719                            aria-label="FACEBOOK"
720                          >
721                              <span class="lp-i lp-i--facebook" aria-hidden="true"></span>
722                          </a>
723                        </li>
724                        <li>
725                          <a
726                            href="https://www.instagram.com/EB_hometransitions/"
727                            class="lp-socials__link socials__item socials__link wow fadeInUp"
728                            data-wow-delay="0.1s"
729                            target="_blank"
730                            aria-label="INSTAGRAM"
731                          >
732                              <span class="lp-i lp-i--instagram" aria-hidden="true"></span>
733                          </a>
734                        </li>
735                        <li>
736                          <a
737                            href="https://www.twitter.com/EBhometransit10"
738                            class="lp-socials__link socials__item socials__link wow fadeInUp"
739                            data-wow-delay="0.2s"
740                            target="_blank"
741                            aria-label="TWITTER"
742                          >
743                              <span class="lp-i lp-i--twitter" aria-hidden="true"></span>
744                          </a>
745                        </li>
746                        <li>
747                          <a
748                            href="https://www.compass.com/agents/andrew-pitarre/"
749                            class="lp-socials__link socials__item socials__link wow fadeInUp"
750                            data-wow-delay="0.3s"
751                            target="_blank"
752                            aria-label="BROKERAGE"
753                          >
754                            <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>
755                          </a>
756                        </li>
757                        <li>
758                          <a
759                            href="https://www.linkedin.com/in/andrew-pitarre-a4099a69/"
760                            class="lp-socials__link socials__item socials__link wow fadeInUp"
761                            data-wow-delay="0.4s"
762                            target="_blank"
763                            aria-label="LINKEDIN"
764                          >
765                              <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
766                          </a>
767                        </li>
768                        <li>
769                          <a
770                            href="https://www.yelp.com/biz/andrew-pitarre-compass-oakland-2"
771                            class="lp-socials__link socials__item socials__link wow fadeInUp"
772                            data-wow-delay="0.5s"
773                            target="_blank"
774                            aria-label="YELP"
775                          >
776                              <span class="lp-i lp-i--yelp" aria-hidden="true"></span>
777                          </a>
778                        </li>
779                        <li>
780                          <a
781                            href="https://www.realtor.com/realestateagents/568035527e54f701001eec69"
782                            class="lp-socials__link socials__item socials__link wow fadeInUp"
783                            data-wow-delay="0.6s"
784                            target="_blank"
785                            aria-label="PODCAST"
786                          >
787                              <span class="lp-i lp-i--podcast" aria-hidden="true"></span>
788                          </a>
789                        </li>
790                  </ul>            </div>
791          </div>
792        </div>
793    </div>
794</div>
795
796        </footer>
797
798        <div id="modal-global-contact-us" class="modal "
799            data-el-id=""
800            style="background-color: ;"
801            >
802            <div class="modal-content">
803                <div class="contact-form redesign " style="background-image: url('https://media-production.lp-cdn.com/media/ba3e8444-3db7-4ff2-8398-eabc6e8f4f59')">
804          <div class="container">
805              <div class="section-details" style="--colorTxt: #ffffff">
806                  <h2>Contact Details</h2>
807                  
808                  <div class="info-zone">
809        
810                          <div class="info-zone_contact type_user">
811                                <h4 class="serif"> </h4>
812                                <div class="info-zone_contact_cell">
813                                        <i>
814                                            <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg">
815                                                <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"/>
816                                            </svg>
817                                        </i>
818                                    <p class="contact_title">Phone</p>
819                                    <a href="tel:(415) 342-9950" class="lp-link info-zone_contact_link link hyperlink-style-2">(415) 342-9950</a>
820                                </div>
821                                <div class="info-zone_contact_cell">
822                                        <i>
823                                            <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg">
824                                                <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"/>
825                                            </svg>
826                                        </i>
827                                    <p class="contact_title">Email</p>
828                                    <a href="/cdn-cgi/l/email-protection#99f8f7fdebfceeb7e9f0edf8ebebfcd9faf6f4e9f8eaeab7faf6f4" class="lp-link info-zone_contact_link link hyperlink-style-2"><span class="__cf_email__" data-cfemail="71101f150314065f0118051003031431121e1c011002025f121e1c">[email&#160;protected]</span></a>
829                                </div>
830                          </div>
831                          <div class="info-zone_contact">
832                                <div class="info-zone_contact_cell">
833                                        <i>
834                                            <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg">
835                                                <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 3
8350.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"/>
836                                                <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"/>
837                                                <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"/>
838                                            </svg>
839                                        </i>
840                                    <p class="info-wrap-contact_title">Address</p>
841                                    <p class="info-zone_contact_link pre-line">1900 Mountain Blvd
842        Oakland, CA, 94611
843        
844        Andrew Pitarre | CA DRE# 01867911</p>
845                                </div>
846                          </div>
847                        <div class="info-zone_contact">
848                            <div class="info-zone_contact_cell">
849                                <p class="pre-line"><div></div><style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></p>
850                            </div>
851                        </div>
852                        <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone footer__contact-column">
853                        
854                                <li>
855                                  <a
856                                    href="https://www.facebook.com/EBHomeTransitions"
857                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
858                                    data-wow-delay="0s"
859                                    target="_blank"
860                                    aria-label="FACEBOOK"
861                                  >
862                                      <span class="lp-i lp-i--facebook" aria-hidden="true"></span>
863                                  </a>
864                                </li>
865                                <li>
866                                  <a
867                                    href="https://www.instagram.com/EB_hometransitions/"
868                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
869                                    data-wow-delay="0.1s"
870                                    target="_blank"
871                                    aria-label="INSTAGRAM"
872                                  >
873                                      <span class="lp-i lp-i--instagram" aria-hidden="true"></span>
874                                  </a>
875                                </li>
876                                <li>
877                                  <a
878                                    href="https://twitter.com/EBhometransit10"
879                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
880                                    data-wow-delay="0.2s"
881                                    target="_blank"
882                                    aria-label="TWITTER"
883                                  >
884                                      <span class="lp-i lp-i--twitter" aria-hidden="true"></span>
885                                  </a>
886                                </li>
887                                <li>
888                                  <a
889                                    href="https://www.compass.com/agents/andrew-pitarre/"
890                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
891                                    data-wow-delay="0.3s"
892                                    target="_blank"
893                                    aria-label="BROKERAGE"
894                                  >
895                                    <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>
896                                  </a>
897                                </li>
898                                <li>
899                                  <a
900                                    href="https://www.linkedin.com/in/andrew-pitarre-a4099a69/"
901                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
902                                    data-wow-delay="0.4s"
903                                    target="_blank"
904                                    aria-label="LINKEDIN"
905                                  >
906                                      <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
907                                  </a>
908                                </li>
909                                <li>
910                                  <a
911                                    href="https://www.yelp.com/biz/andrew-pitarre-compass-oakland-2"
912                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
913                                    data-wow-delay="0.5s"
914                                    target="_blank"
915                                    aria-label="YELP"
916                                  >
917                                      <span class="lp-i lp-i--yelp" aria-hidden="true"></span>
918                                  </a>
919                                </li>
920                                <li>
921                                  <a
922                                    href="https://www.realtor.com/realestateagents/568035527e54f701001eec69"
923                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
924                                    data-wow-delay="0.6s"
925                                    target="_blank"
926                                    aria-label="PODCAST"
927                                  >
928                                      <span class="lp-i lp-i--podcast" aria-hidden="true"></span>
929                                  </a>
930                                </li>
931                          </ul>          </div>
932              </div>
933              <div class="section-message">
934                  <form data-type="contact-form">
935                      <h2>Submit a Message</h2>
936                       <div class="h-pot">
937                        <label for="-middleName">Middle Name</label>
938                        <input id="-middleName" name="middleName" value="" autocomplete="off" tabindex="-1">
939                      </div>
940        
941        
942                      <div class="lp-input-group">
943                          <label for="prod-name" class="lp-label">Name</label>
944                          <input id="prod-name" name="name" value="" required="" class="lp-input lp-input--light">
945                      </div>
946                      <div class="lp-input-group">
947                          <label for="prod-email" class="lp-label">Email</label>
948                          <input id="prod-email" type="email" name="email" value="" required="" class="lp-input lp-input--light">
949                      </div>
950                      <div class="lp-input-group">
951                          <label for="prod-phone" class="lp-label">Phone</label>
952                          <input id="prod-phone" type="tel" name="phoneNumber" value="" required="" class="lp-in
952put lp-input--light">
953                      </div>
954                      <div class="lp-input-group m16">
955                          <label for="prod-message" class="lp-label">Message</label>
956                          <textarea id="prod-message" name="message" value="" required="" class="lp-input"></textarea>
957                      </div>
958        
959                      <div class="lp-disclaimer">  <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label>
960          <label class='lp-tcr-content'>
961            <span class='lp-tcr-checkbox'>
962              <input
963                type='checkbox'
964                id='-termsAccepted'
965                name='termsAccepted'
966                oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
967                oninput="this.setCustomValidity('')"
968                required
969              /></span>
970            <span class='lp-tcr-message'>
971              
972                I agree to be contacted by
973                Andrew Pitarre
974                via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance.
975                You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary.
976                <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>.
977            </span>
978          </label>
979        
980        </div>
981                      
982                      <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" />
983                      
984                      
985                      <button type="submit" class="submitButton lp-btn button-style-2">
986                          <span class="label-initial">Submit</span>
987                          <span class="label-loading">Submitting</span>
988                          <span class="label-success">Submitted</span>
989                          <span class="submit-icon lp-i lp-i--circle-notch lp-i--spin"></span>
990                      </button>
991                      <p class="success-message success hide">
992                        Message sent successfully!
993                      </p>
994                  </form>
995                  
996                  
997              </div>
998          </div>
999        </div>
1000        
1001            </div>
1002            <button class="close lp-close" type="button" aria-label="close modal">
1003                <span class="lp-close-icon" aria-hidden="true"></span>
1004            </button>
1005        </div>
1006        <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;">
1007          <style>
1008            #qualifying-questions-modal .custom-select-toggle {
1009              border: 1px solid #848484;
1010              border-radius: 8px;
1011              padding: 12px 16px;
1012            }
1013        
1014            #qualifying-questions-modal .custom-select-toggle.is-placeholder {
1015              color: #848484;
1016            }
1017        
1018            #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder {
1019              color: #848484;
1020              opacity: 1;
1021            }
1022        
1023            #qualifying-questions-modal .disclaimer-more {
1024              display: none;
1025            }
1026        
1027            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more {
1028              display: inline;
1029            }
1030        
1031            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis {
1032              display: none;
1033            }
1034          </style>
vendor: 119 bytes, lines 1034-1035
1034
1035          <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1035<script>
1036            function toggleDisclaimerQualifyingQuestionsModal() {
1037              const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text');
1038              const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer');
1039        
1040              if (disclaimerText.classList.contains('collapsed')) {
1041                disclaimerText.classList.remove('collapsed');
1042                toggleButton.textContent = 'Read less';
1043                toggleButton.setAttribute('aria-expanded', 'true');
1044              } else {
1045                disclaimerText.classList.add('collapsed');
1046                toggleButton.textContent = 'Read more';
1047                toggleButton.setAttribute('aria-expanded', 'false');
1048              }
1049            }
1050          </script>
1050
1051          <div style="max-width: 400px; width: 95%; margin: 0 auto;">
1052            <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;">
1053              <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;">
1054                <span aria-hidden="true">&times;</span>
1055              </button>
1056              <div style="padding: 40px 30px 32px;">
1057                <div style="text-align: left; margin-bottom: 32px;">
1058                  <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;">
1059                    Thanks, please provide more information to help serve you
1060                  </h2>
1061                </div>
1062                <form id="qualifying-questions-modal-form" data-type="contact-form">
1063                  <input type="hidden" name="source" value="PROFILE_UPDATE" />
1064                  <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" />
1065                  <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" />
1066                  <label for="qualifying-questions-modal-email" style="display:none;">
1067                    Email
1068                  </label>
1069                  <label for="qualifying-questions-modal-triggerSource" style="display:none;">
1070                    Trigger Source
1071                  </label>
1072        
1073                  <div style="margin-bottom: 20px;">
1074                    <label for="qualifying-questions-modal-phoneNumber" style="display:none;">
1075                      Phone Number
1076                    </label>
1077                    <input
1078                      type="tel"
1079                      id="qualifying-questions-modal-phoneNumber"
1080                      name="phoneNumber"
1081                      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;"
1082                      pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$"
1083                      required
1084                      placeholder="Phone"
1085                      aria-label="Phone Number"
1086                      inputmode="tel"
1087                      autocomplete="tel"
1088                      onfocus="this.style.borderColor='black';"
1089                      onblur="this.style.borderColor='#848484';"
1090                    />
1091                  </div>
1092        
1093                  <div style="margin-bottom: 20px;">
1094                    <label for="qualifying-questions-modal-interest" style="display:none;">
1095                      Interest
1096                    </label>
1097                    <select
1098                      id="qualifying-questions-modal-interest"
1099                      name="interest"
1100                      required
1101                      data-label="Interest"
1102                      aria-label="Interest"
1103                      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;"
1104                      onfocus="this.style.borderColor='black'; this.style.color='black';"
1105                      onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';"
1106                    >
1107                      <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option>
1108                      <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option>
1109                      <option value="Selling" style="background: #fff; color: black;">Selling</option>
1110                      <option value="Buying" style="background: #fff; color: black;">Buying</option>
1111                      <option value="Renting" style="background: #fff; color: black;">Renting</option>
1112                      <option value="Other" style="background: #fff; color: black;">Other</option>
1113                    </select>
1114                  </div>
1115        
1116                  <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;">
1117                    <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label>
1118                    <label class='lp-tcr-content'>
1119                      <span class='lp-tcr-checkbox'>
1120                        <input
1121                          type='checkbox'
1122                          id='qualifying-questions-modal-qualifying-questions-termsAccepted'
1123                          name='termsAccepted'
1124                          aria-describedby='qualifying-questions-modal-disclaimer-text'
1125                          oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
1126                          oninput="this.setCustomValidity('')"
1127                          required
1128                        /></span>
1129                      <span class='lp-tcr-message'>
1130                        <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;">
1131                          
1132                            I agree to be contacted by
1133                            <strong>Andrew Pitarre</strong>
1134                            via call, email, and text <span class="disclaimer-more">for real estate services. 
1135                            To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 
1136                            You can also click the unsubscribe link in the emails. 
1137                            Message and data rates may apply. Message frequency may vary.</span>
1138                            <span class="disclaimer-ellipsis">...</span>
1139                            <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>.
1140                        </div>
1141                        <button
1142                          id="qualifying-questions-modal-toggle-disclaimer"
1143                          type="button"
1144                          style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;"
1145                          aria-expanded="false"
1146                          onclick="toggleDisclaimerQualifyingQuestionsModal()"
1147                        >
1148                          Read more
1149                        </button>
1150                      </span>
1151                    </label>
1152                  </div>
1153        
1154                  <div>
1155                    <button
1156                      type="submit"
1157                      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;"
1158                      onmouseover="this.style.background='transparent'; this.style.color='black';"
1159                      onmouseout="this.style.background='black'; this.style.color='white';"
1160                    >
1161                      Submit
1162                    </button>
1163                  </div>
1164                </form>
1165              </div>
1166            </div>
1167          </div>
1168        </div>
1169
1170    
1170<script>
1171        (function() {
1172        var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy"));
1173
1174        if ("IntersectionObserver" in window && lazyVideos.length > 0) {
1175            var lazyVideoObserver = new IntersectionObserver(function(entries, observer) {
1176            entries.forEach(function(video) {
1177                if (video.isIntersecting) {
1178                for (var source in video.target.children) {
1179                    var videoSource = video.target.children[source];
1180                    if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") {
1181                    videoSource.src = videoSource.dataset.src;
1182                    }
1183                }
1184
1185                video.target.load();
1186                video.target.classList.remove("lazy");
1187                lazyVideoObserver.unobserve(video.target);
1188                }
1189            });
1190            });
1191
1192            lazyVideos.forEach(function(lazyVideo) {
1193                lazyVideoObserver.observe(lazyVideo);
1194            });
1195        }
1196        })();
1197    </script>
1197
1198
1199        <!-- Global site tag (gtag.js) - Google Analytics -->
1200        
1200<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1200
1201
1202            <!-- Google Tag Manager -->
1203            
1203<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
1204                new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
1205                j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src=
1206                'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
1207            })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1207
1208            <!-- End Google Tag Manager -->
1209
1210
1211        <!-- LP Tracker (divolte.js) - LP Divolte -->
1212            
1212<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1212
1213        <!-- LP Tracker (eventBus) - LP EventBus -->
1214            
1214<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1214
1215
1216    
1216<script>
1217        window.dataLayer = window.dataLayer || [];
1218        document.sendGoogleTagManagerEvent = function() {
1219            /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */
1220            if (window.navigator.globalPrivacyControl) {
1221                return;
1222            }
1223
1224            dataLayer.push(arguments);
1225        }
1226
1227        document.sendGoogleTagManagerEvent('js', new Date());
1228            document.sendGoogleTagManagerEvent('config', 'UA-244166381-22', { page: location.pathname, location: location.href });
1229            document.sendGoogleTagManagerEvent('config', 'G-PKK5YXDC1W', { page: location.pathname, location: location.href });
1230        document.sendGoogleAnalyticsEvent = function(googleEvent) {
1231            document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, {
1232                event_category: googleEvent.eventCategory,
1233                event_label: googleEvent.eventLabel,
1234                value: googleEvent.eventValue,
1235                page: googleEvent.page,
1236                location: googleEvent.location
1237            })
1238        };
1239
1240        document.addEventListener("DOMContentLoaded", function() {
1241            (function() {
1242                //If the page has an element with ID of auto-year-update the element will be populated with the current year.
1243                var date = new Date();
1244                var elements = document.getElementsByClassName('auto-year-update');
1245                var i;
1246                for (i = 0; i < elements.length; i++) {
1247                    elements[i].innerText = date.getFullYear();
1248                }
1249            })();
1250            if (window.divolteLp) {
1251                window.divolteLp('sendLpPageView', {});
1252            }
1253            if (window.eventBusLp) {
1254                window.eventBusLp('sendLpPageView', {});
1255            }
1256        });
1257    </script>
1257
1258
1259
1260    
1260<script>
1261    // Function to dynamically load a script
1262    function loadScript(url, callback) {
1263        var script = document.createElement('script');
1264        script.type = 'text/javascript';
1265        script.src = url;
1266        script.defer = true;
1267        script.async = true;
1268        script.onload = callback;
1269        document.head.appendChild(script);
1270    }
1271
1272    // Function to dynamically load CSS file
1273    function loadCSS(url) {
1274        var link = document.createElement("link");
1275        link.rel = "stylesheet";
1276        link.href = url;
1277        document.head.appendChild(link);
1278    }
1279
1280    // Global methods / variables that can be accessed by element js
1281    window.luxuryPresence = {
1282        libs: {
1283            loadJs: loadScript,
1284            loadCss: loadCSS,
1285            jsLibsMap: {
1286                paroller: {
1287                    jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js',
1288                    isLoaded: false,
1289                },
1290                ionRangeSlider: {
1291                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js',
1292                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css',
1293                    isLoaded: false,
1294                    requires: ['jquery'],
1295                },
1296                splide: {
1297                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js',
1298                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css',
1299                    isLoaded: false,
1300                },
1301                wow: {
1302                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js',
1303                    isLoaded: false,
1304                },
1305                jquery: {
1306                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js',
1307                    isLoaded: false,
1308                },
1309                slick: {
1310                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js',
1311                    isLoaded: false,
1312                    requires: ['jquery'],
1313                },
1314                libphonenumber: {
1315                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js',
1316                    isLoaded: false,
1317                },
1318            },
1319        },
1320    };
1321    </script>
1321
1322    
1322<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>
1322
1323    
1323<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1323
1324    
1324<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1324
1325    
1325<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1325
1326    
1326<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>
1326
1327    
1327<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>
1327
1328    
1328<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>
1328
1329
1330    <!-- GOOGLE TRANSLATE SCRIPT -->
1331    
1331<script>
1332        function googleTranslateElementInit() {
1333            // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'`
1334            // Language codes can be taken from here https://cloud.google.com/translate/docs/languages
1335            const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt';
1336            document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){
1337                translate.innerText = '';
1338                new google.translate.TranslateElement({
1339                    pageLanguage: 'en',
1340                    layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
1341                    includedLanguages: window.customLanguages || DEFAULT_LANGUAGES,
1342                }, translate);
1343            });
1344        }
1345    </script>
1345
1346    
1346<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1346
1347            
1347<script defer src="https://accounts.google.com/gsi/intermediate"></script>
1347
1348
1349    <!-- GOOGLE TRANSLATE SCRIPT END-->
1350    
1350<script>
1351
1352        // UI helpers
1353        (function () {
1354
1355            function getSideMenu () {
1356                return document.querySelector('body > div.sidemenu');
1357            }
1358
1359            function sideMenuHide (instant) {
1360                var sideMenu = getSideMenu();
1361                if (!sideMenu || !sideMenu.classList.contains('visible')) {
1362                  return;
1363                }
1364                sideMenu.classList.remove('visible');
1365                sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } }));
1366                window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} }));
1367            }
1368
1369            function sideMenuShow () {
1370                var sideMenu = getSideMenu();
1371                if (!sideMenu || sideMenu.classList.contains('visible')) {
1372                  return;
1373                }
1374                sideMenu.classList.add('visible');
1375                sideMenu.dispatchEvent(new Event('lpui-show'));
1376                window.dispatchEvent(new Event('lpui-sidemenu-show'));
1377            }
1378
1379            function sideMenuToggle () {
1380                var sideMenu = getSideMenu();
1381                if (!sideMenu) {
1382                  return;
1383                }
1384                var isSideMenuVisible = sideMenu.classList.contains('visible');
1385                if (isSideMenuVisible) {
1386                    sideMenuHide();
1387                } else {
1388                    sideMenuShow();
1389                }
1390            }
1391
1392            var scrollLockRequests = {};
1393            window.__debug_scrollLockRequests = scrollLockRequests;
1394            var hideScrollStyles = ''+
1395                    'body {'+
1396                    'overflow: hidden;' +
1397                    '}';
1398            var hideScrollId = 'hide-body-scroll-style';
1399
1400            function scrollLock () {
1401                var style = document.createElement('style');
1402                style.id = hideScrollId;
1403                style.textContent = hideScrollStyles;
1404                document.head.appendChild(style);
1405                window.dispatchEvent(new Event('lpui-scroll-locked'));
1406            }
1407
1408            function scrollUnlock () {
1409                document.getElementById(hideScrollId)?.remove();
1410                window.dispatchEvent(new Event('lpui-scroll-unlocked'));
1411            }
1412
1413            function requestScrollLock (lockId) {
1414                var wasLocked = Object.keys(scrollLockRequests).length > 0;
1415                scrollLockRequests[lockId || '__anonymous_lock'] = true;
1416                if (!wasLocked) {
1417                    scrollLock();
1418                }
1419            }
1420
1421            function releaseScrollLock (lockId) {
1422                if (lockId) {
1423                    delete scrollLockRequests[lockId];
1424                    if (!Object.keys(scrollLockRequests).length) {
1425                        scrollUnlock();
1426                    }
1427                } else {
1428                    scrollLockRequests = {};
1429                    window.__debug_scrollLockRequests = scrollLockRequests;
1430                    scrollUnlock();
1431                }
1432            }
1433
1434            function showModal (modalId, options) {
1435                var modal = document.getElementById(modalId);
1436                if (!modal) {
1437                    return;
1438                }
1439
1440                if (!modal.classList.contains('visible')) {
1441                    modal.classList.add('visible');
1442                    if (options && options.scrollLock) {
1443                        window.lpUI.requestScrollLock(modalId);
1444                    }
1445                    modal.dispatchEvent(new Event('lpui-show'));
1446                    window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } }));
1447                }
1448
1449                const visibleModals = document.querySelectorAll('.modal.visible');
1450
1451                if (visibleModals.length > 1) {
1452
1453                    const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => {
1454                        const zIndex = window.getComputedStyle(modal).zIndex;
1455                        const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0;
1456                        return Math.max(maxZIndex, parsedZIndex);
1457                    }, 0);
1458
1459                    modal.style.zIndex = maxZIndex + 1;
1460                }
1461
1462            }
1463
1464            function _hideModal (modalEl) {
1465                if (!modalEl) {
1466                    return;
1467                }
1468                if (!modalEl.classList.contains('visible')) {
1469                    return;
1470                }
1471                modalEl.classList.remove('visible');
1472                modalEl.style.zIndex = '';
1473                modalEl.dispatchEvent(new Event('lpui-hide'));
1474                var modalId = modalEl.getAttribute('id');
1475                if (modalId) {
1476                    window.lpUI.releaseScrollLock(modalId);
1477                    window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } }));
1478                }
1479            }
1480
1481            function hideModal (modalId) {
1482                _hideModal(document.getElementById(modalId));
1483            }
1484
1485            function hideClosestModal (el) {
1486              const modal = el?.closest('.modal');
1487              if (!modal) {
1488                return;
1489              }
1490              if (modal.classList) {
1491                _hideModal(modal);
1492                return;
1493              }
1494              if (modal.length && modal[0].classList) {
1495                _hideModal(modal[0]);
1496              }
1497            }
1498
1499            window.lpUI = {
1500                sideMenuHide: sideMenuHide,
1501                sideMenuShow: sideMenuShow,
1502                sideMenuToggle: sideMenuToggle,
1503                requestScrollLock: requestScrollLock,
1504                releaseScrollLock: releaseScrollLock,
1505                showModal: showModal,
1506                hideModal: hideModal,
1507                hideClosestModal: hideClosestModal
1508            }
1509        })();
1510
1511        var stringifyPrimitive = function(v) {
1512            switch (typeof v) {
1513                case 'string':
1514                    return v;
1515
1516                case 'boolean':
1517                    return v ? 'true' : 'false';
1518
1519                case 'number':
1520                    return isFinite(v) ? v : '';
1521
1522                default:
1523                    return '';
1524            }
1525        };
1526
1527        function objectToQuerystring(obj, sep, eq, name) {
1528            // https://github.com/Gozala/querystring/blob/master/encode.js
1529            sep = sep || '&';
1530            eq = eq || '=';
1531            if (obj === null) {
1532                obj = undefined;
1533            }
1534
1535            if (typeof obj === 'object') {
1536                return Object.keys(obj).map(function(k) {
1537                    var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
1538                    if (Array.isArray(obj[k])) {
1539                        return obj[k].map(function(v) {
1540                            return ks + encodeURIComponent(stringifyPrimitive(v));
1541                        }).join(sep);
1542                    } else {
1543                        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
1544                    }
1545                }).filter(Boolean).join(sep);
1546
1547            }
1548
1549            if (!name) return '';
1550            return encodeURIComponent(stringifyPrimitive(name)) + eq +
1551                    encodeURIComponent(stringifyPrimitive(obj));
1552        }
1553
1554        function getPath(url, options) {
1555            var parser = document.createElement('a');
1556            parser.href = url || '';
1557            var path = parser.pathname || '';
1558            if (path[0] !== '/') {
1559              // IE does not return path starting with a slash
1560              path = '/' + path;
1561            }
1562
1563            if (options && options.queryString) {
1564                path += parser.search;
1565            }
1566
1567            return path;
1568        }
1569
1570        function getMLSAutocomplete(keyword) {
1571            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';
1572            var query = {
1573                kind: 'listings',
1574                query: keyword
1575            };
1576
1577            return superagent
1578                .get(searchURL)
1579                .query(query)
1580                .then(function(res) {
1581                    var data = res.body || [];
1582                    /*
1583                        Of the format:
1584                          [{
1585                            "_index": "listing_auto_completes_production_20190723232720775",
1586                            "_type": "listing_auto_complete",
1587                            "_id": "235875624",
1588                            "_score": 0,
1589                            "status_modified_at": 1553250708,
1590                            "city": "Jupiter",
1591                            "price": 1335743,
1592                            "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478",
1593                            "sold_price": null,
1594                            "id": 235875624,
1595                            "state": "FL",
1596                            "photo_urls": [
1597                              "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg"
1598                            ],
1599                            "status": "Pending"
1600                          }, ...]
1601                      */
1602
1603                    return data;
1604                });
1605        }
1606
1607        function getMLSAutocompleteWithFilters(keyword, filters = {}) {
1608            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';
1609
1610            return superagent
1611                .get(searchURL)
1612                .query({ kind: 'listings', query: keyword, ...filters })
1613                .then(function(res) {
1614                    /*
1615                        Of the format:
1616                          [{
1617                            "_index": "listing_auto_completes_production_20190723232720775",
1618                            "_type": "listing_auto_complete",
1619                            "_id": "235875624",
1620                            "_score": 0,
1621                            "status_modified_at": 1553250708,
1622                            "city": "Jupiter",
1623                            "price": 1335743,
1624                            "display_address": "10088 Calabrese Trail Unit: 9 Jupiter FL 33478",
1625                            "sold_price": null,
1626                            "id": 235875624,
1627                            "state": "FL",
1628                            "photo_urls": [
1629                              "http://cdn.photos.sparkplatform.com/fl/20190322153144208228000000-o.jpg"
1630                            ],
1631                            "status": "Pending"
1632                          }, ...]
1633                    */
1634                    return res.body || [];
1635                });
1636        }
1637
1638        function makeMlsLink(data) {
1639            // Code Dupe from utils/googlePlace
1640            // mapping of google data type to mls data type
1641            var mapping = {
1642                neighborhood: 'neighborhood',
1643                locality: 'place',
1644                administrative_area_level_2: 'county',
1645                administrative_area_level_1: 'state',
1646                postal_code: 'postalcode',
1647            };
1648
1649            function _filterTypes(types) {
1650                return types.filter(function(type) { return type !== 'political' });
1651            }
1652
1653            if (!data || !Object.keys(data).length) {
1654                return '/home-search/listings';
1655            }
1656
1657            var newData = {};
1658            _filterTypes(data.types).forEach(function(type) {
1659                if (mapping[type]) {
1660                    newData.search_type = mapping[type];
1661                }
1662            });
1663            newData.omnibox = data.formatted_address;
1664            data.address_components.forEach(function(component) {
1665                _filterTypes(component.types).forEach(function(type) {
1666                    if (mapping[type]) {
1667                        newData[mapping[type]] = component.long_name;
1668                    }
1669                });
1670            });
1671            var bounds = data.geometry.bounds;
1672            var convertedData = Object.assign(bounds, newData);
1673
1674            return '/home-search/listings?' + objectToQuerystring(convertedData);
1675        }
1676
1677        function debounce(func, wait) {
1678            let timeout;
1679            return function(...args) {
1680                const context = this;
1681                clearTimeout(timeout);
1682                timeout = setTimeout(() => func.apply(context, args), wait)
1683            }
1684        }
1685
1686        // Global methods / variables that can be accessed by element js
1687        window.luxuryPresence = {
1688            ...window.luxuryPresence,
1689            defaults: {
1690                companyId: '8853c562-273b-4c58-a71b-9ef5b2c3920c',
1691                apiGatewayUrl: '/api-gw',
1692                routerUrl: '/api-nv',
1693                gql: {"agents":"\n  query Agents (\n    $agentId: ID\n    $agentIds: [ID!]\n    $companyId: String\n    $network: Boolean\n    $networkId: String\n    $officeId: [ID!]\n    $excludeOfficeId: [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      excludeOfficeId: $excludeOfficeId\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      excludeOfficeId: $excludeOfficeId\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      originalStatus {\n        id\n        name\n      }\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      soldDate\n      timeZone\n      buyerAgencyCompensation\n      buyerAgencyCompensationType\n      landIdUrl\
1693n    }\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    $year: [Int!]\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      year: $year\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      year: $year\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-
1693abb7-484e-95c3-330269ac1102\"\n      categoryId: $categoryId\n      categoryIds: $categoryIds\n      neighborhoodId: $neighborhoodId\n    ) {\n      count\n    }\n  }\n","testimonials":"\n  query Testimonials (\n    $companyId: String\n    $agentId: ID\n    $teamId: ID\n    $testimonialIds: [ID!]\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: String\n    $search: String\n  ) {\n    testimonials (\n      companyId: $companyId\n      agentId: $agentId\n      teamId: $teamId\n      testimonialIds: $testimonialIds\n      offset: $offset\n      limit: $limit\n      sort: $sort\n      sortDir: $sortDir\n      search: $search\n    ) {\n      items {\n        id\n        testimonialId\n        body\n        author\n        position\n        media {\n          smallUrl\n          mediumUrl\n          largeUrl\n          xLargeUrl\n          xxLargeUrl\n          height\n          width\n          altTagText\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      total\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":"\n  query PointsOfInterest (\n    $regionId: UUID!\n    $radius: Int\n    $offset: Int\n    $limit: Int\n    $categories: [AreasOfInterestCategories!]\n    $sortBy: AreasOfInterestSorting\n  ) {\n    pois: areasOfInterest (\n      input: {\n        regionId: $regi
1693onId\n        radius: $radius\n        offset: $offset\n        limit: $limit\n        categories: $categories\n        sortBy: $sortBy\n      }\n    ) {\n      items {\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      total\n    }\n  }\n","offices":"\n  query Offices (\n    $companyId: ID!\n    $officeIds: [ID!]\n    $officeMlsIds: [String!]\n    $externalIds: [String!]\n    $externalSource: String\n    $agentId: ID\n    $archived: Boolean\n    $tags: [String!]\n    $slug: String\n    $search: String\n    $sort: String\n    $sortDir: SortDirection\n    $offset: Int\n    $limit: Int\n  ) {\n    offices (\n      companyId: $companyId\n      officeIds: $officeIds\n      officeMlsIds: $officeMlsIds\n      externalIds: $externalIds\n      externalSource: $externalSource\n      agentId: $agentId\n      archived: $archived\n      tags: $tags\n      slug: $slug\n      search: $search\n      sort: $sort\n      sortDir: $sortDir\n      offset: $offset\n      limit: $limit\n    ) {\n      items {\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        tags\n        media {\n          id\n          originalUrl\n          thumbnailUrl\n          smallUrl\n          mediumUrl\n          largeUrl\n          xLargeUrl\n          xxLargeUrl\n        }\n      }\n      total\n    }\n  }\n","teams":"\n  query Teams (\n    $companyId: ID\n    $teamIds: [ID!]\n    $agentId: ID\n    $externalIds: [String!]\n    $externalSource: String\n    $slug: String\n    $search: String\n    $sort: String\n    $sortDir: String\n    $offset: Int\n    $limit: Int\n  ) {\n    teams (\n      companyId: $companyId\n      teamIds: $teamIds\n      agentId: $agentId\n      externalIds: $externalIds\n      externalSource: $externalSource\n      slug: $slug\n      search: $search\n      sort: $sort\n      sortDir: $sortDir\n      offset: $offset\n      limit: $limit\n    ) {\n      items {\n        id\n        companyId\n        name\n        email\n        shortBio\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      total\n    }\n  }\n"},
1694                propertyPlaceholderImage: {"id":"caa92427-6f94-44e5-a10a-6d4ecd75812e","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/jbksvtb5exwvkulw69iw","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/jbksvtb5exwvkulw69iw","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/jbksvtb5exwvkulw69iw","sourceUrl":null,"xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/jbksvtb5exwvkulw69iw","__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/jbksvtb5exwvkulw69iw","description":null,"displayName":"property-placeholder-dotted","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/jbksvtb5exwvkulw69iw","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/jbksvtb5exwvkulw69iw","originalFileName":"Property Placeholder - dotted"}
1695            },
1696            objectToQuerystring: objectToQuerystring,
1697            getPath: getPath,
1698            getMLSAutocomplete: getMLSAutocomplete,
1699            getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters,
1700            makeMlsLink: makeMlsLink,
1701            debounce: debounce,
1702        };
1703
1704        var wowOffset = 100;
1705    </script>
1705
1706    
1706<script>
1707        (()=>{var e={},t={};t={getVideoFirstFrame(e){let t="https://res.cloudinary.com/";if(!e||!e.startsWith(t))return null;let i=e.replace(t,"").replace("f_auto:video","f_auto").split("/");if(-1===i[1].toLowerCase().indexOf("video"))return null;let s=i[i.length-1];s.lastIndexOf(".")>-1?s=`${s.slice(0,s.lastIndexOf("."))}.jpg`:s+=".jpg",i[i.length-1]=s;let r=3;"videos"===i[1].toLowerCase()&&""!==i[2]&&(r=2);let a=/^(?:[a-z]{1,3}|\$\w+)_\S+$/;for(;r<i.length-1&&a.test(i[r]);)r++;return i.splice(r,0,"so_0,eo_0"),t+i.join("/")}},e=function(e,{isEqual:i}){let s=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],r=function(e,t,i){let s="en-US";if(!e)return"";if("string"==typeof e){let t=e.trim();if(/[^+\-0-9.]/.test(t))return e;if(!(e=parseFloat(t)))return""}let r="number"==typeof i?i:0,a=Number.isInteger(e)?0:r,o={minimumFractionDigits:a,maximumFractionDigits:a};return"USD"===t?`$${e.toLocaleString(s,o)}`:"CAD"===t?`$${e.toLocaleString(s,o)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(s,o)}`:"GBP"===t?`\xa3${e.toLocaleString(s,o)}`:"PERCENT"===t?`${e}%`:"number"==typeof i&&i>-1?e.toLocaleString(s,{maximumFractionDigits:i}):e.toLocaleString(s)},a=function(e){switch(e){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""}},o=function(e){switch(e){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""}},n=function(e){switch(e){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""}},l=function(e,t){let i,s,r=t||{};switch(r.mode){case"short":i=o(e),s=r.frequencySeparator||"/";break;case"standard":case"std":i=n(e),s=r.frequencySeparator||"/";break;default:i=a(e),s=r.frequencySeparator||" "}return i?r.frequencyTag||r.frequencyClass?`${s}<${r.frequencyTag||"span"}${r.frequencyClass?` class="${r.frequencyClass}"`:""}>${i}</${r.frequencyTag||"span"}>`:s+i:""};return{isEmpty(e,t){let i=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?i?t.fn(this):t.inverse(this):i},ifEquals(e,t,s){return i(e,t)?s.fn(this):s.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?(e=(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,"")).replace(/&nbsp;/g," ")).replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g,""):"",striptagsLineBreaks:e=>e?(e=(e=(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,"")).replace(/(<br\s*\/?>)|(<\/p\s*>)(?=.*(<\/p\s*>|<br\s*\/?>))/g,"&#10;")).replace(/&nbsp;/g," ")).replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g,""):"",truncate:(e,t,i)=>e?e.length>t?"string"==typeof i?e.slice(0,t-i.length)+i:e.slice(0,t):e:"",setSubArray(e=[],t,i,s,r){r.data.root[s]=e.slice(t,i)},formatAreaUnit(e){switch(e){case"ACRE":return"Acres";case"SQUARE_METER":return"Sq.M.";case"SQUARE_YARD":return"Sq.Yd.";default:return"Sq.Ft."}},formatFrequency:a,formatFrequencyShort:o,lpFormatFrequency:(e,t)=>l(e,t&&t.hash),subArray(e,t,i,s){return e>=t&&e<i?s.fn(this):s.inverse(this)},formatPropertyStatus(e,t,i){let s="";switch(e){case"SOLD":s="Sold";break;case"FOR_SALE":s="For Sale";break;case"COMING_SOON":s="Coming Soon";break;case"INACTIVE":s="Inactive";break;case"POCKET_LISTING":s="Pocket Listing";break;case"PENDING":s="Pending";break;case"UNDER_CONTRACT":s="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":s="Active Under Contract";break;default:s=e}return("Sold"===s||"Leased"===s)&&t&&"string"==typeof i&&i&&(s+=` on ${i}`),s},formatGrade(e){switch(e){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:e=>encodeURI(e),encodeURIComponent:e=>encodeURIComponent(e),hbFormatDate(e,t){if(!e)return"";let i="current"===e?new Date:new Date(e);if(Number.isNaN(i.getTime()))return"";if("YYYY"===t||"year"===t)return`${i.getFullYear()}`;if("MM/DD/YY"===t){let e=i.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${i.getDate()}/${i.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][i.getMonth()]} ${i.getDate()}, ${i.getFullYear()}`},openHousesFormat(e,t,i){if(!e||!t)return"";let s=e=>{let t=e.getHours();t>12&&(t-=12);let i=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?i+="PM":i+="AM",i},r="",a=e,o=t;
1707i&&(a=new Date(e).toLocaleString("en-US",{timeZone:i}),o=new Date(t).toLocaleString("en-US",{timeZone:i}),[,,,r]=new Date(t).toLocaleString("en-US",{timeZone:i,timeZoneName:"short"}).split(" "));let n=new Date(a),l=n.toLocaleDateString("en-US"),d=s(n),c=s(new Date(o));return`${l} ${d} - ${c} ${r}`},math:(e,t,i)=>(e=parseFloat(e),({"+":e+(i=parseFloat(i)),"-":e-i,"*":e*i,"/":e/i,"%":e%i})[t]),findByKey(e,t,i,s){let r=(e||[]).find(e=>e[t]===i);return s.fn(r)},capitalize(e,t,i){let s;return"string"==typeof e&&e.length&&(s=e.toLowerCase().split(t).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").toString()),s},and:(...e)=>Array.prototype.slice.call(e).every(Boolean),or:(...e)=>Array.prototype.slice.call(e,0,-1).some(Boolean),not:e=>!e,orderByIds(t,i,s){let r="",a=null;s.data&&(a=e.createFrame(s.data));let o=(i||[]).filter(Boolean);if(o&&o.length){let e=0;r=o.reduce((i,r,o)=>{let n=(t||[]).find(e=>e.id===r);return n?(a&&(a.index=o-e),i+s.fn(n,{data:a})):(e+=1,i)},"")}else for(let e=0,i=(t||[]).length;e<i;e++)a&&(a.index=e),r+=s.fn(t[e],{data:a});return r},ifIn(e,t,i){return t&&t.indexOf(e)>-1?i.fn(this):i.inverse(this)},partial:(t,i)=>(e.registerPartial(t,e.compile(i.fn())),`
1707<script type="text/x-handlebars-template" class="${t} pagination-script">${i.fn()}<\/script>`),numCompare(e,t,i,s){return({"==":function(e,t){return e==t},"===":function(e,t){return e===t},"!=":function(e,t){return e!=t},"<":function(e,t){return e<t},">":function(e,t){return e>t},"<=":function(e,t){return e<=t},">=":function(e,t){return e>=t}})[i](e,t)?!s.fn||s.fn(this):!!s.fn&&s.inverse(this)},lpFormatNumber:r,arrayToHtmlList:(e,t)=>e.reduce((e,t)=>{try{if("object"==typeof t||null===t)return e;return e+=`<li>${t}</li>`}catch(e){}},""),join:(e,t,i)=>e&&e.join?e.join("string"==typeof t?t:", "):"",dedupe(t,i,s){let r=null,a=0,o=new Set;return s.data&&(r=e.createFrame(s.data)),(t||[]).reduce((e,t,n)=>{let l=i?t[i]:t;return!o.has(l)||i&&void 0===l?(o.add(l),r&&(r.index=n-a),e+s.fn(t,{data:r})):(a+=1,e)},"")},JSONstringify:(e,t)=>JSON.stringify(e),formatPropertyPrice(...t){let i=t[t.length-1].hash,s=t.length>1?t[0]:i.property,a=i.precision||0;t.length>2&&(i.mode=t[1]),i.mode||(i.mode="short");let o=t.length>3?t[2]:i.separator;if("string"!=typeof o&&(o=" | "),s.isPasswordProtected)return"Exclusive Listing";let n=t.length>4?t[3]:i.priceUponRequestText;if("string"!=typeof n&&(n="Price Upon Request"),s.priceUponRequest)return n;let d=s.salesPrice,c=null;"SOLD"!==s.status&&"Leased"!==s.status&&s.reducedPrice&&(i.reducedClass?c=s.reducedPrice:d=s.reducedPrice);let u="";c&&(u+=`<${i.reducedTag||"span"} class="${i.reducedClass}">${r(c,s.currency,a)}</${i.reducedTag||"span"}>`),d&&(d=r(d,s.currency,a),i.priceTag||i.priceClass?u+=`<${i.priceTag||"span"}${i.priceClass?` class="${i.priceClass}"`:""}>${d}</${i.priceTag||"span"}>`:u+=d);let h=s.leasePrice&&r(s.leasePrice,s.currency,a);if(h){u&&(u+=o);let e=`${h}${l(s.leasePeriod,i)}`;i.leaseTag||i.leaseClass?u+=`<${i.leaseTag||"span"}${i.leaseClass?` class="${i.leaseClass}"`:""}>${e}</${i.leaseTag||"span"}>`:u+=e}
1707return new e.SafeString(u)},mediaImage(t,i={}){if(!t)return;let{lazy:r,...a}=i.hash,o="",n="";if("string"==typeof t)o=t;else{let e={},{height:r,width:l,altTagText:d}=t;s.forEach(i=>{t[i.field]&&!e[t[i.field]]&&(e[t[i.field]]=i.w)});let c=Object.keys(e);if(!c.length)return;if(d&&(a.alt=d),r&&l&&(r>=l&&(a.class?a.class+=" portrait":a.class="portrait"),"setDims"in i.hash&&(a.width=l,a.height=r)),c.length>1&&l&&l<e[c[c.length-1]]){let t=c.findIndex(t=>e[t]>=l);c.splice(t+1),e[c[c.length-1]]=l}c.length>1&&(n=c.map(t=>`${t} ${e[t]}w`).join(", "),c.sort((t,i)=>Math.abs(e[t]-1280)-Math.abs(e[i]-1280))),o=c[0]}delete a.setDims,n||delete a.sizes,"alt"in a||(a.alt=""),!("loading"in a)&&(i?.data?.root?.sectionIndex>1||r)&&(a.loading="lazy");let l=Object.keys(a).map(t=>`${e.escapeExpression(t)}="${e.escapeExpression(a[t])}"`).join(" ");return new e.SafeString(`<img src="${o}"${n?` srcset="${n}"`:""}${l?` ${l}`:""}>`)},bgImage:e=>e?"string"==typeof e?e:e.largeUrl||e.url||"":"",concat(...e){let t="";for(let i in e)null!==e[i]&&void 0!==e[i]&&"object"!=typeof e[i]&&(t+=e[i]);return t},setVideoExtension(e,t){if(!e||!t)return"";let i=new URL(e);if("res.cloudinary.com"!==i.host)return i.pathname.endsWith(`.${t}`)?e:"";let s=i.pathname.lastIndexOf("."),r=i.pathname;return -1!==s&&(r=i.pathname.substr(0,s)),i.pathname=`${r}.${t}`,i.toString()},addVideoSources(e){if(!e)return"";if(!e.includes("res.cloudinary.com"))return`<source data-src="${e}">`;let t=e.replace(/\.(?:3gp|mpeg|mp4|m4v|m4p|ogv|ogg|mov|webm)$/,"");return[{format:"webm",codec:"vp9",htmlCodecs:";codecs=vp9"},{format:"mp4",codec:"h265",htmlCodecs:";codecs=hvc1"},{format:"mp4",codec:"h264",htmlCodecs:""}].map(e=>{let i=`${t.replace(/f_auto(?::video)?(?:,q_auto(?::\w+)?)?/,`f_${e.format},vc_${e.codec},q_auto:best,w_1920,c_limit`)}.${e.format}`;return`<source data-src="${i}" type="video/${e.format}${e.htmlCodecs}">`}).join("\n")},cloudinaryVideoFirstFrame:t.getVideoFirstFrame,initials(e,t){if(!e)return"";t?.hash?.endChar&&(e=e.split(t.hash.endChar)[0]);let i=+t?.hash?.maxChars||2,s=e.match(/\b\w/g)?.slice(0,i);return s?(t?.hash?.addText&&(s=s.map(e=>e+t.hash.addText)),s.join(t?.hash?.joinWith||"").toUpperCase()):""},normalizePhone(e){if(!e)return"";let t=String(e).trim();return(t.startsWith("+")?"+":"")+t.replace(/\D/g,"")}}};class i{constructor(e,t,i){if(this.config=e,this.window=t,this.document=i,!this.destroy)throw Error("Controllers must implement a deconstructor")}}let s="lp_lead_form_conversion_fired";function r(e,t){if(e&&t&&"function"==typeof t.sendGoogleTagManagerEvent&&!function(e){try{return"true"===e.sessionStorage.getItem(s)}catch{return!1}}(e))try{t.sendGoogleTagManagerEvent("event","generate_lead");try{e.sessionStorage.setItem(s,"true")}catch{}}catch{}}function a(e){return!!e&&(!!e.expired||Date.now()>=e.expiresAt)}let o="/api/v1/home-valuation";class n extends i{destroy(){}_cleanAddressString(e){if(!e||"string"!=typeof e)return"";let t=e.trim();if(t.includes("User entered address:")){let e=t.match(/User entered address:\s*\n?\s*([^\n]+)/);e&&e[1]&&(t=e[1].trim())}let i=t.indexOf(", call time frame:");return -1!==i&&(t=t.substring(0,i).trim()),t}_transformAddressComponents(e){let t=t=>(e.find(e=>e.componentType===t)||{}).componentName?.text,i={},s=t("street_number"),r=t("route"),a=t("administrative_area_level_1"),o=t("postal_code"),n=t("subpremise"),l=t("locality")||t("sublocality_level_1")||t("neighborhood");return s&&(i.streetNumber=s),r&&(i.streetName=r),l&&(i.city=l),a&&(i.state=a),o&&(i.zipcode=o),n&&(i.addressLine2=n),i}_extractAddressAndCoordinates(e){let t=null,i=null;if(e?.result){let{result:s}=e;s.address?.addressComponents&&(t=this._transformAddressComponents(s.address.addressComponents)),s.geocode?.location&&(i={latitude:s.geocode.location.latitude,longitude:s.geocode.location.longitude})}return{structuredAddress:t,coordinates:i}}_filterEmptyStrings(e){let t={};for(let[i,s]of Object.entries(e))""!==s&&null!=s&&(t[i]=s);return t}_getRawAddress(e){let t=e.activity.content||{},i=e.activity.comments_attributes?.[0]?.text;return[t.address,t["property-address"],t.property_address,t.Property_Address,i,t.message,t.homeValuationAddress,t.propertyAddress].map(e=>e&&this._cleanAddressString(e)).find(Boolean)||""}_logLeadEvent(e,t,i=null){let s={event:e,companyId:this.config.companyId,websiteId:this.config.websiteId,timestamp:new Date().toISOString(),hasEmail:!!t.activity?.author_email,hasAddress:!!this._getRawAddress(t)};if(i&&(s.errorMessage=i.userMessage||(i.status?`Request failed with status ${i.status}`:"An error occurred"),s.errorName=i.name,s.errorStatus=i.status),console.error(`[HomeValuation] ${e}`,JSON.stringify(s)),this.window.posthog)try{this.window.posthog.capture(e,s)}catch(e){console.error("[HomeValuation] PostHog capture failed:",e)}}_getUserFriendlyErrorMessage(e){return"AbortError"===e.name||e.message?.includes("timeout")?"Connection timed out. Please try again.":"TypeError"===e.name&&e.message?.includes("fetch")?"Unable to connect. Please check your internet connection and try again.":503===e.status||502===e.status||504===e.status?"Service temporarily unavailable. Please try again in a moment.":400===e.status?"Please check your information and try again.":"Something went wrong. Please try again or c
1707ontact us directly."}_formatStructuredAddress(e){if(!e||0===Object.keys(e).length)return"";let t=[];return t.push([e.streetNumber,e.streetName,e.addressLine2].filter(Boolean).join(" ")),t.push([[e.city,e.state].filter(Boolean).join(", "),e.zipcode].filter(Boolean).join(" ")),t.filter(Boolean).join(", ")}_buildHomeValuationData(e,t,i,s){let r=this._formatStructuredAddress(i)||this._getRawAddress(e);if(!r)throw Error("Unable to extract home valuation address from form data");let a={companyId:e.companyId,homeValuationAddress:r,homeValuationEstimate:t?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0,minimumFractionDigits:0}).format(t):null,websiteId:e.page.websiteId,sourceUrl:e.activity.source_url},o={leadEmailAddress:e.activity.author_email,leadFullName:e.activity.author_name,leadFirstName:e.activity.firstName,leadLastName:e.activity.lastName,leadPhoneNumber:e.activity.author_phone,parcelId:e.activity.content?.parcelId,resourceId:e.page.pageMeta?.resourceId,pageId:e.page.pageId,sourceResource:e.page.pageMeta?.s
1707ourceResource,pageElementId:e.page.pageMeta?.pageElementId,formId:e.page.pageMeta?.formId,utmSource:e.activity.content?.utm_source,utmMedium:e.activity.content?.utm_medium,utmCampaign:e.activity.content?.utm_campaign,utmTerm:e.activity.content?.utm_term,utmContent:e.activity.content?.utm_content,utmId:e.activity.content?.utm_id,timeToSell:e.activity.content?.timeToSell,lookingToBuy:e.activity.content?.lookingToBuy,consented:!!e.activity.content?.termsAccepted,referrer:e.referrer,content:e.activity.content||{},fields:e.fields||{}},n=this._filterEmptyStrings(o);return{...a,...n,...i&&{address:i},...s&&{coordinates:s}}}async _validateAddressSafely(e){if(!e)return console.error("Home valuation: No address found in form data"),null;try{return await this._validateAddressWithGoogleMaps(e)}catch(e){throw console.error("Error validating address with Google Maps:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}async _getHomeValuationEstimateSafely(e){try{return await this._getHomeValuationEstimate(e)}catch(e){throw console.error("Error getting home valuation estimate:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}_isSafeRedirectUrl(e){try{let{protocol:t}=new URL(e,this.window.location.href);return"https:"===t||"http:"===t}catch{return!1}}_parseResponsePayload(e){try{return e?JSON.parse(e):{}}catch{return{raw:e}}}_createResponseError(e,t){let i=Error(e&&"object"==typeof e&&Object.keys(e).length?e.message||JSON.stringify(e):"Request failed");return e&&"object"==typeof e&&Object.keys(e).length&&Object.assign(i,e),i.status=t,i}_resolveValuationApiBase(){let{config:e}=this;if(void 0!==e.valuationApiBase&&null!==e.valuationApiBase&&(""!==e.valuationApiBase||!e.isBuilder))return e.valuationApiBase;if(e.websiteApiGatewayUrl)return e.websiteApiGatewayUrl;throw Error("websiteApiGatewayUrl/valuationApiBase not configured for home valuation")}async _submitLead(e,t,i){let s=new AbortController,r=setTimeout(()=>s.abort(),1e4);try{let o=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:s.signal});clearTimeout(r);let n=await o.text(),l=this._parseResponsePayload(n);if(!o.ok)throw this._createResponseError(l,o.status);if(l&&"success"===l.status&&l.redirectUrl){if(a(i))return l;if(!this._isSafeRedirectUrl(l.redirectUrl))return console.error("Home valuation: refusing redirect to unsupported protocol"),l;return this.window.location.href=l.redirectUrl,{redirected:!0,url:l.redirectUrl}}return l}catch(e){throw clearTimeout(r),e}}async _submitHomeValuationRequest(e){let t=this._resolveValuationApiBase();this._logLeadEvent("home_valuation_submission_started",e);try{let i=this._getRawAddress(e),s=null;try{s=await this._validateAddressSafely(i)}catch(t){throw this._logLeadEvent("home_valuation_address_validation_failed",e,t),t}let r=null;try{r=await this._getHomeValuationEstimateSafely(s)}catch(t){this._logLeadEvent("home_valuation_estimate_failed",e,t),r=null}let{structuredAddress:a,coordinates:n}=this._extractAddressAndCoordinates(s),l=`${t}${o}`,d=this._buildHomeValuationData(e,r,a,n),c=await this._submitLead(l,d,e.deadline);return this._logLeadEvent("home_valuation_submission_success",e),c}catch(t){throw t.userMessage||(t.userMessage=this._getUserFriendlyErrorMessage(t)),this._logLeadEvent("home_valuation_submission_failed",e,t),t}}async _validateAddressWithGoogleMaps(e){let{config:t,window:i}=this,s=t.googleMapsAPIKey;if(!s&&i.luxuryPresence?.mapApiLoader&&(s=await i.luxuryPresence.mapApiLoader.getMapApiKey()),!s)throw Error("Google Maps API key not configured");let r=new AbortController,a=setTimeout(()=>r.abort(),1e4);try{let t=await fetch(`https://addressvalidation.googleapis.com/v1:validateAddress?key=${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:{addressLines:[e]},enableUspsCass:!1}),signal:r.signal});if(clearTimeout(a),!t.ok){let e=Error(`Address validation failed: ${t.status}`);throw e.status=t.status,e}return t.json()}catch(e){throw clearTimeout(a),e}}_hasMandatoryAddressFields(e){return!!(e.streetNumber&&e.streetName&&e.city&&e.state&&e.zipcode)}_logMissingAddressFields(e){let t=[];e.streetNumber||t.push("streetNumber"),e.streetName||t.push("streetName"),e.city||t.push("city"),e.state||t.push("state"),e.zipcode||t.push("zipcode"),console.log("Home valuation estimate skipped - missing required fields:",t.join(", "),"Available fields:",Object.keys(e).join(", "))}_buildAddressQueryString(e){return Object.entries(e).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}async _getHomeValuationEstimate(e=null){let t=`${this._resolveValuationApiBase()}${o}`;if(!e?.result?.address?.addressComponents)return null;let i=this._transformAddressComponents(e.result.address.addressComponents);if(!this._hasMandatoryAddressFields(i))return this._logMissingAddressFields(i),null;let s=this._buildAddressQueryString(i),r=`${t}?${s}`,a=new AbortController,n=setTimeout(()=>a.abort(),1e4);try{let e=await fetch(r,{headers:{Accept:"application/json"},signal:a.signal});if(clearTimeout(n),!e.ok){let t=Error(`Home valuation estimate failed: ${e.status}`);throw t.status=e.status,t}let t=await e.json();return t?.valueDollars??null}catch(e){throw clearTimeout(n),e}}}let l="middleName",d="redirect-pending",c=["name","firstName","lastName",l,"email","phone","phoneNumber","source","message","mlsId","sourceUrl"],u="lp_map_key_failed",h="oauthSuccess",p={cookieyes:{eventName:"cookieyes_consent_update",hasAnalyticsConsent:e=>(function(e){let t=e.cookie.match(/cookieyes-consent=([^;
1707]+)/);if(!t)return!1;try{let e=decodeURIComponent(t[1]);if(e.includes(",")){let t=e.split(",").map(e=>e.trim());if(t.some(e=>e.includes(":")))return t.some(e=>"analytics:yes"===e);return t.includes("analytics")}return e.includes("analytics")}catch(e){return!1}})(e),isAnalyticsAccepted:e=>Array.isArray(e?.accepted)&&e.accepted.includes("analytics")},"lp-consent":{eventName:"lp_consent_update",hasAnalyticsConsent:(e,t)=>!!t.__lpConsent?.state?.c?.analytics,isAnalyticsAccepted:e=>!!e?.choices?.analytics}};function m(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function g(e,t){t.forEach(t=>{let i=e[t];Array.isArray(i)&&0===i.length&&delete e[t]})}function y(e,t,i,s){let r=t.map(t=>(function e(t){return Array.isArray(t)?t.flatMap(t=>e(t)):"string"==typeof t?t.split(/\s+/).filter(Boolean):null==t?[]:[t]})(e[t])),a=s?.merge?r.flat():r.find(e=>e.length>0)??[];t.forEach(t=>{delete e[t]}),a.length>0&&(e[i]=[...new Set(a)])}function f(e){let t={...e};if(t.urlWebsite||(t.urlWebsite=null),t.urlYoutube=null,t.urlFacebook=null,t.urlInstagram=null,t.urlLinkedin=null,t.urlPodcast=null,t.urlTwitter=null,Array.isArray(e.socialLinks)){let i=[...e.socialLinks].sort((e,t)=>{let i=e.type?.toLowerCase()||"",s=t.type?.toLowerCase()||"";return i.localeCompare(s)});t.socialLinks=i;let s={youtube:"urlYoutube",facebook:"urlFacebook",instagram:"urlInstagram",linkedin:"urlLinkedin",podcast:"urlPodcast",twitter:"urlTwitter"};i.forEach(e=>{let i=s[e.type?.toLowerCase()??""];i&&(t[i]=e.link)})}return t}function w(e){return e&&Array.isArray(e)?e.map(e=>f(e)):e}function v(e){let{region:t}=e;if(!m(t))return e;let{schools:i,pois:s,...r}=t,a={...r,schools:m(i)?i.data??[]:[],...Array.isArray(s)?{pois:s.map(e=>({...e,category:"string"==typeof e.category?e.category.toUpperCase():e.category}))}:{}};return{...e,region:a}}function b(e){return e&&Array.isArray(e)?e.map(e=>v(e)):e}function S(e){let t=e.featuresAndAmenities;if(!Array.isArray(t))return e;let i=t.map(e=>({featureIds:e.featureIds??[],features:e.features??[],description:e.description}));return{...e,featuresAndAmenities:i}}function _(e){return e&&Array.isArray(e)?e.map(e=>S(e)):e}function E(e,t){return m(e)?t(e):e}function I(e,t){return Array.isArray(e)?t(e):e}let A=new class{constructor(e){this.isBuilder=!1,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=!1,this.mlsEnabled=!1,this.hstValuationRedirectEnabled=!1,this.hvStepTwoCaptureEnabled=!1,this.googleMapsAPIKey=null}get valuationApiBase(){return this.isBuilder?this.websiteApiGatewayUrl:""}destroy(){}setPage(e,t={}){this.pageId=e,this.shareId=t.shareId||null,this.pageMeta={sourceResource:t.sourceResource,pageElementId:t.pageElementId,pageQueryVariables:t.pageQueryVariables||{}}}setIsBuilder(e){this.isBuilder=e}setCompany(e,t={}){this.companyId=e}setWebsite(e,t={}){this.websiteId=e,t.myhomeDashboardEnabled&&(this.myhomeDashboardEnabled=t.myhomeDashboardEnabled),t.mlsEnabled&&(this.mlsEnabled=t.mlsEnabled),t.hstValuationRedirectEnabled&&(this.hstValuationRedirectEnabled=t.hstValuationRedirectEnabled),t.hvStepTwoCaptureEnabled&&(this.hvStepTwoCaptureEnabled=t.hvStepTwoCaptureEnabled)}setWebsiteApiGatewayUrl(e,t={}){this.websiteApiGatewayUrl=e}setBuyerSellerServiceUrl(e,t={}){this.buyerSellerServiceUrl=e}setDivolteServiceUrl(e,t={}){this.divolteServiceUrl=e}setEventBusUrl(e,t={}){this.eventBusUrl=e}setTemplateId(e,t={}){this.templateId=e}setLeadIngesterUrl(e,t={}){this.leadIngesterUrl=e}setGoogleMapsAPIKey(e,t={}){this.googleMapsAPIKey=e}setEventBus({enabled:e,apiKey:t,url:i}){this.eventBus={enabled:e,apiKey:t,url:i}}}({}),L=new class extends i{constructor(e,t,i){super(e,t,i),this.setLoginState=this.setLoginState.bind(this),this.pageId=null,this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}initialize(e){try{let{config:t,document:i}=this;this.pageId=t.pageId,this.modals=i.querySelectorAll("body > #modals >
1707 .modal"),e.modals.forEach(e=>{this._attachModalHandler(e)})}catch(e){console.log(e)}}destroy(){let{document:e}=this;this.exitModalEventListeners.forEach(t=>{e.removeEventListener("mouseout",t)}),this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}setModalWithExpiry(e){let{window:t}=this,i=new Date().getTime()+864e5,s=`modal-controller-${e}`;try{t.localStorage.setItem(s,JSON.stringify(i))}catch(e){}}setLoginState(){let{window:e}=this;try{e.localStorage.setItem("isSignedUp","true")}catch(e){}}getModalWithExpiry(e){let{window:t}=this,i=t.localStorage,s=i.getItem(`modal-controller-${e}`);if(!s)return!1;let r=JSON.parse(s);return!(new Date().getTime()>r)||(i.removeItem(`modal-controller-${e}`),!1)}show(e,t={}){let{window:i}=this,s=this.getModalWithExpiry(e);(e&&!s||!0===t.forced)&&(i.lpUI.showModal(`modal-${e}`,t),this.setModalWithExpiry(e))}_attachModalHandler(e){let{pageId:t}=this,{trigger:i,pageSpecific:s}=e;(!s||e.pages.map(e=>e.pageId).includes(t))&&("EXIT"===i?this._exitModalHandler(e):"TIMER"===i?this._timerModalHandler(e):"FORCED"===i&&this._forcedModalHandler(e))}_exitModalHandler(e){let t=this,{document:i,exitModalTriggered:s}=this,{modalId:r}=e;function a(e){!s[r]&&(e.toElement||e.relatedTarget||(t.show(r),s[r]=!0))}i.addEventListener("mouseout",a),this.exitModalEventListeners.push(a)}_timerModalHandler(e){let{modalId:t,timerDelay:i}=e;setTimeout(()=>{this.show(t)},i)}_forcedModalHandler(e){let{modalId:t}=e,{window:i,document:s}=this;if("true"!==i.localStorage.getItem("isSignedUp")){let e=s.querySelector(`#modal-${t}`),r=e?.querySelector("form"),a=r?.dataset.delay||2e3;r.addEventListener("formsubmitted",()=>{this.setLoginState()}),i.addEventListener("oauthSuccess",()=>{this.setLoginState(),r.classList.add("success"),setTimeout(()=>{i.lpUI.hideModal(`modal-${t}`),r.reset(),r.classList.remove("success")},a)}),this.show(t,{forced:!0})}}}(A,window,document),$=new class extends i{constructor(e,t,i){super(e,t,i),this._boundClickHandler=this._buttonClickHandler.bind(this)}initialize(e={}){try{let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler),e.body.addEventListener("click",this._boundClickHandler)}catch(e){console.error(e)}}destroy(){let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler)}_buttonClickHandler(e){this._handleButtonClick(e).catch(e=>console.error(e))}async _handleButtonClick(e){let{window:t,document:i}=this,s=e.target.closest("button, a");if(!s)return;let r=s.dataset.type||"",a=s.href||s.dataset.href||"",o=s.target||"",{submit:n}=s.dataset;if(n){try{await this._handleSubmit(s)}catch(e){console.error(e)}((e,t=!1)=>{if(e){if(t)return window.open(e);window.location.assign(e)}})(a,"_blank"===o)}if(this._trackConversion(s),"VIDEO"===r)return void this._handleVideoButton(s);if("CONTACT_US"===r)return void this._handleContactUsButton(s);if("SUBSCRIBE"===r)return void t.lpUI.showModal("modal-global-subscribe");if("MY_ACCOUNT"===r)return void t.lpUI.showModal("modal-global-my-account");if("SHARE_POPUP"===r){let t=s.querySelector(".share-popup");t&&(t.style.display="flex"),e.stopPropagation();return}if("MODAL_"===r.substring(0,6)){let e=r.substring(6);t.lpUI.showModal(`modal-${e}`);return}if(a?.startsWith("mailto:")){let e=a.substring(7);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Email",eventValue:e})}else if(a?.startsWith("tel:")){let e=a.substring(4);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Phone",eventValue:e})}}async _handleSubmit(e){let t=e.closest("form"),{window:i}=this;return t?await i.luxuryPresence.contactForms.submitForm(t):null}_getVimeoSrc(e){if(!e||!e.includes("vimeo.com")||e.length>2e3)return null;let t=e.match(/(?:(?:www\.)?vimeo\.com\/(?:showcase\/\d+(?:\/video\/|\?video[=/])|channels\/(?:\w+\/)?|groups\/(?:[^/]*)\/videos\/|)|player\.vimeo\.com\/video\/)(\d+)(?:(?:\?.*&*h=|\/)+([\d,a-f]+))?/);if(!t)return null;let[,i,s]=t,r=`https://player.vimeo.com/video/${i}?`;return s&&(r+=`h=${s}&`),r+="autoplay=1"}_handleVideoButton(e){let{document:t}=this,i=e.closest("section"),{src:s}=e.dataset,r="";if(s&&(s.includes("youtube.com")||s.includes("youtu.be"))&&!s.includes("youtube.com/embed")){let e=s.match(/(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=)
1707)|youtu.be\/)([a-zA-Z0-9_-]{6,11})/);e&&(r=e[1])}let a=this._getVimeoSrc(s);if(r?s=`https://youtube.com/embed/${r}?autoplay=1&controls=0`:a&&(s=a),!s||!i)return;let o=s.endsWith(".mp4")||s.endsWith(".webm")||s.includes("cloudinary.com"),n=`
1708      <div id="modal-${i.id}" class="modal visible">
1709        <div class="modal-content">
1710          <div class="lightbox-video">
1711            <div class="video-player">
1712              <div class="embed-container">
1713                ${o?`<video controls autoplay src="${s}"></video>`:`<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${s}"></iframe>`}
1714              </div>
1715            </div>
1716          </div>
1717        </div>
1718        <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button>
1719      </div>
1720    `;t.body.insertAdjacentHTML("beforeend",n);let l=t.getElementById(`modal-${i.id}`);l.querySelector(".close").addEventListener("click",()=>{l.remove()})}_handleContactUsButton(e){let{window:t,document:i}=this;i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"contact"}),t.lpUI.showModal("modal-global-contact-us",{scrollLock:!0})}_trackConversion(e){let{window:t,document:i}=this,{gtagConversionId:s,gtagConversionLabel:r,fbEventName:a}=e.dataset;if(s&&r){t.dataLayer&&t.dataLayer.length&&(t.dataLayer.some(e=>e.length&&"config"===e[0]&&e[1]===s)||i.sendGoogleTagManagerEvent("config",s));let e=`${s}/${r}`;i.sendGoogleTagManagerEvent("event","conversion",{send_to:e})}t.fbq&&a&&t.fbq("track",a,{})}}(A,window,document),x=new class extends i{constructor(e,t,i){super(e,t,i),this.validatedForms=[]}initialize(e={}){try{let{window:t,document:i}=this,{selector:s}=e,r=[];if(r=s?i.querySelectorAll(`${s} form[data-type="contact-form"]`):i.querySelectorAll('form[data-type="contact-form"]'),i.querySelectorAll('input[type="tel"]').length&&!t.libphonenumber&&t?.luxuryPresence?.libs){let{loadJs:e,jsLibsMap:i}=t.luxuryPresence.libs,{libphonenumber:s}=i;e(s.jsSrc,this.attachValidation.bind(this,r))}else this.attachValidation(r);this.validatedForms=this.validatedForms.concat(r)}catch(e){console.log(e)}}destroy(){this.validatedForms=[]}attachValidation(e){e.forEach(e=>{e.querySelectorAll("input, select, textarea").forEach(e=>{this.applyFieldValidation(e)})})}applyFieldValidation(e){"tel"===e.getAttribute("type")&&this._applyPhoneValidation(e)}_applyPhoneValidation(e){let{window:t}=this;if(t.libphonenumber){let i=t.libphonenumber.isValidPhoneNumber;e.addEventListener("keyup",function(){if(this.hasAttribute("required")||this.value.replace(/\s/g,"").length)try{let e=this.value;i(e,"US")?this.setCustomValidity(""):this.setCustomValidity("Please enter a valid phone number.")}catch(e){this.setCustomValidity("Please enter a valid phone number.")}else this.setCustomValidity("")})}}}(A,window,document),T=new class extends i{constructor(e,t,i){super(e,t,i),this.forms=[],this.homeValuationService=new n(e,t,i)}initialize(e={}){try{let{document:t}=this,{selector:i}=e,s=[];(s=i?t.querySelectorAll(`${i} form[data-type="contact-form"]`):t.querySelectorAll('form[data-type="contact-form"]')).forEach(e=>{this._attachSubmitHandler(e)}),this.forms=this.forms.concat(s)}catch(e){console.log(e)}}destroy(){this.forms=[]}submitForm(e){this._handleSubmit(null,e).catch(e=>console.error(e))}_attachValidation(e){let{window:t}=this;e.querySelectorAll("input, select, textarea").forEach(e=>{t.luxuryPresence.validation.applyFieldValidation(e)})}_attachSubmitHandler(e){e.addEventListener("submit",t=>this._handleSubmit(t,e))}_extractFormValues(e){let t=new FormData(e),i={},s=[],r=/^name(?:-\d+)?$/;return t.forEach((e,t)=>{if("string"==typeof e){let a=e.trim();r.test(t)&&a&&s.push(a);let o=i[t];i[t]=o?`${o} ${a}`:a}else i[t]=e}),s.length?i.name=s.join(" ").trim():!i.name&&i.firstName&&(i.name=i.firstName,i.lastName&&(i.name+=` ${i.lastName}`)),this._deriveNameParts(i)}_deriveNameParts(e){if(e.firstName||!e.name)return e;let t=e.name.indexOf(" ");return -1===t?{...e,firstName:e.name}:{...e,firstName:e.name.slice(0,t),lastName:e.lastName||e.name.slice(t+1).trim()}}_buildSubmissionData(e,t,i){let{window:s,config:r}=this,a=Object.keys(e).filter(e=>!c.includes(e)).reduce((t,i)=>(t[i]=e[i],t),{}),{pageId:o,companyId:n,websiteId:l,pageMeta:d}=r,u=s.localStorage.getItem("utm_vars")||"{}",h=s.localStorage.getItem("referrer")||"",p=this._getFormId(i);return{activity:{author_email:e.email,author_name:e.name,firstName:e.firstName||void 0,lastName:e.lastName||void 0,author_phone:e.phone||e.phoneNumber,activity_source:e.source||"CONTACT_INQUIRY",comments_attributes:[{text:e.message||void 0}],source_url:s.location.href,content:{...a,...JSON.parse(u)}},page:{pageId:o,companyId:n,websiteId:l,pageMeta:{...d,formId:p}},companyId:n,referrer:h,fields:t}}_handleSubmissionSuccess(e){let{window:t}=this,i=e.dataset.delay||2e3;e.classList.remove("loading"),e.classList.remove("error"),e.classList.add("success"),e.querySelectorAll(".success").forEach(e
1720=>e.classList.remove("hide")),e.dispatchEvent(new Event("formsubmitted")),setTimeout(()=>{t.lpUI.hideClosestModal(e),e.reset(),t.lpUI.sideMenuHide(),e.querySelectorAll(".success").forEach(e=>e.classList.add("hide")),e.classList.remove("success")},i)}async _handleSubmit(e,t){if(e&&e.preventDefault(),!t.classList.contains("loading")){this._hideSubmissionError(t),t.classList.remove("error"),t.classList.add("loading");try{let e=this._extractFormValues(t);if(e.middleName)return void t.classList.remove("loading");let i=this._getFields(t),s=this._buildSubmissionData(e,i,t);r(this.window,this.document);let a=await this._waitForLeadSubmit(e=>this._submitLeadRequest(s,e));if(this._sendGAEvent(s),a?.redirected)return void this._showRedirectPending(t);this._handleSubmissionSuccess(t)}catch(e){console.error("Form submission failed:",e),t.dispatchEvent(new Event("formsubmiterror")),t.classList.remove("loading"),t.classList.add("error"),e.userMessage?this._showSubmissionError(t,e.userMessage):this._showSubmissionError(t,"Something went wrong. Please try again.")}}}async _waitForLeadSubmit(e){let t,i={expired:!1,expiresAt:Date.now()+6e3},s=new Promise(e=>{t=setTimeout(()=>{i.expired=!0,e(null)},6e3)}),r=e(i).catch(e=>{if(a(i))return null;throw e});try{return await Promise.race([r,s])}finally{clearTimeout(t)}}_showRedirectPending(e){if(e.classList.add(d),e.querySelector(`.${d}__indicator`))return;let t=this.document.createElement("div");t.className=`${d}__indicator`,t.setAttribute("role","status"),t.setAttribute("aria-label","Loading"),t.innerHTML='<span class="lp-i lp-i--spinner lp-i--pulse" aria-hidden="true"></span>',e.appendChild(t)}_aliasUserWithEventBus(e){try{if(!this.window.eventBusProvider?.alias||!this.window.eventBusProvider?.isIdentified||!this.window.eventBusProvider?.getDistinctId||!this.window.LuxuryPresenceEventBus?.generateUUIDv5FromCompanyEmail)return;if(this.window.eventBusProvider.isIdentified())return void console.log("[EventBus] User already identified, skipping alias");let t=e.activity?.author_email,{companyId:i}=this.config;if(!t||!i)return void console.warn("[EventBus] Missing required data for user alias");let s=this.window.eventBusProvider.getDistinctId();if(!s)return void console.warn("[EventBus] No anonymous ID available for alias");let r=this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(i,t);this.window.eventBusProvider.alias({anonId:s,canonicalId:r}),console.log("[EventBus] User aliased with canonical ID")}catch(e){console.error("[EventBus] User alias failed:",e)}}async _submitLeadRequest(e,t){let{config:i}=this;return(this._aliasUserWithEventBus(e),i.myhomeDashboardEnabled&&(e.activity?.activity_source==="HOME_VALUATION"||e.activity?.activity_source==="HOME_VALUE"))?this.homeValuationService._submitHomeValuationRequest({...e,deadline:t}):fetch(`${i.leadIngesterUrl}/api/v1/leads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw e}))}_sendGAEvent(e){let{document:t}=this,i={hitType:"event",eventCategory:"button",eventAction:"click"};switch(e.activity.activity_source){case"NEWSLETTER_SIGNUP":i.eventLabel="Newsletter",t.sendGoogleTagManagerEvent("event","newsletter_signup");break;case"HOME_SEARCH":i.eventLabel="HomeSearch",t.sendGoogleTagManagerEvent("event","home_search");break;case"HOME_VALUE":case"HOME_VALUATION":i.eventLabel="HomeValue",t.sendGoogleTagManagerEvent("event","home_valuation");break;case"EBOOK":i.eventLabel="Ebook",t.sendGoogleTagManagerEvent("event","ebook_download");break;default:i={hitType:"pageview",page:"/thank-you"},t.sendGoogleTagManagerEvent("event","contact_inquiry")}t.sendGoogleAnalyticsEvent(i)}_getFields(e){let t=e.querySelectorAll("input, select, textarea"),i={};return t.forEach(t=>{let{id:s,name:r,type:a}=t;if(r===l)return!0;let o="";if(s){let i=e.querySelector(`label[for='${s}']`);i?o=i.textContent.trim():t.placeholder&&(o=t.placeholder.trim())}i[r]={label:o,type:t.tagName,inputType:"INPUT"===t.tagName?a:"text"}}),i}_getFormId(e){let t=e.closest("section[id^='section-'], footer[id], .modal[id^='modal-']");return t?.id?this._cleanFormId(t.id):""}_cleanFormId(e){for(let t of["section-","modal-"])if(e.startsWith(t))return e.substring(t.length);return e}_showSubmissionError(e,t){let i=e.querySelector(".submission-error-message");i||((i=this.document.createElement("div")).className="submission-error-message",i.setAttribute("role","alert"),e.appendChild(i)),i.textContent=t||"Something went wrong. Please try again.",i.style.display="block"}_hideSubmissionError(e){let t=e.querySelector(".submission-error-message");t&&(t.style.display="none")}}(A,window,document),k=new class extends i{constructor(e,t,i){super(e,t,i),this.retries=3,this.callbacks=[],this.id=`__googleMapsScriptId${Date.now()}`,this._apiKey="",this.reset()}set apiKey(e){this._apiKey=e,this.config.setGoogleMapsAPIKey(e)}get apiKey(){return this._apiKey}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.failed=!1,this.errors=[],this.onerrorEvent=null}destroy(){this.reset()}async getMapApiKey(){if(this.apiKey)return this.apiKey;let e=this._hadPreviousFailure(),t=!1;for(let i=1;i<=3;i+=1){let s=e&&!t;try{let e=await fetch(this._getMapKeyUrl(i,s));if(t=t||s,this._setFailureFlag(!1),!e.ok)throw Error(`Failed to fetch API key: ${e.status}`);let r=await e.text();if(!r)return"";return this.apiKey=r,this.apiKey}catch(e){console.error(e),i<3&&await this._delay(300*2**(i-1))}}return this._setFailureFlag(!0),""}_getMapKeyUrl(e,t){let i=[];e>1&&i.push(`attempt=${e}`),t&&i.push("recovered_after_failure=1");let s=i.length?`?${i.join("&")}`:"";return`${this._getBaseUrl()}/api/v1/map${s}`}_hadPreviousFailure(){try{return"1"===this.window.sessionStorage.getItem(u)}catch(e){return!1}}_setFailureFlag(e){try{e?this.window.sessionStorage.setItem(u,"1"):this.window.sessionStorage.removeItem(u)}catch(e){}}_delay(e){return new Promise(t=>{this.window.setTimeout(t,e)})}async createUrl(){let e=await this.getMapApiKey();if(!e)throw Error("Refusing to load Google Maps without an API key");
1720let t="https://maps.googleapis.com/maps/api/js";return t+`?callback=__googleMapsCallback&key=${e}&libraries=places`}async setScript(){let e;if(this.document.getElementById(this.id))return void this.callback();try{e=await this.createUrl()}catch(e){console.error(e),this.failed=!0,this.loading=!1,this.onerrorEvent=e,this.callback();return}let t=this.document.createElement("script");t.id=this.id,t.type="text/javascript",t.src=e,t.onerror=this.loadErrorCallback.bind(this),t.defer=!0,t.async=!0,this.document.head.appendChild(t)}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){let e=this.errors.length*2**this.errors.length;console.log(`Failed to load Google Maps script, retrying in ${e} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript().catch(e=>console.error(e))},e)}else this.failed=!0,this.onerrorEvent=e,this.callback()}deleteScript(){let e=this.document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(i=>{i?t(i):e()})})}loadCallback(e){this.callbacks.push(e),this.execute()}setCallback(){this.window.__googleMapsCallback=this.callback.bind(this)}resetIfRetryingFailed(){this.failed&&this.reset()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(e=>{e(this.onerrorEvent)}),this.callbacks=[]}execute(){this.window.google&&this.window.google.maps&&this.window.google.maps.version&&this.callback(),this.resetIfRetryingFailed(),this.done?this.callback():this.loading||(this.loading=!0,this.setCallback(),this.setScript().catch(e=>console.error(e)))}_getBaseUrl(){let{isBuilder:e,websiteApiGatewayUrl:t}=this.config;return e?t:""}resizeStaticMapDimensions(e,t){if(e<=1024&&t<=1024)return{width:e,height:t};let i=Math.min(1024/e,1024/t);return{width:parseInt(e*i),height:parseInt(t*i)}}convertThemeToStaticApiUrl(e){return e.map(e=>{let t=e.stylers.reduce((e,t)=>{let i=t.visibility?`visibility:${t.visibility}`:"",s=t.color?`color:${t.color.replace("#","0x")}`:"",r=t.lightness?`lightness:${t.lightness}`:"";return`${e}|${i}${s}${r}`},""),i=e.elementType?`|element:${e.elementType}`:"";return`feature:${e.featureType}${i}${t}`})}async getMapApiSignedUrl(e){try{let t=await fetch(`${this._getBaseUrl()}/api/v1/map/signature?${e}`);if(!t.ok)throw Error("Failed to fetch signed URL");let{url:i}=await t.json();return i}catch(e){return console.error(e),""}}generateStaticMapUrl(e,t,i,s,r,a){let{width:o,height:n}=this.resizeStaticMapDimensions(r,a),l={center:`${e},${t}`,zoom:i,scale:2,size:`${o}x${n}`,key:this.apiKey};s&&(l.style=this.convertThemeToStaticApiUrl(s));let d=new URLSearchParams;return Object.entries(l).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>d.append(e,t.toString())):d.append(e,t.toString())}),`https://maps.googleapis.com/maps/api/staticmap?${d.toString()}`}async generateDigitallySignedStaticMapUrl({srcWidth:e,srcHeight:t,theme:i,...s}){let{width:r,height:a}=this.resizeStaticMapDimensions(e,t),o={...s,size:`${r}x${a}`};i&&(o.style=this.convertThemeToStaticApiUrl(i));let n=new URLSearchParams;Object.entries(o).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>n.append(e,t.toString())):n.append(e,t.toString())});let l=n.toString();try{return await this.getMapApiSignedUrl(l)}catch(e){return console.error(e),""}}}(A,window,document),C=new class extends i{destroy(){}updateQueryString(e,t,i){i||(i=this.window.location.href);let s=RegExp(`([?&])${e}=.*?(&|#|$)`,"i"),r="";null!=t&&(Array.isArray(t)?t.length&&(r=this.serializeArray(e,t)):"object"==typeof t?(s=RegExp(`([?&])${e}\\[[^=]*\\]=.*?(&|#|$)`,"i"),r=this.serializeObj(t,"",e)):r=`${e}=${encodeURIComponent(t)}`);let a=i.split("#"),o=a[0];if(s.test(i)){let e=o;for(r=r?`$1${r}$2`:"$1";s.test(e);)o=e.replace(s,r),e=e.replace(s,"$1");o=o.replace(/(&|\?)$/,"")}else if(r){let e=-1!==o.indexOf("?")?"&":"?";o+=`${e}${r}`}return void 0!==a[1]&&null!==a[1]&&(o+=`#${a[1]}`),o}getParameterByName(e,t){t||(t=this.window.location.href),e=e.replace(/[[\]]/g,"\\$&");let i=RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`),s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat();if(!s.length){let i=RegExp(`[?&]${e}(\\[.*?\\])=(.*?)(?=&|#|$)`,"g");return s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat(),this._parseParamToObject(s,"advancedFilters"===e)}return s.length>3?s.reduce((e,t,i)=>((i+1)%3==0&&e.push(decodeURIComponent(t.replace(/\+/g," "))),e),[]):s[2]?decode
1720URIComponent(s[2].replace(/\+/g," ")):""}makePageKey(e){return e.replace("section-","").replace(/-/g,"")}makeParamKey(e,t){return e.global?e.urlKey:`${t}-${e.urlKey}`}deserializeParams(e,t){let i={},s=this.makePageKey(t),r=this.getParameterByName(s);return r&&(i.page=parseInt(r)),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,s),r=this.getParameterByName(t);if("int"===e.type)isFinite(r=parseInt(r))||(r=null);else if("bool"===e.type||"boolean"===e.type)r="true"===r||"false"!==r&&null;else if("json"===e.type)try{r=JSON.parse(r)}catch(e){}i[e.formKey||e.param]=r}),i}serializeParams(e,t,i){let s=this.window.location.href,r=this.makePageKey(t);return s=this.updateQueryString(r,i.page,s),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,r),a=i[e.formKey||e.param];"json"===e.type&&null!=a&&(a=JSON.stringify(a)),s=this.updateQueryString(t,a,s)}),s}formatSliderAtom(e,t=""){return t+(Number.isInteger(e)?e:e.toFixed(2))}formatSliderValue(e,t="",i=""){return e<1e3?this.formatSliderAtom(e,t):e<1e6?`${this.formatSliderAtom(e/1e3,t)}${i}K`:`${this.formatSliderAtom(e/1e6,t)}${i}M`}formatSliderPriceRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e,i," ")}`:t.max===e?`${this.formatSliderValue(e,i," ")}${s.highSuffix}`:`${this.formatSliderValue(e,i," ")}`}formatSliderAreaRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e)} ${i}`:t.max===e?`${this.formatSliderValue(e)}${s.highSuffix} ${i}`:`${this.formatSliderValue(e)} ${i}`}getSearchFormValues(e){let{queryElement:t,priceSliderElement:i,areaSliderElement:s,neighborhoodSelect:r}=e,a={};if(t&&(a.search=t.value||null),i){let e=i.value.split(";"),t=parseInt(i.dataset.min),s=parseInt(i.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.priceMin=r!==t?r:null,a.priceMax=o!==s?o:null}if(s){let e=s.value.split(";"),t=parseInt(s.dataset.min),i=parseInt(s.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.areaMin=r!==t?r:null,a.areaMax=o!==i?o:null}return r&&(a.neighborhoodId=r.value||null),a}serializeObj(e,t="",i=""){let s=[];for(let r in e)if(e.hasOwnProperty(r)){let a,o=e[r];if(i){let e=t?`[${t}][${r}]`:`[${r}]`;a=`${i}${e}`}else a=t?`${t}[${r}]`:r;null!==o&&Array.isArray(o)?o.length&&s.push(this.serializeArray(a,o)):null!==o&&"object"==typeof o?s.push(this.serializeObj(o,a)):s.push(`${a}=${encodeURIComponent(o)}`)}return s.join("&")}serializeArray(e,t,i=""){let s=[];return t.forEach(t=>{let r=i?`${i}${e}`:e;s.push(`${r}=${encodeURIComponent(t)}`)}),s.join("&")}_parseParamToObject(e,t=!1){if(!e.length)return null;let i={};for(let s=0;s<e.length;s++)if((s+1)%3==0){let r=decodeURIComponent(e[s].replace(/\+/g," ")),a=e[s-1];Object.assign(i,this._setObjectPath(a,r,i,t))}return i}_setObjectPath(e,t,i,s=!1){let r=e.split(/[\[\]]/).filter(Boolean),a=["in","nin","btw","ciin","cinin"],o={},n=o,l=((e,t,i)=>{if(!t)return;let s=(Array.isArray(t)?t:t.match(/([^[.\]])+/g)).reduce((e,t)=>e&&e[t],e);return void 0===s?i:s})(i,r.join("."));return r.forEach((e,o)=>{o===r.length-1?l?n[e]=Array.isArray(l)?[...l,t]:[l,t]:n[e]=s&&a.includes(e)?[t]:t:(n[e]=i[e]?i[e]:{},n=n[e])}),o}}(A,window,document),M=new class extends i{constructor(e,t,i){super(e,t,i),this._createLightbox=this._createLightbox.bind(this),this.expandSliders=[]}initialize(e={}){try{let{document:e}=this,t=e.querySelectorAll(".has-mobile-expand");t.forEach(e=>{this._addExpandButton(e)}),this.expandSliders=this.expandSliders.concat(t)}catch(e){console.log(e)}}destroy(){let{document:e}=this;e.querySelectorAll(".lp-expand-btn, .lp-expand-btn-wrapper").forEach(e=>e.remove()),this.expandSliders=[]}_addExpandButton(e){let{document:t}=this,i=e.closest("section[id]"),s=e.dataset.append,r=i.querySelector(".lp-expand-btn");if(!r)if((r=t.createElement("button")).className="lp-expand-btn",r.setAttribute("aria-label","Open a lightbox"),r.innerHTML='<span class="lp-i lp-i--expand-alt" aria-hidden="true"></span>',s){let e=i.querySelector(s);e&&e.appendChild(r)}else{let i=t.createElement("div");i.className="lp-expand-btn-wrapper",i.style.position="relative",i.appendChild(r),e.parentNode.insertBefore(i,e.nextSibling)}r.addEventListener("click",()=>{this._createLightbox({slider:e,section:i})})}_createLightbox({slider:e,section:t,initialIndex:i}){let{window:s,document:r}=this,a=`lightbox-for-${t?.id}`,o=s.$&&s.$.fn.slick,n=o&&e.slick,l="function"==typeof s.Splide,d=e.classList.contains("is-initialized")&&e.classList.contains("splide");function c(){let t=r.createElement("div");t.id=a,t.className="lp-lightbox",t.setAttribute("tabindex","-1"),t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.innerHTML=`
1721      <button class="lp-lightbox__close" aria-label="close modal"></button>
1722      <div class="lp-lightbox__content">
1723        <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery">
1724          <div class="splide__arrows">
1725            <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button>
1726            <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button>
1727          </div>
1728          <div class="splide__track">
1729            <ul class="splide__list"></ul>
1730          </div>
1731        </div>
1732      </div>
1733    `,"function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",r.body.appendChild(t);let o=t.querySelector(".lp-lightbox__carousel"),n=o.querySelector(".splide__list");t.classList.add("show"),(d?e.querySelectorAll(".splide__slide:not(.splide__slide--clone) img"):e.querySelectorAll("img")).forEac
1733h(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("li");i.className="lp-lightbox__slide splide__slide",i.appendChild(t),n.appendChild(i)});let l=new s.Splide(o,{rewind:!0,arrows:!0,arrowPath:"",type:"loop",clones:1,pagination:!1,perPage:1,perMove:1});l.mount(),void 0!==i&&i>=0&&l.go(i),setTimeout(()=>{t.focus()},100);let c=e=>{if(!t.classList.contains("show"))return;let i=t.querySelector(".splide__arrow--prev"),s=t.querySelector(".splide__arrow--next"),r=t.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&i?(e.preventDefault(),i.click()):"ArrowRight"===e.key&&s?(e.preventDefault(),s.click()):"Escape"===e.key&&r&&(e.preventDefault(),r.click())};r.addEventListener("keydown",c),t.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",c),t.classList.remove("show"),l&&l.destroy(),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",t.remove()})}if("function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",o&&!d){let t,i,o,l,d;i={arrows:!0,dots:!1,infinite:!0,draggable:!0,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>'},(o=r.createElement("div")).id=a,o.className="lp-lightbox",o.setAttribute("tabindex","-1"),o.setAttribute("role","dialog"),o.setAttribute("aria-modal","true"),o.innerHTML=`
1734        <button class="lp-lightbox__close" aria-label="close modal"></button>
1735        <div class="lp-lightbox__content">
1736          <div class="lp-lightbox__carousel"></div>
1737        </div>
1738      `,r.body.appendChild(o),l=o.querySelector(".lp-lightbox__carousel"),o.classList.add("show"),n?(t=e.slick.$slides.find("img"),i.initialSlide=e.slick?.currentSlide||0,t.each(function(){s.$(".lp-lightbox__carousel").append(s.$(this).clone(!1).removeAttr("style").wrap('<div class="lp-lightbox__slide"></div>').parent())})):(t=e.querySelectorAll("img")).forEach(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("div");i.className="lp-lightbox__slide",i.appendChild(t),l.appendChild(i)}),s.$(l).slick(i),setTimeout(()=>{o.focus()},100),d=e=>{if(!o.classList.contains("show"))return;let t=o.querySelector(".lp-lightbox-arrow--prev"),i=o.querySelector(".lp-lightbox-arrow--next"),s=o.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&t?(e.preventDefault(),t.click()):"ArrowRight"===e.key&&i?(e.preventDefault(),i.click()):"Escape"===e.key&&s&&(e.preventDefault(),s.click())},r.addEventListener("keydown",d),o.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",d),o.classList.remove("show");let t=l?.slick?s.$(l).slick("slickCurrentSlide"):0;l?.slick&&s.$(l).slick("unslick"),n&&s.$(e).slick("slickGoTo",t),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",o.remove()})}else l?c():(s.luxuryPresence.libs.loadCss(s.luxuryPresence.libs.jsLibsMap.splide.cssSrc),s.luxuryPresence.libs.loadJs(s.luxuryPresence.libs.jsLibsMap.splide.jsSrc,()=>{c(),s.luxuryPresence.libs.jsLibsMap.splide.isLoaded=!0}))}}(A,window,document),P=new class extends i{destroy(){this.window.divolte||(this.window.divolteLp=function(){(this.window.divolteLp.q=this.window.divolteLp.q||[]).push(arguments)})}initialize(e={}){let{divolteServiceUrl:t}=this.config;t&&!this.window.divolte&&this.loadScript()}loadScript(){let{divolteServiceUrl:e}=this.config,t=this.document.createElement("script");t.id="divolte-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/divolte.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){(this.window.divolteLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.divolteLp=this.divolteLp.bind(this)}divolteLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpEvent(e,t){if(!e.includes("pageView"))return void console.log(`${e} IS NOT SUPPORTED`);let{companyId:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n}=this.config;this.window.divolte.signal(e,Object.assign({companyId:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n},t))}sendLpPageView(){this.sendLpEvent("pageView",{})}}(A,window,document),U=new class extends i{constructor(e,t,i){super(e,t,i)}initialize(e={}){(void 0!==e.enabled?e.enabled:this.config.eventBus?.enabled)&&this.config.eventBus?.apiKey&&this.config.eventBus?.url&&this.loadScript()}loadScript(){let{eventBusUrl:e}=this.config,t=this.document.createElement("script");t.id="posthog-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/v2.8.0/event-bus-js.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){this.window.LuxuryPresenceEventBus&&(this.window.eventBusProvider=this.window.LuxuryPresenceEventBus.createEventBusProvider({apiKey:this.config.eventBus.apiKey,host:this.config.eventBus.url,defaultSource:"frontend://website-render-engine"}
1738)),(this.window.eventBusLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.eventBusLp=this.eventBusLp.bind(this)}destroy(){if(!this.window.eventBusProvider){this.window.eventBusLp=function(){(this.window.eventBusLp.q=this.window.eventBusLp.q||[]).push(arguments)};return}this.window.eventBusProvider.shutdown()}sendLpEvent(e,t){if("user.activity.page.viewed"!==e)return void console.log(`${e} IS NOT SUPPORTED`);if(!this.window.eventBusProvider)return;let{companyId:i}=this.config;try{this.window.eventBusProvider.capture(e,{company:i,data:{}})}catch(e){console.log("EventBus capture error:",e)}}eventBusLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpPageView(){this.sendLpEvent("user.activity.page.viewed",{})}}(A,window,document),N=new class extends i{constructor(e,t,i){super(e,t,i),this.successListeners=[],this._listenToMessages=this._listenToMessages.bind(this),this._listenToOneTapMessage=this._listenToOneTapMessage.bind(this)}initialize(e={}){try{e.googleSignOnEnabled&&!e.iframe&&this._renderGoogleOneTap(),this.document.querySelectorAll('div[data-signin-type="google-sign-in"]').forEach(e=>this._convertGoogleSignIn(e)),this.document.querySelectorAll('div[data-signin-type="facebook-sign-in"]').forEach(e=>this._convertFacebookSignIn(e))}catch(e){console.log(e)}}destroy(){this.successListeners.forEach(e=>{this.window.removeEventListener("message",this._listenToMessages),this.window.removeEventListener("message",this._listenToOneTapMessage),this.window.removeEventListener(h,this.window[e])})}_renderGoogleOneTap(){if(!this._isGoogleOneTapOnCooldown()){let e=this.document.createElement("div");google.accounts.id.initializeIntermediate({src:this._buildUrlAndCopyAttributes(e,e,"googleOneTap")}),this.window.localStorage.removeItem("googleOneTapExpiration"),this.window.addEventListener("message",this._listenToOneTapMessage)}}_listenToOneTapMessage(e){let t="show_intermediate_iframe",{buyerSellerServiceUrl:i}=this.config,{data:s,origin:r}=e,{type:a,height:o,event:n,source:l,token:d}=s;if(a===t||"hide_intermediate_iframe"===a){let e=this.document.getElementById("onetap_google_intermediate_iframe");e&&(e.style.height=o,e.style.display=a===t?"unset":"none")}r===i&&"GOOGLE_SIGN_ON"===l&&("success"===n?(this._setExpirationLsItem(864e5),this._handleQualifyingQuestionsModal(d)):"cancel"===n&&this._setExpirationLsItem(72e5))}_setExpirationLsItem(e){let t=new Date().getTime()+e;this.window.localStorage.setItem("googleOneTapExpiration",t)}_isGoogleOneTapOnCooldown(){return Number(this.window.localStorage.getItem("googleOneTapExpiration"))>new Date().getTime()}_convertGoogleSignIn(e){this._replaceWithIframe("googleSignIn",e)}_convertFacebookSignIn(e){this._replaceWithIframe("facebookSignIn",e)}_replaceWithIframe(e,t){this._attachSuccessCallback(t);let i=this.document.createElement("iframe");i.src=this._buildUrlAndCopyAttributes(t,i,e),i.dataset.isSocialOauthButton=!0,t.replaceWith(i)}_listenToMessages(e){let{buyerSellerServiceUrl:t}=this.config;if(e.origin===t&&"success"===e.data.event){let e=new Event(h);this.window.dispatchEvent(e),r(this.window,this.document),this.successListeners.forEach(t=>{this.window[t]?this.window[t](e):console.error(`Callback function ${t} not found on window object`)}),this.document.documentElement.classList.add("is-login-success")}}_attachSuccessCallback(e){this.window.addEventListener("message",this._listenToMessages);let t=e.dataset.onSuccessFunctionName;t&&this.successListeners.push(t)}_buildUrlAndCopyAttributes(e,t,i){let{buyerSellerServiceUrl:s,companyId:r,websiteId:a,pageId:o,pageMeta:n}=this.config,{location:l}=this.window,d=l.origin+l.pathname,c=new URL(`${s}/buttons/${i}`),u=this.window.localStorage.getItem("utm_vars"),h=this.window.localStorage.getItem("referrer");c.searchParams.append("companyId",r),c.searchParams.append("websiteId",a),c.searchParams.append("pageId",o),c.searchParams.append("sourceUrl",d),c.searchParams.append("pageMeta",JSON.stringify(n)),u&&c.searchParams.append("utm",u),h&&c.searchParams.append("referrer",h);let p=["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"];
1738return Array.from(e.attributes).forEach(e=>{p.includes(e.nodeName)?c.searchParams.append(e.nodeName,e.nodeValue):t.setAttribute("id"===e.nodeName?"data-id":e.nodeName,e.nodeValue)}),c.toString()}_decodeToken(e){try{let t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),i=4-t.length%4,s=4===i?t:t+"=".repeat(i);return JSON.parse(atob(s))}catch(e){return null}}_handleQualifyingQuestionsModal(e){if(e&&this.window.luxuryPresence&&this.window.luxuryPresence.qualifyingQuestionsModal){let t=this._decodeToken(e);t&&t.email&&this.window.luxuryPresence.qualifyingQuestionsModal.showModal(t.email,"Google Sign On")}}}(A,window,document),R=new class extends i{constructor(e,t,i){super(e,t,i),this.showModal=this.showModal.bind(this),this.hasModalBeenSubmitted=this.hasModalBeenSubmitted.bind(this),this.modalId="qualifying-questions-modal",this.cookieKey="qualifyingQuestionsModalSubmitted",this.qualifyingQuestionsModalEnabled=!0,this.eventListeners=[],this.timeouts=[]}initialize(e={}){this.qualifyingQuestionsModalEnabled=e.qualifyingQuestionsModalEnabled??this.qualifyingQuestionsModalEnabled,this.qualifyingQuestionsModalEnabled&&this.attachModalCloseListeners()}destroy(){this.eventListeners.forEach(({element:e,event:t,handler:i})=>{e&&e.removeEventListener&&e.removeEventListener(t,i)}),this.timeouts.forEach(e=>{clearTimeout(e)}),this.restoreBodyScroll(),this.eventListeners=[],this.timeouts=[]}hasModalBeenSubmitted(){return"true"===this.getCookie(this.cookieKey)}setModalSubmittedCookie(){this.setCookie(this.cookieKey,"true",365)}showModal(e,t){!this.qualifyingQuestionsModalEnabled||this.hasModalBeenSubmitted()||(this.updateEmailValue(e),this.updateTriggerSourceValue(t),this.showModalElement())}getModalElement(){let e=this.document.getElementById(this.modalId);return e||console.error("Modal element not found:",this.modalId),e}updateEmailValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector('input[name="email"]');i&&"string"==typeof e&&(i.value=e)}updateTriggerSourceValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector(`#${this.modalId}-triggerSource`);i&&"string"==typeof e&&(i.value=e)}showModalElement(){let e=this.getModalElement();e&&(e.style.display="flex",this.blockBodyScroll())}getCookie(e){let t=`; ${this.document.cookie}`.split(`; ${e}=`);return 2===t.length?decodeURIComponent(t.pop().split(";").shift()):null}setCookie(e,t,i){let s="";if(i){let e=new Date;e.setTime(e.getTime()+864e5*i),s=`; expires=${e.toUTCString()}`}let r="; path=/; SameSite=Lax";this.window&&this.window.location&&"https:"===this.window.location.protocol&&(r+="; Secure"),this.document.cookie=`${e}=${encodeURIComponent(t||"")}${s}${r}`}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(){let e=this.getModalElement();if(!e)return;let t=this.document.getElementById(`${this.modalId}-form`);if(t){let i=()=>{this.setModalSubmittedCookie();let t=setTimeout(()=>{e.style.display="none",this.restoreBodyScroll()},100);this.timeouts.push(t)};t.addEventListener("formsubmitted",i),this.eventListeners.push({element:t,event:"formsubmitted",handler:i})}let i=e.querySelector('[data-dismiss="modal"]');if(i){let t=()=>{e.style.display="none",this.restoreBodyScroll()};i.addEventListener("click",t),this.eventListeners.push({element:i,event:"click",handler:t})}let s=t=>{(t.target===e||t.target.id===this.modalId)&&(e.style.display="none",this.restoreBodyScroll())};e.addEventListener("click",s),this.eventListeners.push({element:e,event:"click",handler:s})}}(A,window,document),B=new class extends i{constructor(e,t,i){super(e,t,i),this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null,this.validationCacheDuration=3e5}destroy(){this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null}async validateSession(e={}){let{useCache:t=!0}=e;if(t&&null!==this.lastValidationResult&&this.lastValidationTime&&Date.now()-this.lastValidationTime<this.validationCacheDuration)return this.lastValidationResult;if(this.isValidating)return null!==this.lastValidationResult&&this.lastValidationResult;this.isValidating=!0;let i=`
1739      query {
1740        validSession {
1741          success
1742        }
1743      }
1744    `;try{let e=await this.window.fetch("/graphql",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({query:i})});if(!e.ok)return console.error("SessionController: HTTP error during session validation",e.status),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let t=await e.json();if(t.errors)return this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let s=t.data?.validSession?.success===!0;return this.lastValidationResult=s,this.lastValidationTime=Date.now(),s}catch(e){return console.error("SessionController: Error validating session",e),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1}finally{this.isValidating=!1}}clearCache(){this.lastValidationResult=null,this.lastValidationTime=null}}(A,window,document),O=new class extends i{constructor(e,t,i){super(e,t,i),this.consentListener=null,this.eventName=null}destroy(){this.consentListener&&this.eventName&&(this.document.removeEventListener(this.eventName,this.consentListener),this.consentListener=null)}loadScript(){this.document.getElementById("posthog-script")||this.window.luxuryPresence.eventBus.initialize({enabled:this.config.eventBus?.enabled}),this.document.getElementById("divolte-script")||this.window.luxuryPresence.divolte.initialize({})}removeScripts(){this.window.luxuryPresence?.eventBus?.destroy?.(),this.window.luxuryPresence?.divolte?.destroy?.(),this.document.getElementById("posthog-script")?.remove(),this.document.getElementById("divolte-script")?.remove()}async initialize(e={}){let t=p[e.provider];if(!t)return;this.eventName=t.eventName;let i=await this.window.luxuryPresence.session.validateSession();(t.hasAnalyticsConsent(this.document,this.window)||i)&&this.loadScript(),this.consentListener||(this.consentListener=e=>{t.isAnalyticsAccepted(e.detail)?this.loadScript():this.removeScripts()},this.document.addEventListener(t.eventName,this.consentListener))}}(A,window,document),V=new class extends i{destroy(){}transformVariables(e,t){let i;return g(i={...t},["testimonialId"]),y(i,["testimonialId"],"testimonialIds"),0===i.limit&&delete i.limit,(void 0===i.limit||null===i.limit)&&(("testimonials"===e||"testimonialsCount"===e)&&(i.limit=50),("agents"===e||"agentsCount"===e||"neighborhoods"===e||"neighborhoodsCount"===e||"posts"===e||"postsCount"===e||"pressReleases"===e||"pressReleasesCount"===e)&&(i.limit=100)),!function(e){let{sortDir:t}=e;"string"==typeof t&&t.includes("_")&&(e.sortDir=t.replace(/_/g," "))}(i),!function(e,t){switch(t){case"agent":break;case"testimonials":case"testimonialsCount":g(e,["testimonialIds"]);break;case"agents":case"agentsCount":g(e,["officeId","teamId","developmentId","agentIds","tags"]),y(e,["officeId"],"officeIds"),y(e,["teamId"],"teamIds"),y(e,["developmentId"],"developmentIds");break;case"neighborhoods":case"neighborhoodsCount":g(e,["neighborhoodIds","neighborhoodId"]),y(e,["neighborhoodIds","neighborhoodId"],"neighborhoodId");break;case"developments":case"developmentsCount":g(e,["agentId","neighborhoodIds","neighborhoodId","developmentIds","tag"]),e.agentId&&Array.isArray(e.agentId)&&([e.agentId]=e.agentId),y(e,["neighborhoodIds","neighborhoodId"],"neighborhoodIds");break;case"properties":case"propertiesCount":g(e,["statusIds","statusId","propertyTypeIds","propertyTypeId","propertyId","networkId","propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","
1744spaceTypeIds","addressState","addressCity","backfillProviders","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"]),["propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","spaceTypeIds","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"].forEach(t=>y(e,[t],t)),y(e,["statusIds","statusId"],"propertyStatusId"),e.excludeStatusId&&(e.excludePropertyStatusId=e.excludeStatusId,delete e.excludeStatusId),y(e,["propertyTypeIds","propertyTypeId"],"propertyTypeId"),y(e,["networkId"],"networkId"),y(e,["propertyId"],"propertyIds"),["salesPriceGTE","salesPriceLTE","leasePriceGTE","leasePriceLTE","livingSpaceSizeGTE","livingSpaceSizeLTE"].forEach(t=>{null!=e[t]&&(e[t]=Math.trunc(Number(e[t])))});break;case"posts":case"postsCount":g(e,["categoryIds","categoryId","neighborhoodId"]),void 0!==e.order&&(e.sort=e.order,delete e.order),y(e,["categoryIds","categoryId"],"categoryId");break;case"postCategories":g(e,["categoryId","categoryIds"]),void 0!==e.order&&(e.sort=e.order,delete e.order),y(e,["categoryIds","categoryId"],"categoryId");break;case"pressReleases":case"pressReleasesCount":g(e,["pressReleaseId","categories","propertyId","developmentId","agentId","teamId"]),y(e,["pressReleaseId"],"pressReleaseIds");break;case"offices":case"officesCount":g(e,["officeId","officeIds","tags"]),y(e,["officeId"],"officeIds");break;case"teams":case"teamsCount":g(e,["teamId","teamIds"]),y(e,["teamId"],"teamIds");break;case"pois":g(e,["categories"]),Array.isArray(e.categories)&&(e.categories=e.categories.map(e=>e.toLowerCase())),"string"==typeof e.sortBy&&(e.sortBy=e.sortBy.toLowerCase())}}(i,e),i}transformResponse(e,t){return"agent"===e?E(t,f):"agents"===e||"agentsCount"===e?I(t,w):"neighborhood"===e?E(t,v):"neighborhoods"===e||"neighborhoodsCount"===e?I(t,b):"development"===e?E(t,S):"developments"===e||"developmentsCount"===e?I(t,_):t}transformPage(e){return{items:e&&e.items||[],count:e&&e.total||0}}}(A,window,document);function D(e,t){if(window.luxuryPresence[e])try{window.luxuryPresence[e].destroy()}catch(e){console.log(e)}window.luxuryPresence[e]=t}D("config",A),D("modals",L),D("buttons",$),D("validation",x),D("contactForms",T),D("mapApiLoader",k),D("pagination",C),D("expandSliders",M),D("divolte",P),D("eventBus",U),D("oauth",N),D("qualifyingQuestionsModal",R),D("session",B),D("consent",O),D("redirects",{checkHstRedirect:function(e){let{config:t}=window.luxuryPresence;return!t.hvStepTwoCaptureEnabled&&!!t.hstValuationRedirectEnabled&&!!t.mlsEnabled&&!!t.myhomeDashboardEnabled&&(window.location.href=`/home-search/home-valuation?address=${encodeURIComponent(e)}`,!0)},destroy(){}}),D("routerApi",V),window.luxuryPresence.formatSliderPriceRange=C.formatSliderPriceRange.bind(C),window.luxuryPresence.formatSliderAreaRange=C.formatSliderAreaRange.bind(C),window.luxuryPresence.getSearchFormValues=C.getSearchFormValues.bind(C),window.luxuryPresence.handlebarsHelpersFactory=function(t){var i;return((i=e)&&i.__esModule?i.default:i)(t,{isEqual:(e,t)=>e==t})}})();
1745//# sourceMappingURL=lp-sdk.js.map
1746
1747    </script>
1747
1748
1749    
1749<script>
1750        var lpGlobalInitialized = false;
1751
1752        function lpGlobalInit () {
1753          if (lpGlobalInitialized) {
1754            return;
1755          }
1756            lpGlobalInitialized = true;
1757            // Initialize wow animation plugin only according to turbolinks
1758            var wow;
1759            if (window.WOW) {
1760                wow = new WOW({
1761                    animateClass: 'animated',
1762                    offset: wowOffset,
1763                    live: false,
1764                    callback: function(box) {}
1765                });
1766            }
1767            // Initialize handlebar helpers only once
1768            function handlebarsInit() {
1769              if (!window.Handlebars) {
1770                return;
1771              }
1772              HandlebarsIntl.registerWith(Handlebars);
1773              Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars));
1774            }
1775
1776            handlebarsInit();
1777
1778            /* Initialize Luxury Presence SDK */
1779            try {
1780                window.luxuryPresence.config.setCompany("8853c562-273b-4c58-a71b-9ef5b2c3920c", {});
1781                window.luxuryPresence.config.setWebsite("96b2125f-da36-451f-8701-3e7494eee5ae", {
1782                    myhomeDashboardEnabled: true,
1783                    mlsEnabled: true,
1784                    hstValuationRedirectEnabled: true,
1785                    hvStepTwoCaptureEnabled: false
1786                });
1787                const url = new URL(window.location.href);
1788                const shareId = url.searchParams.get('shareId');
1789                window.luxuryPresence.config.setPage("b06ec637-ebf2-4f1e-87e3-91f9e0ad625b", {
1790                    sourceResource: "",
1791                    pageElementId: "",
1792                    pageQueryVariables: {},
1793                    shareId: "",
1794                });
1795                window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {});
1796                window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {});
1797                    window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {});
1798                  window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {});
1799                  window.luxuryPresence.config.setEventBus({
1800                    enabled: true,
1801                    apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr",
1802                    url: "https://p.luxurypresence.com",
1803                  });
1804                window.luxuryPresence.config.setTemplateId("dbfbedc7-c7e2-4812-86ee-0ee198862c21", {});
1805                window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {});
1806                window.luxuryPresence.buttons.initialize({});
1807                    window.luxuryPresence.consent.initialize({ provider: 'lp-consent' });
1808                window.luxuryPresence.contactForms.initialize({});
1809                window.luxuryPresence.validation.initialize({});
1810                window.luxuryPresence.expandSliders.initialize({});
1811                window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false });
1812                window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true });
1813            } catch (e) {
1814                console.log(e);
1815            }
1816
1817            /* Inject Section Specific Javascript */
1818                try {
1819(function init(sectionDomId) {
1820  const disclaimerLabel = document.querySelector('#' + sectionDomId + ' .lp-tcr-content');
1821  if (disclaimerLabel) {
1822    const input = disclaimerLabel.querySelector('input');
1823    if (input) {
1824      input.setAttribute('id', `${sectionDomId}-termsAccepted`);
1825      input.value = 'true';
1826      const label = document.createElement('label');
1827      label.setAttribute('for', `${sectionDomId}-termsAccepted`);
1828      label.classList.add('lp-visually-hidden');
1829      label.textContent = 'Opt in/Disclaimer Consent:';
1830      disclaimerLabel.prepend(label);
1831    }
1832  }
1833  function setHttp(link) {
1834    if (link.search(/^http[s]?\:\/\/|\//) == -1) {
1835      link = 'https://' + link;
1836    }
1837    return link;
1838  }
1839  const socialLinks = document.querySelectorAll('#' + sectionDomId + ' .socials__link, #' + sectionDomId + ' .lp-socials__link');
1840  socialLinks.forEach(linkElement => {
1841    const href = linkElement.getAttribute('href');
1842    if (href) {
1843      linkElement.setAttribute('href', setHttp(href));
1844    }
1845  });
1846  const redirectLink = $('#' + sectionDomId + ' .redirect-link');
1847  if (redirectLink.length) {
1848    const rawHref = setHttp(redirectLink.attr('href'));
1849    let formEvent;
1850    if (rawHref) {
1851      formEvent = redirectLink.data('redirect') ? 'formsubmitted' : 'reset';
1852      $('#' + sectionDomId + ' .contact-form').find('form').on(formEvent, function () {
1853        redirectLink.attr('href', rawHref);
1854        redirectLink[0].click();
1855      });
1856    }
1857  }
1858})('modal-global-contact-us');
1859} catch(e) {
1860console.log(e);
1861}
1862                
1863                try {
1864(function init(sectionDomId) {
1865  const $section = $('#' + sectionDomId);
1866  const $hamburger = $section.find('.hamburger-component');
1867  function onSideMenuShow() {
1868    if (!$hamburger.hasClass('active')) {
1869      $hamburger.addClass('active');
1870    }
1871  }
1872  function onSideMenuHide() {
1873    $hamburger.removeClass('active');
1874  }
1875  const $window = $(window);
1876  $window.on('lpui-sidemenu-show.lpui-auto-clean', onSideMenuShow);
1877  $window.on('lpui-sidemenu-hide.lpui-auto-clean', onSideMenuHide);
1878  const $subContainers = $section.find('.navigation__item.sub-nav-container');
1879  $subContainers.hover(function () {
1880    $(this).find('.sub-nav').addClass('visible');
1881  }, function () {
1882    $(this).find('.sub-nav').removeClass('visible');
1883  });
1884  $window.on('click.lpui-auto-clean', function () {
1885    $('.sub-nav-container.visible-dropdown').removeClass('visible-dropdown');
1886  });
1887  let fixedWidth = 0;
1888  const rightPad = 20;
1889  function fixSubsPosition() {
1890    const wWidth = window.innerWidth;
1891    if (innerWidth === fixedWidth) {
1892      return;
1893    }
1894    fixedWidth = wWidth;
1895    $subContainers.each(function () {
1896      const $sub = $(this).find('.sub-nav');
1897      $sub[0].style.right = '';
1898      const sRect = $sub[0].getBoundingClientRect();
1899      const sRight = sRect.left + sRect.width;
1900      if (sRight > wWidth - rightPad) {
1901        const parentRect = $sub[0].offsetParent.getBoundingClientRect();
1902        const parentRight = parentRect.left + parentRect.width;
1903        $sub[0].style.right = `${parentRight - wWidth + rightPad}px`;
1904      }
1905    });
1906  }
1907  var debouncer;
1908  $window.on('resize.lpui-auto-clean', function () {
1909    clearTimeout(debouncer);
1910    debouncer = setTimeout(fixSubsPosition, 500);
1911  });
1912  fixSubsPosition();
1913  if ($('.property-intro').length || $('.property-intro-2').length) {
1914    $('nav').addClass('dark-opening');
1915    $("#global-navbar").css({
1916      "background-color": "rgb(26, 26, 26)",
1917      "color": "rgb(255, 255, 255)"
1918    });
1919  }
1920  function initAutoTruncateMenu() {
1921    const $navbar = $section.find('.navbar');
1922    const $navList = $section.find('.navigation > ul');
1923    if (!$navbar.length || !$navList.length) {
1924      return;
1925    }
1926    const $logo = $section.find('.logo');
1927    const $buttonsWrapper = $section.find('.buttons-wrapper');
1928    const $allItems = $navList.children('.navigation__item');
1929    const $phoneItem = $allItems.filter(function () {
1930      return $(this).find('a[href^="tel:"]').length > 0;
1931    });
1932    const $menuItems = $allItems.not($phoneItem);
1933    if (!$menuItems.length) {
1934      return;
1935    }
1936    const buffer = 8;
1937    function measureFixedWidth() {
1938      let width = buffer;
1939      if ($logo.length) {
1940        width += $logo.outerWidth(true) || 0;
1941      }
1942      if ($buttonsWrapper.length) {
1943        width += $buttonsWrapper.outerWidth(true) || 0;
1944      }
1945      if ($phoneItem.length) {
1946        width += $phoneItem.outerWidth(true) || 0;
1947      }
1948      return width;
1949    }
1950    function truncateMenu() {
1951      if (!$navList.is(':visible')) {
1952        return;
1953      }
1954      $menuItems.css('display', '');
1955      const availableWidth = $navbar[0].getBoundingClientRect().width - measureFixedWidth();
1956      let widthSoFar = 0;
1957      let overflowed = false;
1958      $menuItems.each(function () {
1959        const $item = $(this);
1960        if (overflowed) {
1961          $item.css('display', 'none');
1962          return;
1963        }
1964        widthSoFar += $item.outerWidth(true);
1965        if (widthSoFar > availableWidth) {
1966          $item.css('display', 'none');
1967          overflowed = true;
1968        }
1969      });
1970    }
1971    let truncateFrame;
1972    function scheduleTruncate() {
1973      if (truncateFrame) {
1974        return;
1975      }
1976      truncateFrame = window.requestAnimationFrame(function () {
1977        truncateFrame = null;
1978        truncateMenu();
1979      });
1980    }
1981    scheduleTruncate();
1982    if (window.ResizeObserver) {
1983      const resizeObserver = new ResizeObserver(scheduleTruncate);
1984      resizeObserver.observe($navbar[0]);
1985    } else {
1986      $(window).on('resize.lpui-auto-truncate', scheduleTruncate);
1987    }
1988    $section.find('img').on('load.lpui-auto-truncate', scheduleTruncate);
1989    $(window).on('load.lpui-auto-truncate', scheduleTruncate);
1990    if (document.fonts && document.fonts.ready) {
1991      document.fonts.ready.then(scheduleTruncate);
1992    }
1993  }
1994  initAutoTruncateMenu();
1995})('global-navbar');
1996} catch(e) {
1997console.log(e);
1998}
1999                try {
2000(function init(sectionDomId, options) {
2001  var elementSelector = options.elementSelector || 'nav';
2002  var element = document.querySelector(elementSelector);
2003  var sections = document.querySelectorAll('body > section');
2004  var subNavContainers = element.querySelectorAll('.sub-nav');
2005  var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor;
2006  var backgroundColorScroll = options.backgroundColorScroll || '#191919';
2007  var fontColor = options.fontColor || '#fff';
2008  var fontColorScroll = options.fontColorScroll || '#000';
2009  var didScroll = false;
2010  var lastScrollTop = 0;
2011  var delta = 5;
2012
2013  // eslint-disable-next-line sonarjs/no-collapsible-if
2014  if (wow) {
2015    // Wowjs might not trigger for position fixed elements
2016    if (window.scrollY > 0) {
2017      element.querySelectorAll('.wow').forEach(el => wow.show(el));
2018    }
2019  }
2020  function adjustNavPinState() {
2021    // Remove 'visible' class from all subNavContainers
2022    for (let i = 0; i < subNavContainers.length; i++) {
2023      subNavContainers[i].classList.remove('visible');
2024    }
2025    if (window.scrollY > 0) {
2026      element.style.backgroundColor = backgroundColorScroll;
2027      element.style.color = fontColorScroll;
2028      element.classList.add('scroll');
2029    } else {
2030      element.style.backgroundColor = initialBackgroundColor;
2031      element.style.color = fontColor;
2032      element.classList.remove('scroll');
2033    }
2034  }
2035  adjustNavPinState();
2036  function onScroll() {
2037    didScroll = true;
2038  }
2039  window.addEventListener('scroll', onScroll);
2040
2041  // eslint-disable-next-line
2042  var debounceInterval = setInterval(() => {
2043    if (didScroll) {
2044      // eslint-disable-next-line
2045      hasScrolled();
2046      didScroll = false;
2047    }
2048  }, 250);
2049  function hasScrolled() {
2050    adjustNavPinState();
2051    // eslint-disable-next-line
2052    var navbarHeight = element.offsetHeight;
2053    // eslint-disable-next-line
2054    var st = window.scrollY;
2055
2056    // Make sure they scroll more than delta
2057    if (Math.abs(lastScrollTop - st) <= delta) {
2058      return;
2059    }
2060    if (st > lastScrollTop && st > navbarHeight) {
2061      // Scroll Down
2062      element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`;
2063      document.documentElement.style.setProperty('--global-header-height', '0px');
2064
2065      // Some sections "follow" the navbar with class sticky (i.e. Producer search)
2066      sections.forEach(section => {
2067        if (section.classList.contains('sticky')) {
2068          section.style.top = '0px';
2069        }
2070      });
2071    } else {
2072      // Scroll Up
2073      // eslint-disable-next-line
2074      if (st + window.innerHeight < document.documentElement.scrollHeight) {
2075        element.style.transform = `translateY(0) scaleY(1)`;
2076        document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`);
2077        sections.forEach(section => {
2078          if (section.classList.contains('sticky')) {
2079            section.style.top = `${navbarHeight}px`;
2080          }
2081        });
2082      }
2083    }
2084    lastScrollTop = st;
2085  }
2086})('NAVBAR', JSON.parse("{\"fontColor\":\"#fff\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#fff\",\"initialFontColor\":\"#fff\",\"backgroundColorScroll\":\"#1a1a1a\",\"initialBackgroundColor\":\"rgba(0,0,0,0)\"}"));
2087} catch(e) {
2088console.log(e);
2089}
2090                try {
2091(function init(sectionDomId) {
2092  var $sidemenu = $('#' + sectionDomId);
2093  var shown = false;
2094  function onShow() {
2095    if (shown) {
2096      return;
2097    }
2098    shown = true;
2099    window.lpUI.requestScrollLock(sectionDomId);
2100  }
2101  function onHide(ev, opts) {
2102    if (!shown) {
2103      return;
2104    }
2105    shown = false;
2106    window.lpUI.releaseScrollLock(sectionDomId);
2107    $('body').removeClass('locked');
2108    opts = ev.detail || opts;
2109    if (!opts || !opts.instant) {
2110      $sidemenu.addClass("is-hiding");
2111      setTimeout(function () {
2112        $sidemenu.removeClass("is-hiding");
2113      }, 300);
2114    }
2115  }
2116  $sidemenu.on('lpui-show', onShow);
2117  $(window).on('lpui-sidemenu-hide.lpui-auto-clean', onHide);
2118  $sidemenu.removeClass("is-hiding");
2119})('global-sidemenu');
2120} catch(e) {
2121console.log(e);
2122}
2123                
2124                try {
2125(function init(footerId) {
2126  var textContent = $(".text_content_wrap p").text().trim().length;
2127  const socialLinks = $(`#${footerId} .lp-socials__link`);
2128  if (textContent < 1) {
2129    $(".text_content_wrap").remove();
2130    $(".second_text_footer").css({
2131      'margin-bottom': 0
2132    });
2133  }
2134  if (socialLinks.length > 0) {
2135    socialLinks.attr('data-wow-offset', '10');
2136  }
2137  if ($(window).width() > 1280) {
2138    let footer = document.querySelector("#" + footerId);
2139    let copyrightElem = footer.querySelector(".copy_zone");
2140    if (copyrightElem) {
2141      copyrightElem.style.whiteSpace = "nowrap";
2142      let nowrapElemWidth = copyrightElem.clientWidth;
2143      copyrightElem.style.whiteSpace = "";
2144      let normalElemWidth = copyrightElem.clientWidth;
2145      if (nowrapElemWidth > normalElemWidth) {
2146        footer.querySelector(".form-col--socials").classList.add("form-col--xl-auto");
2147      }
2148    }
2149  }
2150  const form = $("#" + footerId).find("form");
2151  const redirectLink = $('#' + footerId + ' .redirect-link');
2152  form.on("reset", function () {
2153    redirectPage(redirectLink);
2154  });
2155  function redirectPage(link) {
2156    if (link.length) {
2157      const rawHref = link.attr('href');
2158      link.attr('href', setHttp(rawHref));
2159      link[0].click();
2160    }
2161  }
2162  function setHttp(link) {
2163    if (link.search(/^http[s]?\:\/\/|\//) == -1) {
2164      link = 'http://' + link;
2165    }
2166    return link;
2167  }
2168})('global-footer');
2169} catch(e) {
2170console.log(e);
2171}
2172                
2173                try {
2174(function init(options) {})('global-mobile-contact');
2175} catch(e) {
2176console.log(e);
2177}
2178                
2179                try {
2180(function init(sectionDomId, options) {
2181  let section = null;
2182  switch (sectionDomId) {
2183    case 'NAVBAR':
2184      section = document.querySelector('body > nav, #global-navbar');
2185      break;
2186    case 'FOOTER':
2187      section = document.querySelector('body > footer, #global-footer');
2188      break;
2189    case 'SIDEMENU':
2190      section = document.querySelector('body > div.sidemenu, #global-sidemenu');
2191      break;
2192    case 'CONTACT':
2193      section = document.querySelector('#modal-global-contact-us');
2194      break;
2195    case 'MOBILE_CONTACT':
2196      section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact');
2197      break;
2198    case 'SUBSCRIBE':
2199      // Subscribe Not Implemented
2200      section = null;
2201      break;
2202    case 'ACCOUNT':
2203      // Account Not Implemented
2204      section = null;
2205      break;
2206    default:
2207      section = document.querySelector('#' + sectionDomId);
2208  }
2209  if (!section) {
2210    return;
2211  }
2212
2213  // Where content / items are rendered
2214  const dataContainer = section.querySelector('.data-container');
2215  if (!dataContainer) {
2216    // no place to render items = no need to query server or do anything else
2217    return;
2218  }
2219  let variables = options.variables || {};
2220
2221  // Some variables in options may not have been injected - remove
2222  Object.keys(variables).forEach(function (variableName) {
2223    if (typeof variables[variableName] === 'string' && variables[variableName].match(/^{{.*}}$/)) {
2224      delete variables[variableName];
2225    }
2226  });
2227
2228  // Merge page query variables
2229  if (options.usePageResource) {
2230    variables = {
2231      ...variables,
2232      ...window.luxuryPresence.config.pageMeta.pageQueryVariables[options.resource]
2233    };
2234  }
2235
2236  // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Callers
2237  // resolve the flag — fetchData reads the section stamp, aux fetches read
2238  // their own resource's stamp (auxUsesRouter).
2239  function apiUrl(useRouter) {
2240    return options.url || (useRouter ? window.luxuryPresence.defaults.routerUrl : window.luxuryPresence.defaults.apiGatewayUrl);
2241  }
2242
2243  // ROUTER-CLEANUP: aux resources roll out on their own flag, not the section's
2244  // (options.routerApiAux is stamped per aux resource server-side).
2245  function auxUsesRouter(resource) {
2246    return !!(options.routerApiAux && options.routerApiAux[resource]);
2247  }
2248
2249  // Pagination Executes on a Numbered Pagination Container
2250  //  Or via a load more button
2251  let mode = 'BUTTONLESS_PAGINATION';
2252  const container = section.querySelector('.pagination-container');
2253  const loadMoreButton = section.querySelector(options?.loadMoreSelector);
2254  if (container) {
2255    mode = 'NUMBERED_PAGINATION';
2256  }
2257  if (loadMoreButton) {
2258    mode = 'LOAD_MORE_BUTTON';
2259  }
2260  let searchContainer = section.querySelector('.search-container');
2261  const hidePaginationOnFirstPage = options.hidePaginationOnFirstPage || false;
2262  const eventPrefix = '__pagination-';
2263  const searchFormParams = options.searchFormParams || (options.resource === 'properties' ? [{
2264    param: 'neighborhoodId',
2265    urlKey: 'neighborhood'
2266  }, {
2267    param: 'search',
2268    urlKey: 'search'
2269  }, {
2270    param: 'salesPriceGTE',
2271    urlKey: 'pricemin',
2272    formKey: 'priceMin',
2273    type: 'int'
2274  }, {
2275    param: 'salesPriceLTE',
2276    urlKey: 'pricemax',
2277    formKey: 'priceMax',
2278    type: 'int'
2279  }, {
2280    param: 'livingSpaceSizeGTE',
2281    urlKey: 'areamin',
2282    formKey: 'areaMin',
2283    type: 'int'
2284  }, {
2285    param: 'livingSpaceSizeLTE',
2286    urlKey: 'areamax',
2287    formKey: 'areaMax',
2288    type: 'int'
2289  }] : []);
2290
2291  // Total entries - initialized in first render
2292  let totalNumber = 0;
2293  const DefaultSearchParams = {
2294    page: 1
2295  };
2296  searchFormParams.forEach(function (formParam) {
2297    DefaultSearchParams[formParam.formKey || formParam.param] = null;
2298  });
2299  let searchParams = {
2300    ...DefaultSearchParams
2301  };
2302  const offset = options.variables?.offset || 0;
2303  let scrollTarget = options.scrollTargetSelector ? section.querySelector(options.scrollTargetSelector) || section : section;
2304  let scrollOffset = (parseInt(options.scrollOffset, 10) || 0) ?? 100;
2305
2306  // entries of per page
2307  // when query variables for a given section would't be filled options.pageSize can store
2308  // template string, ex: "{{variables.limit}}", below code handles that case and set 9 as a default value
2309  let pageSize = parseInt(options.pageSize, 10) || 9;
2310
2311  // Adding mobile pageRange support
2312  var NARROW_BREAKPOINT = 600;
2313  var mobileBreakpoint = options.mobileBreakpoint > 0 ? options.mobileBreakpoint : NARROW_BREAKPOINT;
2314  var paginationMql = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`);
2315
2316  // Page range (pages on both sides of the current page)
2317  var mobilePageRange = options.mobilePageRange > 0 ? options.mobilePageRange : 0;
2318  var desktopPageRange = options.pageRange >= 0 ? options.pageRange : 2;
2319  var pageRange = paginationMql.matches ? mobilePageRange : desktopPageRange;
2320
2321  // Whether to display the 'Previous' button
2322  var showPrevious = true;
2323
2324  // Whether to display the 'Next' button
2325  var showNext = true;
2326
2327  // Whether to display the page buttons
2328  var showPageNumbers = true;
2329
2330  // 'Previous' text
2331  var prevText = options.prevText || '&laquo;';
2332
2333  // 'Next' text
2334  var nextText = options.nextText || '&raquo;';
2335
2336  // Ellipsis text
2337  var ellipsisText = '&hellip;';
2338  var classPrefix = 'paginationjs';
2339
2340  // Default active class
2341  var activeClassName = 'active';
2342
2343  // Default disable class
2344  var disableClassName = 'disabled';
2345
2346  // Pagination element's position in the container
2347  var position = 'bottom';
2348
2349  // Whether to trigger pagination at initialization
2350  var triggerPagingOnInit = !options.skipInitialLoad;
2351  var showFirstOnEllipsisShow = true;
2352  var showLastOnEllipsisShow = true;
2353
2354  // Instantiated in init()
2355  var el = null;
2356
2357  // Controls scrollTop logic
2358  var firstRender = true;
2359  var renderBySearch = false;
2360  var disabled = false;
2361
2362  // Pagination script class selector
2363  var paginationScriptSelector = options.paginationPartialName ? `.${options.paginationPartialName}` : '.pagination-script';
2364
2365  // Property Specific Image Override if No Image
2366  var propertyPlaceholderImage = window.luxuryPresence.defaults.propertyPlaceholderImage;
2367
2368  // Construct template
2369  var templateHTML = section.querySelector(`script${paginationScriptSelector}`)?.innerHTML || '';
2370  var template = Handlebars.compile(templateHTML);
2371
2372  // Initialize
2373  init();
2374  function init() {
2375    Object.assign(searchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId));
2376
2377    // Append/prepend pagination element to the pagination container
2378    if (mode === 'NUMBERED_PAGINATION') {
2379      el = document.createElement('div');
2380      el.className = 'paginationjs';
2381      container[position === 'bottom' ? 'append' : 'prepend'](el);
2382    }
2383    if (searchContainer) {
2384      initSearchContainer({
2385        fetchNeighborhoods: searchContainer.dataset.fetchNeighborhoods === 'true',
2386        fetchPostCategories: searchContainer.dataset.fetchPostCategories === 'true',
2387        fetchOffices: searchContainer.dataset.fetchOffices === 'true',
2388        fetchRentalRates: searchContainer.dataset.fetchRentalRates === 'true'
2389      }, function () {
2390        syncSearchFormState(searchParams);
2391      });
2392    }
2393
2394    // Bind events
2395    observer();
2396  }
2397  function syncSearchFormState(params) {
2398    searchContainer.dispatchEvent(new CustomEvent('sync', {
2399      detail: params
2400    }));
2401  }
2402  function initSearchContainer(options, done) {
2403    var promises = [];
2404    if (options.fetchNeighborhoods) {
2405      promises.push(fetchAllNeighborhoods(function (neighborhoods) {
2406        searchContainer.dispatchEvent(new CustomEvent('neighborhoods-data', {
2407          detail: {
2408            data: neighborhoods.map(function (item) {
2409              return {
2410                value: item.id,
2411                label: item.name
2412              };
2413            })
2414          }
2415        }));
2416      }));
2417    }
2418    if (options.fetchPostCategories) {
2419      promises.push(fetchPostCategories(function (categories) {
2420        searchContainer.dispatchEvent(new CustomEvent('post-categories-data', {
2421          detail: {
2422            data: categories
2423          }
2424        }));
2425      }));
2426    }
2427    if (options.fetchOffices) {
2428      promises.push(fetchOffices(function (offices) {
2429        searchContainer.dispatchEvent(new CustomEvent('offices-data', {
2430          detail: {
2431            data: offices
2432          }
2433        }));
2434      }));
2435    }
2436    if (options.fetchRentalRates) {
2437      promises.push(fetchAllRentalRates(function (rentalRates) {
2438        searchContainer.dispatchEvent(new CustomEvent('rental-rates-data', {
2439          detail: {
2440            data: rentalRates
2441          }
2442        }));
2443      }));
2444    }
2445    if (promises.length > 0) {
2446      Promise.all(promises).then(function () {
2447        done();
2448      });
2449    } else {
2450      // element's custom code is not executed yet, so we're scheduling callback to after element's code
2451      setTimeout(done);
2452    }
2453  }
2454  function fetchAllNeighborhoods(done) {
2455    var useRouter = auxUsesRouter('neighborhoods');
2456    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Same
2457    // args on both APIs (the federated neighborhoods field accepts
2458    // withProperties/withBlogPosts); only the selection set differs.
2459    var gqlQuery = 'query ($companyId: String, $withProperties: NeighborhoodPropertiesFilter, $withBlogPosts: NeighborhoodBlogPostsFilter, $offset: Int, $limit: Int) {' + 'neighborhoods (companyId: $companyId, withProperties: $withProperties, withBlogPosts: $withBlogPosts, offset: $offset, limit: $limit) {' + (useRouter ? 'items {id, name}' : 'id, name') + '}}';
2460    var payload = {};
2461    payload.offset = 0;
2462    payload.limit = 100;
2463    payload.companyId = variables.companyId;
2464    if (options.resource === 'properties') {
2465      payload.withProperties = {
2466        active: true
2467      };
2468      ['agentIds', 'tag', 'propertyTypeId', 'statusIds', 'architectureStyle', 'lifestyle', 'salesPriceGTE', 'salesPriceLTE', 'leasePriceGTE', 'leasePriceLTE', 'livingSpaceSizeGTE', 'livingSpaceSizeLTE', 'bathCountGTE', 'bathCountLTE', 'bedroomCountGTE', 'bedroomCountLTE', 'bathCountGTE', 'bathCountLTE', 'bedroomCountGTE', 'bedroomCountLTE', 'featuredListing', 'leaseProperty', 'neighborhoodId', 'developmentId', 'openHouse'].forEach(function (field) {
2469        if (variables[field] !== undefined && variables[field] !== null) {
2470          payload.withProperties[field] = variables[field];
2471        }
2472      });
2473    }
2474    if (options.resource === 'posts') {
2475      payload.withBlogPosts = {
2476        active: true
2477      };
2478      ['search', 'postStatusId', 'featured', 'categoryId', 'categoryIds', 'neighborhoodId', 'slug'].forEach(function (field) {
2479        if (variables[field] !== undefined && variables[field] !== null) {
2480          payload.withBlogPosts[field] = variables[field];
2481        }
2482      });
2483    }
2484
2485    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2486    if (useRouter) {
2487      payload = window.luxuryPresence.routerApi.transformVariables('neighborhoods', payload);
2488    }
2489    superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({
2490      query: gqlQuery,
2491      variables: payload
2492    }).then(function (res) {
2493      var value = res.body.data && res.body.data.neighborhoods || {};
2494      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2495      var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || [];
2496      done(items, items.length);
2497    });
2498  }
2499  function fetchPostCategories(done) {
2500    var featured = options.resource === 'posts' && !!variables.featured;
2501    var useRouter = auxUsesRouter('postCategories');
2502    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the
2503    // selection set differs ({ items {...} } on the router).
2504    var selection = 'id, name, publishedCount, featuredPublishedCount';
2505    var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'postCategories (companyId: $companyId, offset: $offset, limit: $limit ' + (featured ? ' withFeaturedPublishedOnly: true' : ' withPublishedOnly: true') + ') {' + (useRouter ? 'items {' + selection + '}' : selection) + '}}';
2506    var payload = {};
2507    payload.offset = 0;
2508    payload.limit = 100;
2509    payload.companyId = variables.companyId;
2510    superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({
2511      query: gqlQuery,
2512      variables: payload
2513    }).then(function (res) {
2514      var value = res.body.data && res.body.data.postCategories || {};
2515      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2516      var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || [];
2517      done(items.map(function (item) {
2518        item.count = featured ? item.featuredPublishedCount : item.publishedCount;
2519        return item;
2520      }), items.length);
2521    });
2522  }
2523  function fetchOffices(done) {
2524    var useRouter = auxUsesRouter('offices');
2525    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the
2526    // selection set differs ({ items {...} } on the router).
2527    var selection = 'id, name, tags';
2528    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. The two
2529    // APIs differ in more than the items wrapper: federated offices takes
2530    // companyId: ID! (legacy gateway: String), so each branch builds its whole doc.
2531    var gqlQuery = useRouter ? 'query ($companyId: ID!, $offset: Int, $limit: Int) {' + 'offices (companyId: $companyId, offset: $offset, limit: $limit) {' + 'items {' + selection + '}}}' : 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'offices (companyId: $companyId, offset: $offset, limit: $limit) {' + selection + '}}';
2532    var payload = {
2533      offset: 0,
2534      limit: 100,
2535      companyId: variables.companyId
2536    };
2537
2538    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2539    if (useRouter) {
2540      payload = window.luxuryPresence.routerApi.transformVariables('office
2540s', payload);
2541    }
2542    superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({
2543      query: gqlQuery,
2544      variables: payload
2545    }).then(function (res) {
2546      var value = res.body.data && res.body.data.offices || {};
2547      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2548      var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || [];
2549      done(items, items.length);
2550    });
2551  }
2552
2553  // ROUTER-CLEANUP: no rentalRates field on the federated router — legacy only.
2554  function fetchAllRentalRates(done) {
2555    var url = options.url || window.luxuryPresence.defaults.apiGatewayUrl;
2556    var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'rentalRates (companyId: $companyId, offset: $offset, limit: $limit) {rentalRateId, label}}';
2557    var payload = {
2558      offset: 0,
2559      limit: 100,
2560      companyId: variables.companyId
2561    };
2562    superagent.post(url + '/graphql').withCredentials().send({
2563      query: gqlQuery,
2564      variables: payload
2565    }).then(function (res) {
2566      var items = res.body.data && res.body.data.rentalRates || [];
2567      done(items, items.length);
2568    }).catch(function (err) {
2569      console.error('Error fetching rental rates:', err);
2570      done([], 0);
2571    });
2572  }
2573  function fetchData(params, done) {
2574    var resource = options.resource;
2575    var gqlQuery = options.query || window.luxuryPresence.defaults.gql[resource];
2576    var payload = {};
2577    try {
2578      payload = JSON.parse(JSON.stringify(variables));
2579    } catch (e) {
2580      Object.keys(variables).forEach(function (variableName) {
2581        payload[variableName] = variables[variableName];
2582      });
2583    }
2584    payload.offset = (params.page - 1) * pageSize + offset;
2585    payload.limit = pageSize;
2586    payload.companyId = options.companyId;
2587    searchFormParams.forEach(function (formParam) {
2588      var val = params[formParam.formKey || formParam.param];
2589      if (val !== null && val !== undefined) {
2590        objSet(payload, formParam.param, val);
2591      }
2592    });
2593
2594    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2595    if (options.useRouterApi) {
2596      payload = window.luxuryPresence.routerApi.transformVariables(resource, payload);
2597    }
2598
2599    // TODO: Disabled loading due to jarring effect
2600    // dataContainer.html('Loading...');
2601    superagent.post(apiUrl(options.useRouterApi) + '/graphql').withCredentials().send({
2602      query: gqlQuery,
2603      variables: payload
2604    }).then(function (res) {
2605      if (res.body.errors) {
2606        done(res.body.errors);
2607        return;
2608      }
2609      var data = res.body.data || {};
2610      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2611      var resources;
2612      var resourceCount;
2613      if (options.useRouterApi) {
2614        var page = window.luxuryPresence.routerApi.transformPage(data[resource]);
2615        resources = window.luxuryPresence.routerApi.transformResponse(resource, page.items);
2616        resourceCount = page.count;
2617      } else {
2618        resources = data[resource] || [];
2619        resourceCount = data[resource + 'Count'] && data[resource + 'Count'].count ? data[resource + 'Count'].count : 0;
2620      }
2621      if (resource === 'properties' && propertyPlaceholderImage?.id) {
2622        resources = resources.map(resource => {
2623          if (resource.media?.length === 0) {
2624            return Object.assign(resource, {
2625              media: [propertyPlaceholderImage]
2626            });
2627          }
2628          return resource;
2629        });
2630      }
2631      done(null, resources, resourceCount);
2632    });
2633  }
2634  function getTotalPage() {
2635    return Math.ceil(totalNumber / pageSize);
2636  }
2637  function renderPaginationList() {
2638    var totalPages = getTotalPage();
2639    var rangeStart = searchParams.page - pageRange;
2640    var rangeEnd = searchParams.page + pageRange;
2641    if (rangeEnd > totalPages) {
2642      rangeEnd = totalPages;
2643      rangeStart = totalPages - pageRange * 2;
2644      rangeStart = rangeStart < 1 ? 1 : rangeStart;
2645    }
2646    if (rangeStart <= 1) {
2647      rangeStart = 1;
2648      rangeEnd = Math.min(pageRange * 2 + 1, totalPages);
2649    }
2650
2651    // Making sure that 1 more page button is shown in edge positions
2652    if (pageRange === 0) {
2653      if (searchParams.page === totalPages) {
2654        rangeStart = totalPages <= 1 ? 1 : totalPages - 1;
2655      }
2656      if (searchParams.page === 1) {
2657        rangeEnd = Math.min(2, totalPages);
2658      }
2659    }
2660
2661    // Render pagination list
2662    if (mode === 'NUMBERED_PAGINATION') {
2663      el.innerHTML = generateHTML({
2664        currentPage: searchParams.page,
2665        pageRange: pageRange,
2666        rangeStart: rangeStart,
2667        rangeEnd: rangeEnd
2668      });
2669      if (totalPages < 2 && hidePaginationOnFirstPage) {
2670        container.style.display = 'none';
2671      } else {
2672        container.style.display = '';
2673      }
2674    } else if (mode === 'LOAD_MORE_BUTTON') {
2675      if (searchParams.page >= totalPages) {
2676        loadMoreButton.style.display = 'none';
2677      } else {
2678        loadMoreButton.style.display = '';
2679      }
2680    }
2681  }
2682  function render(data) {
2683    renderPaginationList();
2684
2685    // Render new content with handlebars
2686    var html = '';
2687    if (mode === 'LOAD_MORE_BUTTON' && searchParams.page > 1) {
2688      // If using load more, append search results to existing results
2689      html = dataContainer.innerHTML;
2690    }
2691    for (var i = 0; i < data.length; i++) {
2692      var itemData = recursivelyParse(data[i]);
2693      itemData.sectionIndex = options.sectionIndex;
2694      itemData.renderOptions = options.renderOptions;
2695      html += template(itemData);
2696    }
2697    dataContainer.innerHTML = html;
2698
2699    // Scroll Top
2700    if (!firstRender && mode === 'NUMBERED_PAGINATION' && (!renderBySearch || !options.skipScrollOnSearch)) {
2701      // Only animate to the top if we replace dataContainer (numbered pagination)
2702      setTimeout(() => {
2703        const scrollTargetOffsetTop = scrollTarget.getBoundingClientRect().top + window.scrollY - scrollOffset;
2704        window.scrollTo({
2705          top: scrollTargetOffsetTop,
2706          behavior: 'smooth'
2707        });
2708      }, 250);
2709    }
2710    return true;
2711  }
2712  function generateHTML(args) {
2713    const totalPages = getTotalPage();
2714    const {
2715      rangeStart,
2716      rangeEnd
2717    } = args;
2718    const makeLnk = page => window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, {
2719      ...searchParams,
2720      page
2721    });
2722    let html = '';
2723    if (showPrevious || showPageNumbers || showNext) {
2724      html += '<div class="paginationjs-pages"><ul>';
2725
2726      // Previous button
2727      if (showPrevious) {
2728        if (searchParams.page <= 1) {
2729          html += `<li class="${classPrefix}-prev ${disableClassName}"><a>${prevText}</a></li>`;
2730        } else {
2731          html += `<li class="${classPrefix}-prev J-paginationjs-previous" data-num="${searchParams.page - 1}" title="Previous page"><a href="${makeLnk(searchParams.page - 1)}">${prevText}</a></li>`;
2732        }
2733      }
2734
2735      // Pages
2736      if (showPageNumbers) {
2737        if (rangeStart <= 3) {
2738          for (let i = 1; i < rangeStart; i++) {
2739            html += `<li class="${classPrefix}-page J-paginationjs-page ${i === searchParams.page ? activeClassName : ''}" data-num="${i}"><a ${i === searchParams.page ? '' : `href="${makeLnk(i)}"`}>${i}</a></li>`;
2740          }
2741        } else {
2742          if (showFirstOnEllipsisShow) {
2743            html += `<li class="${classPrefix}-page ${classPrefix}-first J-paginationjs-page" data-num="1"><a href="${makeLnk(1)}">1</a></li>`;
2744          }
2745          html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`;
2746        }
2747        for (let i = rangeStart; i <= rangeEnd; i++) {
2748          html += `<li class="${classPrefix}-page J-paginationjs-page ${i === searchParams.page ? activeClassName : ''}" data-num="${i}"><a ${i === searchParams.page ? '' : `href="${makeLnk(i)}"`}>${i}</a></li>`;
2749        }
2750        if (rangeEnd < totalPages - 2) {
2751          html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`;
2752          if (showLastOnEllipsisShow) {
2753            html += `<li class="${classPrefix}-page ${classPrefix}-last J-paginationjs-page" data-num="${totalPages}"><a href="${makeLnk(totalPages)}">${totalPages}</a></li>`;
2754          }
2755        } else {
2756          for (let i = rangeEnd + 1; i <= totalPages; i++) {
2757            html += `<li class="${classPrefix}-page J-paginationjs-page" data-num="${i}"><a href="${makeLnk(i)}">${i}</a></li>`;
2758          }
2759        }
2760      }
2761
2762      // Next button
2763      if (showNext) {
2764        if (searchParams.page >= totalPages) {
2765          html += `<li class="${classPrefix}-next ${disableClassName}"><a>${nextText}</a></li>`;
2766        } else {
2767          html += `<li class="${classPrefix}-next J-paginationjs-next" data-num="${searchParams.page + 1}" title="Next page"><a href="${makeLnk(searchParams.page + 1)}">${nextText}</a></li>`;
2768        }
2769      }
2770      html += '</ul></div>';
2771    }
2772    return html;
2773  }
2774  function go(newSearchParams, callback, restorationVisit) {
2775    if (disabled) return;
2776    var goToPageNumber = newSearchParams.page;
2777
2778    // Page number is out of bounds
2779    if (!goToPageNumber || goToPageNumber < 1) return;
2780    var totalPage = getTotalPage();
2781
2782    // Page number is out of bounds
2783    if (!restorationVisit && totalNumber > 0) {
2784      if (goToPageNumber > totalPage) return;
2785    }
2786    if (!options.skipSerialization && (mode === 'NUMBERED_PAGINATION' || searchContainer)) {
2787      var newURL = window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, {
2788        ...newSearchParams,
2789        page: goToPageNumber !== 1 && mode === 'NUMBERED_PAGINATION' ? newSearchParams.page : null
2790      });
2791      if (!areQueryParamsEqual(newSearchParams, searchParams) && !restorationVisit) {
2792        window.history.pushState({}, '', window.luxuryPresence.getPath(newURL, {
2793          queryString: true
2794        }));
2795      }
2796    }
2797
2798    // Fetch and update page
2799    fetchData(newSearchParams, renderWithData);
2800    disabled = true;
2801    function renderWithData(err, data, count) {
2802      if (err) {
2803        dataContainer.dispatchEvent(new Event('error'));
2804      } else {
2805        searchParams = {
2806          ...newSearchParams
2807        };
2808        totalNumber = count - offset;
2809        if (data.length === 0) {
2810          dataContainer.dispatchEvent(new Event('no-data'));
2811        } else {
2812          dataContainer.dispatchEvent(new Event('data'));
2813        }
2814        render(data);
2815        firstRender = false;
2816      }
2817      disabled = false;
2818      renderBySearch = false;
2819    }
2820  }
2821  function areQueryParamsEqual(first, second) {
2822    var differ = Object.keys(first).find(function (key) {
2823      return first[key] !== undefined && first[key] !== null && first[key] !== second[key];
2824    });
2825    if (differ) {
2826      return false;
2827    }
2828    differ = Object.keys(second).find(function (key) {
2829      return second[key] !== undefined && second[key] !== null && second[key] !== first[key];
2830    });
2831    return !differ;
2832  }
2833  function next(callback) {
2834    go({
2835      ...searchParams,
2836      page: searchParams.page + 1
2837    }, callback);
2838  }
2839  function previous(callback) {
2840    go({
2841      ...searchParams,
2842      page: searchParams.page - 1
2843    }, callback);
2844  }
2845  function refresh(callback) {
2846    go(searchParams, callback);
2847  }
2848  function update(params, callback) {
2849    renderBySearch = true;
2850    go(params, callback);
2851  }
2852  function observer() {
2853    if (searchContainer) {
2854      searchContainer.addEventListener('search', function (event, newSearchParams) {
2855        newSearchParams = event.detail || newSearchParams;
2856        update({
2857          ...searchParams,
2858          ...newSearchParams,
2859          page: 1
2860        });
2861      });
2862      searchContainer.addEventListener('clear-search', function () {
2863        const defaultSearchParams = {
2864          ...DefaultSearchParams
2865        };
2866        const isCurrentSearchFormStateDefault = areQueryParamsEqual({
2867          ...defaultSearchParams,
2868          page: null
2869        }, {
2870          ...searchParams,
2871          page: null
2872        });
2873
2874        // if mode is LOAD_MORE_BUTTON we should't make anything on clear
2875        // when search form have default state
2876        if (isCurrentSearchFormStateDefault && mode !== 'NUMBERED_PAGINATION') {
2877          return;
2878        }
2879
2880        // if someone initially go to some page and click 'Clear' on search from
2881        // we should't navigate to first page. We should preserve page value
2882        if (isCurrentSearchFormStateDefault) {
2883          defaultSearchParams.page = searchParams.page;
2884        }
2885        syncSearchFormState(defaultSearchParams);
2886        update(defaultSearchParams);
2887      });
2888    }
2889    if (mode === 'LOAD_MORE_BUTTON') {
2890      loadMoreButton.addEventListener('click', function (event) {
2891        go({
2892          ...searchParams,
2893          page: searchParams.page + 1
2894        });
2895        return false;
2896      });
2897    }
2898    if (mode === 'LOAD_MORE_BUTTON' || mode === 'BUTTONLESS_PAGINATION') {
2899      // Do initial render
2900      go(Object.assign({}, searchParams, {
2901        page: 1
2902      }));
2903      return;
2904    }
2905    if (mode === 'NUMBERED_PAGINATION') {
2906      // Go to specified page number
2907      container.addEventListener(eventPrefix + 'go', function (event) {
2908        let {
2909          pageNumber,
2910          done
2911        } = event.detail || {};
2912        pageNumber = parseInt(pageNumber, 10);
2913        if (!pageNumber) {
2914          return;
2915        }
2916        go({
2917          ...searchParams,
2918          page: pageNumber
2919        }, done);
2920      });
2921
2922      // Page number button click
2923      el.addEventListener('click', function (event) {
2924        let clickTarget = event.target;
2925        let current = clickTarget.closest('.J-paginationjs-page, .J-paginationjs-previous, .J-paginationjs-next');
2926        let pageNumber = current?.getAttribute('data-num');
2927        if (!pageNumber || current.classList.contains(disableClassName) || current.classList.contains(activeClassName)) {
2928          return;
2929        } else {
2930          go({
2931            ...searchParams,
2932            page: parseInt(pageNumber, 10)
2933          });
2934        }
2935        event.preventDefault();
2936      });
2937
2938      // Whether to load the default page
2939      var defaultPageNumber = searchParams.page;
2940      if (triggerPagingOnInit) {
2941        container.dispatchEvent(new CustomEvent(eventPrefix + 'go', {
2942          detail: {
2943            pageNumber: defaultPageNumber
2944          }
2945        }));
2946      }
2947    }
2948    window.addEventListener('popstate', function (event) {
2949      var newParams = Object.assign({}, DefaultSearchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId));
2950      if (!areQueryParamsEqual(newParams, searchParams)) {
2951        go(newParams, null, true);
2952        if (searchContainer) {
2953          syncSearchFormState(newParams);
2954        }
2955      }
2956    });
2957  }
2958  function replaceVariables(template, variables) {
2959    var formattedString;
2960    for (var key in variables) {
2961      var value = variables[key];
2962      var regexp = new RegExp('<%=\\s*' + key + '\\s*%>', 'img');
2963      formattedString = (formattedString || template).replace(regexp, value);
2964    }
2965    return formattedString;
2966  }
2967  function isTextEditorValue(obj) {
2968    return 'raw' in obj || 'gjs' in obj;
2969  }
2970  function getTextEditorValue(obj) {
2971    if (!obj.html) {
2972      return '';
2973    }
2974    var data = obj.html;
2975    var css = (obj.raw || obj.gjs || {}).css;
2976    if (css) {
2977      data = data + '<style>' + css + '</style>';
2978    }
2979    return data;
2980  }
2981
2982  /**
2983   * check rendered resources for html and raw properties that could indicate if resource is from an advanced text editor.
2984   * strips out raw proprties and returns only HTML if it exists.
2985   * @param {Object} resources a collection retrieved from the database
2986   * @return {Object} the newly modified object.
2987   */
2988  function recursivelyParse(resources) {
2989    forEach(resources, function (value, key) {
2990      if (!value) {
2991        return;
2992      }
2993      if (value instanceof Object) {
2994        if (isTextEditorValue(value)) {
2995          resources[key] = getTextEditorValue(value);
2996          return;
2997        } else {
2998          return recursivelyParse(value);
2999        }
3000      }
3001      try {
3002        var parsedData = JSON.parse(value);
3003        if (isTextEditorValue(parsedData)) {
3004          resources[key] = getTextEditorValue(parsedData);
3005        }
3006      } catch (e) {
3007        // do nothing if we failed to parse value as JSON
3008      }
3009    });
3010    return resources;
3011  }
3012  function forEach(collection, iteratee) {
3013    var func = Array.isArray(collection) ? arrayEach : baseFor;
3014    return func(collection, iteratee);
3015  }
3016  function baseFor(object, iteratee) {
3017    if (!object) {
3018      return;
3019    }
3020    var iterable = Object(object);
3021    var props = Object.keys(object);
3022    var length = props.length;
3023    var index = -1;
3024    while (length--) {
3025      var key = props[++index];
3026      if (iteratee(iterable[key], key, iterable) === false) {
3027        break;
3028      }
3029    }
3030    return object;
3031  }
3032  function objSet(obj, path, value) {
3033    const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g);
3034    pathArray.reduce((acc, key, i) => {
3035      if (acc[key] === undefined) acc[key] = {};
3036      if (i === pathArray.length - 1) acc[key] = value;
3037      return acc[key];
3038    }, obj);
3039  }
3040  function arrayEach(array, iteratee) {
3041    var index = -1;
3042    var length = array.length;
3043    while (++index < length) {
3044      if (iteratee(array[index], index, array) === false) {
3045        break;
3046      }
3047    }
3048    return array;
3049  }
3050  function selectPageRangeMode(e) {
3051    pageRange = e.matches ? mobilePageRange : desktopPageRange;
3052    renderPaginationList();
3053  }
3054  paginationMql.addEventListener('change', selectPageRangeMode);
3055})('section-109ad32a-04ff-4f2e-9203-cb2104dad1b9', JSON.parse("{\"pageSize\":\"6\",\"resource\":\"agents\",\"pageRange\":0,\"variables\":{\"limit\":6,\"offset\":0,\"companyId\":\"8853c562-273b-4c58-a71b-9ef5b2c3920c\",\"categoryId\":\"{{pageElement.categoryId}}\"},\"searchFormParams\":[{\"param\":\"search\",\"urlKey\":\"search\"},{\"param\":\"officeId\",\"global\":true,\"urlKey\":\"officeId\"},{\"param\":\"tags\",\"global\":true,\"urlKey\":\"area\"}],\"skipScrollOnSearch\":false,\"scrollTargetSelector\":\".search-form\",\"hidePaginationOnFirstPage\":true,\"companyId\":\"8853c562-273b-4c58-a71b-9ef5b2c3920c\",\"usePageResource\":false,\"sectionIndex\":2,\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":false,\"pressReleases\":false,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":false}}"));
3056} catch(e) {
3057console.log(e);
3058}
3059                try {
3060(function init(sectionDomId) {
3061  const $section = $("#" + sectionDomId);
3062  const $searchContainer = $section.find(".search-container");
3063  const $officeSelect = $section.find('.js-office-input');
3064  const $tagSelect = $section.find('.js-tag-input');
3065  const $searchInput = $section.find('.js-search-input');
3066  const $emptyMsg = $section.find('.js-empty-message');
3067  const $dataContainer = $section.find('.data-container');
3068  const $containter = $section.find('.js-container');
3069  const officeFilter = $searchContainer.data('fetchOffices');
3070  const $resetSearchInput = $searchContainer.find('.lp-input-reset');
3071  convertSelectToDropdown($tagSelect);
3072  $resetSearchInput.on('click', function (event) {
3073    event.preventDefault();
3074    $searchInput.val('');
3075    onSearch();
3076  });
3077  $dataContainer.on("data", function () {
3078    $emptyMsg.removeClass("visible");
3079    $containter.removeClass('no-data');
3080  });
3081  $dataContainer.on("no-data", function () {
3082    $emptyMsg.addClass("visible");
3083    $containter.addClass('no-data');
3084  });
3085  $searchInput.on('input', window.luxuryPresence.debounce(onSearch, 1000));
3086  function onSearch() {
3087    const params = {};
3088    if (officeFilter) params.officeId = $officeSelect.val() === '' ? null : [$officeSelect.val()];
3089    if ($tagSelect.length > 0) params.tags = $tagSelect.val() === '' ? null : [$tagSelect.val()];
3090    params.search = $searchInput.val() || null;
3091    $searchContainer[0]?.dispatchEvent(new CustomEvent('search', {
3092      detail: params
3093    }));
3094  }
3095  if (!officeFilter && $tagSelect.length === 0) return;
3096  var previousOption = '';
3097  $searchContainer.on('offices-data', function (evt) {
3098    let {
3099      data
3100    } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3101    data = evt.detail?.data || data;
3102    $officeSelect.append(data.map(office => `<option value="${office.id}">${office.name}</option>`).join("\n"));
3103    convertSelectToDropdown($officeSelect);
3104  });
3105  function updateDropdown(select, value) {
3106    let $dropdown = $(select).next();
3107    let $dropdownToggle = $dropdown.find(".custom-select-toggle");
3108    let $dropdownContent = $dropdown.find(".custom-select-content");
3109    let $selectedOption = $dropdownContent.find(`button[value="${value}"]`);
3110    function unselectOption() {
3111      $linkedOption = $originalSelect.find("option").eq(0);
3112      $linkedOption.prop("selected", true);
3113      $dropdownToggle.html($linkedOption.html());
3114      $dropdownContent.find(".custom-select-item").removeClass("is-selected");
3115      $originalSelect.change();
3116      previousOption = "";
3117    }
3118    if (!$selectedOption) return;
3119    if ($selectedOption.hasClass("is-disabled")) return;
3120    let elementNumber = $selectedOption.index();
3121    let $originalSelect = $selectedOption.closest(".custom-select").siblings("select");
3122    let $linkedOption = $originalSelect.find("option").eq(elementNumber);
3123    if (previousOption === value) {
3124      unselectOption();
3125      return;
3126    }
3127    if (!$linkedOption.prop("selected")) {
3128      $linkedOption.prop("selected", true);
3129      previousOption = value;
3130      $originalSelect.change();
3131      $selectedOption.addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected");
3132      closeSelectMenu($selectedOption.closest(".custom-select-menu"));
3133      $dropdownToggle.html($linkedOption.html());
3134      if ($linkedOption.val()) {
3135        $dropdownToggle.removeClass("is-placeholder");
3136        $dropdown[$linkedOption.val() !== "" ? "addClass" : "removeClass"]("has-selection");
3137      } else {
3138        $dropdown.removeClass("has-selection");
3139        $dropdownToggle.addClass("is-placeholder");
3140      }
3141    }
3142  }
3143  function convertSelectToDropdown(selectItem) {
3144    let customDropdown = `
3145          <div class="custom-select" role="presentation">
3146              <button class="custom-select-toggle" type="button" aria-haspopup="true" aria-expanded="false"></button>
3147              <div class="custom-select-menu">
3148                  <div class="custom-select-content">
3149                  </div>
3150              </div>
3151          </div>`;
3152    $(customDropdown).insertAfter(selectItem);
3153    let $dropdown = $(selectItem).next();
3154    let $dropdownToggle = $dropdown.find(".custom-select-toggle");
3155    let $dropdownMenu = $dropdown.find(".custom-select-menu");
3156    let $dropdownContent = $dropdown.find(".custom-select-content");
3157    $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select");
3158    $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom");
3159    $dropdownToggle.attr("data-name", $(selectItem).attr("name"));
3160    $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id"));
3161    appendOptionButtons(selectItem, $dropdownContent);
3162    $(selectItem).removeClass().addClass("sr-only");
3163    $(selectItem).on("focus", function () {
3164      showSelectMenu($dropdownMenu[0]);
3165      $dropdownToggle.focus();
3166    });
3167    var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text();
3168    $dropdownToggle.addClass("is-placeholder").html(toggleText);
3169    $dropdown.on("click", ".custom-select-item", function (e) {
3170      updateDropdown($(this).closest(".lp-input-group").find("select"), $(this).attr("value"));
3171    });
3172    function convertOptionToButton(option) {
3173      var optionText = $(option).text();
3174      var optionValue = $(option).attr("value") || $(option).text();
3175      var optionIsDisabled = $(option).prop("disabled");
3176      var outputButton = `<button value="${optionValue}" class="custom-select-item lp-icon" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`;
3177      return outputButton;
3178    }
3179    function appendOptionButtons(selectItem, appendTarget) {
3180      $(selectItem).find("option").each(function () {
3181        let currentButton = convertOptionToButton(this);
3182        $(appendTarget).append(currentButton);
3183      });
3184    }
3185    function showSelectMenu(selectMenu) {
3186      var customSelect = $(selectMenu).closest(".custom-select")[0];
3187      customSelect.classList.add('open');
3188      $(selectMenu).slideDown();
3189    }
3190    $dropdown.on("click", ".custom-select-toggle", function (e) {
3191      var $customSelect = $(this).closest(".custom-select");
3192      var selectMenu = $customSelect.find(".custom-select-menu")[0];
3193      if ($customSelect.hasClass("open")) {
3194        closeSelectMenu(selectMenu);
3195      } else {
3196        showSelectMenu(selectMenu);
3197      }
3198    });
3199    $(document.body).on("click", function (e) {
3200      if (!$(e.target).closest(`#${sectionDomId} .js-select-input`).length) {
3201        $(`#${sectionDomId} .custom-select.open`).each(function () {
3202          const selectMenu = $(this).find(".custom-select-menu")[0];
3203          closeSelectMenu(selectMenu);
3204        });
3205      }
3206    });
3207  }
3208  function closeSelectMenu(selectMenu) {
3209    var customSelect = $(selectMenu).closest(".custom-select")[0];
3210    $(customSelect).removeClass("open");
3211    $(selectMenu).slideUp();
3212  }
3213  $officeSelect.change(onSearch);
3214  $tagSelect.change(onSearch);
3215})('section-109ad32a-04ff-4f2e-9203-cb2104dad1b9', JSON.parse("{\"resource\":\"agents\",\"useRouterApi\":false,\"companyId\":\"8853c562-273b-4c58-a71b-9ef5b2c3920c\",\"usePageResource\":false,\"sectionIndex\":2,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":false,\"pressReleases\":false,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":false}}"));
3216} catch(e) {
3217console.log(e);
3218}
3219                try {
3220(function init(sectionDomId) {
3221  const $section = $('#' + sectionDomId);
3222  if ($section.find('.parallax').length) $section.addClass('parallax-enabled');
3223  if ($section.find('.video-wrapper').length) $section.addClass('video');
3224  slider = $section.find('.js-slider');
3225  var autoscroll = slider.attr('data-autoscroll') === 'true';
3226  var autoscrollInterval = parseInt(slider.attr('data-autoscroll-interval'), 10) || 6;
3227  if (slider.length > 0) {
3228    slider.slick({
3229      dots: false,
3230      fade: true,
3231      speed: 300,
3232      arrows: true,
3233      infinite: true,
3234      nextArrow: ".featured-testimonials .slick-links-nav .next",
3235      prevArrow: ".featured-testimonials .slick-links-nav .prev",
3236      slidesToShow: 1,
3237      adaptiveHeight: true,
3238      slidesToScroll: 1,
3239      autoplay: autoscroll,
3240      autoplaySpeed: autoscrollInterval * 1000
3241    });
3242  }
3243})('section-dbb2776b-e19b-40a0-a0af-b31c4ddeb0c7', JSON.parse("{\"resource\":\"testimonials\",\"useRouterApi\":true,\"companyId\":\"8853c562-273b-4c58-a71b-9ef5b2c3920c\",\"usePageResource\":false,\"sectionIndex\":3,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":false,\"pressReleases\":false,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":false}}"));
3244} catch(e) {
3245console.log(e);
3246}
3247                try {
3248(function init(sectionDomId) {}
3248)('section-7aeb65df-1f13-4442-bb32-a5d5f0c41b2c', 'undefined');
3249} catch(e) {
3250console.log(e);
3251}
3252                try {
3253(function init(sectionDomId) {})('section-64de7b13-9930-4519-a89c-b80f37d851fa', 'undefined');
3254} catch(e) {
3255console.log(e);
3256}
3257                try {
3258(function init(sectionDomId) {
3259  const $section = $('#' + sectionDomId);
3260  if ($section.find('.parallax').length) $section.addClass('parallax-enabled');
3261  if ($section.find('.video-wrapper').length) $section.addClass('video');
3262})('section-7bbb2227-eef0-4a9e-b081-dc9a86d6f82a', 'undefined');
3263} catch(e) {
3264console.log(e);
3265}
3266                try {
3267(function init(sectionDomId) {
3268  const $section = $(`#${sectionDomId}`);
3269  const $container = $section.find('.featured-properties-section');
3270  const $slider = $section.find('.featured-properties');
3271  const threeSlides = $container.hasClass('three-slides');
3272  const autoScroll = $container[0].dataset['autoScroll'] === 'true';
3273  const autoplaySpeed = parseInt($container[0].dataset['autoplaySpeed']) || 3000;
3274  const sliderOptions = {
3275    "arrows": true,
3276    "infinite": false,
3277    autoplay: autoScroll,
3278    autoplaySpeed: autoplaySpeed,
3279    "nextArrow": $section.find('.slick-links-nav .next'),
3280    "prevArrow": $section.find('.slick-links-nav .prev'),
3281    "slidesToShow": 2,
3282    "slidesToScroll": 2,
3283    "responsive": [{
3284      "settings": {
3285        "slidesToShow": 1,
3286        "slidesToScroll": 1
3287      },
3288      "breakpoint": 769
3289    }]
3290  };
3291  if (threeSlides) {
3292    sliderOptions.slidesToShow = 3;
3293    sliderOptions.slidesToScroll = 3;
3294    sliderOptions.responsive.unshift({
3295      "settings": {
3296        "slidesToShow": 2,
3297        "slidesToScroll": 2
3298      },
3299      "breakpoint": 1100
3300    });
3301  }
3302  if (!$slider.hasClass('.slick-initialized')) {
3303    $slider.slick(sliderOptions);
3304  }
3305  $slider.on('beforeChange', function () {
3306    $slider.find('.featured-properties__share.featured-properties__share--opened').removeClass('featured-properties__share--opened');
3307  });
3308  $slider.find('.featured-properties__share .btn').on('click', function () {
3309    $parent = $(this).parent();
3310    if ($parent.hasClass('featured-properties__share--opened')) {
3311      $parent.removeClass('featured-properties__share--opened');
3312    } else {
3313      $slider.find('.featured-properties__share.featured-properties__share--opened').removeClass('featured-properties__share--opened');
3314      $parent.addClass('featured-properties__share--opened');
3315    }
3316  });
3317})('section-91779466-3754-443e-816b-903fe9150afb', JSON.parse("{\"resource\":\"properties\",\"useRouterApi\":false,\"companyId\":\"8853c562-273b-4c58-a71b-9ef5b2c3920c\",\"usePageResource\":false,\"sectionIndex\":7,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":false,\"pressReleases\":false,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":false}}"));
3318} catch(e) {
3319console.log(e);
3320}
3321
3322            var { body } = document;
3323            var globalNav = body.querySelector(':scope > nav');
3324            var globalSideMenu = body.querySelector(':scope > div.sidemenu');
3325
3326            document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => {
3327                modalCloseBtn.addEventListener('click', function() {
3328                window.lpUI.hideClosestModal(modalCloseBtn);
3329              });
3330            });
3331
3332            window.addEventListener('click', function() {
3333                document.querySelectorAll('.share-popup').forEach(sharedPopup => {
3334                    sharedPopup.style.display = 'none' ;
3335                });
3336            });
3337
3338            /* Misc Partials / Addons */
3339            function initWOW() {
3340                if (wow) {
3341                    wow.init();
3342                    wow.scrollHandler();
3343                    setTimeout(function () {
3344                        const wowHideStyle = document.getElementById('wow-hide-elements');
3345                        if(wowHideStyle) {
3346                            wowHideStyle.disabled = true;
3347                        }
3348                    }, 1);
3349                }
3350            }
3351
3352            const wowHideElements =  document.getElementById('wow-hide-elements');
3353            if (wowHideElements) {
3354               wowHideElements.disabled = false;
3355            }
3356
3357                initWOW();
3358
3359            /* Generic Navbar Handling */
3360            globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => {
3361                hamburgerComponent.addEventListener('click', function() {
3362                window.lpUI.sideMenuToggle();
3363              });
3364            });
3365            globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => {
3366                toggleEl.addEventListener('click', function() {
3367                window.lpUI.sideMenuToggle();
3368              });
3369            });
3370
3371            document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => {
3372                linkEl.addEventListener('click', function(e) {
3373                  e.preventDefault();
3374                  e.stopPropagation();
3375                  var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav');
3376                  if (subNav && subNav.classList.contains('visible')){
3377                    subNav.classList.remove('visible');
3378                  } else {
3379                    globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => {
3380                      globalSubNav.classList.remove('visible');
3381                    });
3382                    globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => {
3383                        sideMenuSubNav.classList.remove('visible');
3384                    });
3385                    subNav?.classList.add('visible');
3386                  }
3387                });
3388            });
3389            window.addEventListener('click', function() {
3390                document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => {
3391                    subNavEl.classList.remove('visible');
3392                });
3393            });
3394
3395        }
3396
3397        document.addEventListener('DOMContentLoaded', lpGlobalInit);
3398
3399    </script>
3399
3400
3401    
3401<script type="module">
3402    function selectorExists(selector) {
3403        return document.querySelector(selector) !== null;
3404    }
3405
3406    // Function to initialize the third-party library
3407    function initParoller(selector = '.my-paroller') {
3408        var $parollerElements = $(selector);
3409        if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') {
3410            $parollerElements.paroller();
3411        }
3412    }
3413
3414    const parollerSelector = '.my-paroller';
3415
3416    if (selectorExists(parollerSelector)) {
3417        window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() {
3418            initParoller(parollerSelector);
3419            window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true;
3420        });
3421    }
3422    </script>
3422
3423
3424            <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3424-3425
3424
3425            <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3425GTM-T9SFQGHZ
vendor: 107 bytes, lines 3425-3427
3425"
3426            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
3427            
3427<!-- End Google Tag Manager -->
3428        
3429            
3429<script
3430                src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js"
3431                data-website-id="96b2125f-da36-451f-8701-3e7494eee5ae"
3432                
3433                defer></script>
vendor: 1 bytes, line 3433
3433
3434<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"d2a8f4b3d65944edb8fcd6ffce49ee5e","spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 3434
3434
3435<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a4024c2aaada37be',t:'MTc5MDI1ODIzOQ=='};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>
3435</body>
3436</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.