PageSourceSearch

https://couturerealtor.com/

html couturerealtor.com collected 2026-10-09 23:19:27 UTC 562,348 bytes, 6,739 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>Livermore Valley Luxury Real Estate – Discover Your Dream Home</title>
10        <meta property="og:title" content="Livermore Valley Luxury Real Estate – Discover Your Dream Home">
11        <meta name="twitter:title" content="Livermore Valley Luxury Real Estate – Discover Your Dream Home">
12        <meta name="description" content="Explore Livermore Valley luxury real estate with expert guidance. Discover exclusive homes and start your journey today!">
13        <meta property="og:description" content="Explore Livermore Valley luxury real estate with expert guidance. Discover exclusive homes and start your journey today!">
14        <meta name="twitter:description" content="Explore Livermore Valley luxury real estate with expert guidance. Discover exclusive homes and start your journey today!">
15        <meta property="og:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format&#x3D;auto,quality&#x3D;85,fit&#x3D;scale-down,width&#x3D;1920/https://media-production.lp-cdn.com/media/4b56bc9e-85f6-4b31-9c03-8ffbc2fe1295">
16        <meta name="twitter:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format&#x3D;auto,quality&#x3D;85,fit&#x3D;scale-down,width&#x3D;1920/https://media-production.lp-cdn.com/media/4b56bc9e-85f6-4b31-9c03-8ffbc2fe1295">
17        <meta property="og:url" content="https://couturerealtor.com/">
18        <link rel="canonical" href="https://couturerealtor.com/">
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=Abel:400"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Quicksand:300,400,500,600,700">
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:Abel,sans-serif;--global-primary-font-family-short:Abel;--global-secondary-font-family:Quicksand,sans-serif;--global-secondary-font-family-short:Quicksand;--global-body-padding:0px;--global-background-color:#fff;--global-body-font-size:16px;--global-h1-font-size:64px;--global-h2-font-size:42px;--global-h3-font-size:32px;--global-h4-font-size:24px;--global-h5-font-size:12px;--global-h6-font-size:32px;--global-section-padding:96px;}@media (max-width: 768px){:root{--global-section-padding:64px;}}body{padding:0px;background-color:#fff;font-family:Quicksand,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:Abel,sans-serif;}h1{font-size:64px;}h2{font-size:42px;}h3{font-size:32px;}h4{font-size:24px;}h5{font-size:12px;}h6{font-size:32px;}</style>
30        <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/visionary/index.css" />
31    <style id="website-css">body>div.mobile-contact-wrapper div.mobile-contact{bottom:150px;}@media only screen and (max-width: 768px){iframe[name='widgetCta']{bottom:55px!important;right:15px!important;}}iframe[name="widgetCta"]{bottom:70px!important;right:15px!important;}.mobile-contact-wrapper{position:fixed;z-index:101!important;}.floating-contact-button__btn-search{background:#8C6F45!important;}.floating-contact-button__btn-search:after{color:#fff!important;}:root{--global-h4-font-size:32px;--global-h5-font-size:24px;--global-h6-font-size:20px;}.lp-h1,.lp-h2,.lp-h3{font-variation-settings:'opsz' 44,'GRAD' 0,'slnt' 0,'XTRA' 510,'XOPQ' 96,'YOPQ' 40,'YTLC' 540,'YTUC' 712,'YTAS' 750,'YTDE' -220,'YTFI' 738;}.watermark{font-variation-settings:'GRAD' 0,'slnt' 0,'XTRA' 511,'XOPQ' 96,'YOPQ' 50,'YTLC' 537,'YTUC' 712,'YTAS' 750,'YTDE' -221,'YTFI' 738,'opsz' 44;}@media only screen and (min-width:769px){body.page-sellers .hoverable-section{padding-bottom:0;padding-top:0;}}@media only screen and (max-width:768px){body.page-sellers .hoverable-section{padding-bottom:80px;padding-top:80px;}}@media only screen and (min-width:769px){body.page-buyers .hoverable-section{padding-bottom:0;padding-top:0;}}@media only screen and (max-width:768px){body.page-buyers .hoverable-section{padding-bottom:80px;padding-top:80px;}}@media only screen and (min-width:769px){.page-about-sir .lp-vertical-paddings:not([class*=pb-]){padding-bottom:128px;padding-top:128px;}}@media only screen and (max-width:768px){.page-about-sir .lp-vertical-paddings:not([class*=pb-]){padding-bottom:80px;padding-top:80px;}}@media only screen and (min-width:769px){.page-sir-auction .lp-vertical-paddings:not([class*=pb-]){padding-bottom:128px;padding-top:128px;}}@media only screen and (max-width:768px){.page-sir-auction .lp-vertical-paddings:not([class*=pb-]){padding-bottom:80px;padding-top:80px;}}.page-concierge-auctions .custom-intro__title:after{content:"";background-image:url(https://media-production.lp-cdn.com/media/97d074d2-9190-4504-942c-236898102d72);height:150px;width:500px;max-width:100%;-webkit-filter:invert(1);filter:invert(1);-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;display:block;background-position-x:center;}@media only screen and (max-width:768px){.page-concierge-auctions .custom-intro__title:after{height:100px;}}.page-concierge-auctions .custom-intro__title{font-size:0;}:root{--primary:#8c6f45;--secondary:#000000;--accent:#852b6b;--blocking:#f5f2ee;--black:#000;--white:#FFF;--light-gray:#bbb;--dark-gray:#666;--lp-color-error:#F00;}h1,h2,h3,h4,h5,.lp-h1,.lp-h2,.lp-h3,.lp-h4,.lp-h5{text-transform:uppercase!important;}#global-sidemenu.sidemenu a,#global-navbar a{text-transform:uppercase;}#global-sidemenu.sidemenu button,#global-navbar button{text-transform:uppercase;}
31h1{font-size:var(--lp-h1-font-size)!important;}.lp-input,.lp-input-group .lp-input,.lp-input:is(:placeholder-shown){background:var(--white)!important;border:1px solid var(--light-gray)!important;color:var(--black);}.lp-input:hover,.lp-input-group .lp-input:hover,.lp-input:is(:placeholder-shown):hover,.lp-input:focus,.lp-input-group .lp-input:focus,.lp-input:is(:placeholder-shown):focus,.lp-input:target,.lp-input-group .lp-input:target,.lp-input:is(:placeholder-shown):target{background-color:var(--white)!important;border-color:var(--primary)!important;color:var(--black)!important;}.custom-select-menu .custom-select-content{background:var(--white)!important;border:1px solid transparent;}.custom-select-menu .custom-select-content .custom-select-item{color:var(--black);}.custom-select-menu .custom-select-content .custom-select-item:hover,.custom-select-menu .custom-select-content .custom-select-item:focus,.custom-select-menu .custom-select-content .custom-select-item:target{background-color:var(--primary);color:var(--white);}.custom-select-toggle:is(.is-placeholder),.mls-properties-with-map-filters__grid-btn:is(.is-placeholder){border-color:var(--light-gray);}.custom-select-toggle:is(.open),.custom-select-toggle:not(.is-placeholder),.mls-properties-with-map-filters__grid-btn:is(.opened),.mls-properties-with-map-filters__grid-btn:not(.is-placeholder){border-color:var(--primary);}#global-mobile-contact .search-btn{background:var(--primary)!important;border:1px solid var(--primary);}#global-mobile-contact .search-btn:before{background-color:var(--white)!important;}#global-mobile-contact .search-btn:hover{background:transparent!important;}#global-mobile-contact .search-btn:hover:before{background-color:var(--primary)!important;}#global-mobile-contact .pop-up{box-shadow:0px 10px 20px var(--dark-gray);max-width:-webkit-min-width;max-width:-moz-min-width;max-width:min-width;}#global-mobile-contact .pop-up .lp-container{padding:64px;}@media (max-width: 1366px){#global-mobile-contact .pop-up .lp-container{padding:42px;}}@media (max-width: 768px){#global-mobile-contact .pop-up .lp-container{padding:20px;}}@media (max-width: 768px){#global-mobile-contact .pop-up{border-radius:0;}}#global-mobile-contact .pop-up .contact-form{padding:0;}#global-mobile-contact .pop-up .contact-form__container{padding:0;border:none;}#modal-global-contact-us .contact-form-modal__bg-image{content:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/17338084-5da1-458f-947a-bfe1776a6de7');}#modal-global-contact-us .contact-form-modal-details:not(.only-mobile){padding-right:5vw;}#modal-global-contact-us .contact-form-modal-agent{gap:3rem;}#modal-global-contact-us .contact-form-modal-agent__contact{max-width:100%;}#modal-global-contact-us .contact-form-modal-details__title{max-width:100%;}@media (max-width: 768px){#modal-global-contact-us .contact-form-modal__close{padding:0;right:10vw;}}#modal-global-contact-us .contact-form-modal__close:after{background-color:var(--white);}@media (max-width: 768px){#modal-global-contact-us .contact-form-modal__close:after{background-color:var(--black);}}#modal-global-contact-us .contact-form-modal-agent a{color:var(--black);text-decoration-color:var(--dark-gray);-webkit-transition:0.3s;transition:0.3s;}#modal-global-contact-us .contact-form-modal-agent a:hover{color:var(--primary);text-decoration-color:var(--primary);}#global-navbar .header .header-logo{height:100px;max-width:unset!important;}#global-navbar .header .header-logo img{width:100%;}@media (max-width: 768px){#global-navbar .header .header-logo{height:50px;}}#global-navbar .header .header-navigation{font-size:14px;}@media (max-width: 1440px){#global-navbar .header .header-navigation{gap:20px;}}#global-navbar .header:not(.scroll) .header-logo__img--light{display:block;}#global-navbar .header:not(.scroll) .header-logo__img--dark{display:none;}#global-navbar .header:is(.scroll) .header-logo__img--light{display:block;}#global-navbar .header:is(.scroll) .header-logo__img--dark{display:none;}#global-navbar .header .header-navigation__link:before{-webkit-transition:0.3s;transition:0.3s;}#global-navbar .header:not(.scroll){background-color:transparent!important;color:var(--white)!important;}#global-navbar .header:not(.scroll) .header-navigation__link:before{background-color:var(--white);}#global-navbar .header:not(.scroll) .header-navigation__link:after{background-color:var(--black);}#global-navbar .header:not(.scroll) .header-hamburger-btn{background-color:var(--white);border-color:var(--white);}#global-navbar .header:not(.scroll) .header-hamburger-btn:before,#global-navbar .header:not(.scroll) .header-hamburger-btn:after{background-color:var(--primary);-webkit-transition:0.3s;transition:0.3s;}#global-navbar .header:not(.scroll) .header-hamburger-btn:hover{background-color:transparent;border-color:var(--white);}#global-navbar .header:not(.scroll) .header-hamburger-btn:hover:before,#global-navbar .header:not(.scroll) .header-hamburger-btn:hover:after{background-color:var(--white);}#global-navbar .header:is(.scroll){background-color:var(--primary)!important;color:var(--white)!important;}#global-navbar .header:is(.scroll) .header-navigation__link:before{background-color:var(--white);}#global-navbar .header:is(.scroll) .header-navigation__link:after{background-color:var(--white);}#global-navbar .header:is(.scroll) .header-hamburger-btn{background-color:var(--white);border-color:var(--white);}#global-navbar .header:is(.scroll) .header-hamburger-btn:before,#global-navbar .header:is(.scroll) .header-hamburger-btn:after{background-color:var(--primary);-webkit-transition:0.3s;transition:0.3s;}#global-navbar .header:is(.scroll) .header-hamburger-btn:hover{background-color:transparent;border-color:var(--white);}#global-navbar .header:is(.scroll) .header-hamburger-btn:hover:before,#global-navbar .header:is(.scroll) .header-hamburger-btn:hover:after{background-color:var(--white);}.page-pd #global-navbar .header:not(.scroll),.page-pd #global-navbar .header:is(.scroll){background-color:var(--primary)!important;color:var(--white)!important;}.page-pd #global-navbar .header:not(.scroll) .header-navigation__link:before,.page-pd #global-navbar .header:is(.scroll) .header-navigation__link:before{background-color:var(--white);}.page-pd #global-navbar .header:not(.scroll) .header-hamburger-btn,.page-pd #global-navbar .header:is(.scroll) .header-hamburger-btn{background-color:var(--white);border-color:var(--white);}.page-pd #global-navbar .header:not(.scroll) .header-hamburger-btn:before,.page-pd #global-navbar .header:is(.scroll) .header-hamburger-btn:before,.page-pd #global-navbar .header:not(.scroll) .header-hamburger-btn:after,.page-pd #global-navbar .header:is(.scroll) .header-hamburger-btn:after{background-color:var(--primary);-webkit-transition:0.3s;transition:0.3s;}.page-pd #global-navbar .header:not(.scroll) .header-hamburger-btn:hover,.page-pd #global-navbar .header:is(.scroll) .header-hamburger-btn:hover{background-color:transparent;border-color:var(--white);}.page-pd #global-navbar .header:not(.scroll) .header-hamburger-btn:hover:before,.page-pd #global-navbar .header:is(.scroll) .header-hamburger-btn:hover:before,.page-pd #global-navbar .header:not(.scroll) .header-hamburger-btn:hover:after,.page-pd #global-navbar .header:is(.scroll) .header-hamburger-btn:hover:after{background-color:var(--white);}#global-sidemenu .sidemenu-navigation__link--sub-nav{text-transform:uppercase;}@media (min-width: 768px) and (max-width: 1919px){#global-sidemenu{padding:96px 48px;}#global-sidemenu .sidemenu-navigation__item .sidemenu-navigation__link{font-size:20px;}#global-sidemenu .sidemenu-navigation-sub-nav__link{font-size:14px;}}#global-sidemenu .sidemenu-wrapper{width:100%;}@media (max-width: 768px){#global-sidemenu .sidemenu-wrapper{padding:140px 24px 24px 24px!important;}}#global-sidemenu .sidemenu-navigation__item a:hover,#global-sidemenu .sidemenu-navigation__link--active{color:var(--primary);}#global-sidemenu .sidemenu-navigation__link:after{background-color:var(--black);}#global-sidemenu .sidemenu-navigation__link--active:after{background-color:var(--primary);}#global-sidemenu .sidemenu-navigation-sub-nav__item a{text-decoration-color:var(--dark-gray);-webkit-transition:0.3s;transition:0.3s;}#global-sidemenu .sidemenu-navigation-sub-nav__item a:hover{text-decoration-color:var(--primary);}#global-sidemenu .sidemenu-nav-holder,#global-sidemenu .sidemenu-navigation,#global-sidemenu .sidemenu-navigation__item:has(.sidemenu-navigation__link--sub-nav),#global-sidemenu .sidemenu-navigation-sub-nav{gap:20px;}#global-sidemenu .sidemenu-navigation-sub-nav__item{padding-bottom:0;margin-bottom:5px;}#global-sidemenu .sidemenu-close{background-color:var(--primary);border-color:var(--primary);}
31#global-sidemenu .sidemenu-close:after{background-color:var(--white);}#global-sidemenu .sidemenu-close:hover{background-color:transparent;border-color:var(--primary);}#global-sidemenu .sidemenu-close:hover:after{background-color:var(--primary);}#global-sidemenu .sidemenu-footer a:not(.lp-socials__link){text-transform:unset;color:var(--black);text-decoration-color:var(--dark-gray);-webkit-transition:0.3s;transition:0.3s;}#global-sidemenu .sidemenu-footer a:not(.lp-socials__link):hover{color:var(--primary);text-decoration-color:var(--primary);}#global-footer .footer-info,#global-footer .footer-contact-row,#global-footer .footer-copyright__privacy,#global-footer .footer-copyright__privacy-policy,#global-footer .footer-navigation__item+.footer-navigation__item{border-color:var(--light-gray);}#global-footer .footer-copyright__powered,#global-footer .footer-copyright__privacy{text-transform:uppercase;}#global-footer .footer__col-description{max-width:100%;}@media (max-width: 768px){#global-footer .footer__section-content{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:40px;}#global-footer .footer__col-content,#global-footer .footer__col-description{max-width:100%!important;}#global-footer .footer-bottom-row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:20px;}#global-footer .footer-copyright{width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}}#global-footer a:not(.lp-socials__link){text-transform:unset;color:var(--black);text-decoration-line:underline;text-underline-offset:2px!important;text-decoration-color:var(--dark-gray);-webkit-transition:0.3s;transition:0.3s;}#global-footer a:not(.lp-socials__link):hover{color:var(--primary);text-decoration-color:var(--primary);}#global-footer .footer-logos-row img{max-width:unset;max-height:110px;}@media (max-width: 768px){#global-footer .footer-logos-row img{max-height:50px;}}.lp-title-group,.testimonials-slider-heading{max-width:100%;}.pagination-style-1 ul li:first-of-type a:hover:after,.pagination-style-1 ul li:last-of-type a:hover:after{background:var(--white)!important;}.lp-socials{gap:10px;}@media (max-width: 768px){.lp-socials{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}.pac-item:hover span{font-weight:bold;color:var(--primary)!important;}.custom-intro__content-box{background-color:transparent;}.custom-intro__pre-title,.custom-intro__title,.custom-intro__description{color:var(--white);}.custom-intro__scroll-btn{background:var(--white);border-color:var(--white);}.custom-intro__scroll-btn:after{background:var(--primary);}.custom-intro__scroll-btn:hover{background:transparent;border-color:var(--white);}.custom-intro__scroll-btn:hover:after{background:var(--white);}.lp-tcr-content a{color:var(--black);text-decoration-color:var(--dark-gray)!important;text-underline-offset:2px!important;}.lp-tcr-content a:hover{color:var(--primary);text-decoration-color:var(--primary);}</style>
32    <style id="wow-hide-elements">.wow{visibility:hidden!important}</style>
33        <style id="page-css">
34            #section-c1234c57-c7ef-4bf5-a255-f88b98dbc080{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#1a1a1a;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:10%;--bgColor_A:1;--bgColor_darkenDir:1;}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .opening-search-sound{display:none!important;pointer-events:none!important;}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .lp-icon:after{--iconColor:var(--accent);}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .opening-search__predefined-links{border-color:var(--light-gray);}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .opening-search__search-results{background-color:var(--white);}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .opening-search__search-results .opening-search__results-link{color:var(--black);}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .opening-search__search-results .opening-search__results-link:hover,#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .opening-search__search-results .opening-search__results-link:focus,#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .opening-search__search-results .opening-search__results-link:target{background-color:var(--primary);color:var(--white);}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .full-screen-video-component .video-wrapper.hidable{display:block;}@media (max-width: 900px){#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .full-screen-video-component .poster{display:none;}}@media (max-width: 768px){#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .opening-search__pre-title{margin-bottom:unset;}}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 >*:last-child{position:relative;}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .overlay-component{position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--overlay-color, var(--section-overlay, rgba(0, 0, 0, 0.3)));transition-property:opacity;transition-timing-function:linear;}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .video-wrapper{position:absolute;top:0;left:0;height:100%;width:100%;}@media screen and (max-width: 900px){#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .video-wrapper.hidable{display:none;}}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .full-screen-video-component{position:relative;height:100%;overflow:hidden;}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 video{position:absolute;z-index:-1000;width:100%;object-fit:cover;}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 video{overflow:hidden;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);min-width:100%;min-height:100%;width:auto;height:auto!important;}}#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .poster{display:none;position:absolute;top:0;left:0;bottom:0;right:0;z-index:-1000;background:center center/cover;}@media screen and (max-width: 900px){#section-c1234c57-c7ef-4bf5-a255-f88b98dbc080 .poster{display:block;}}#section-4e9be597-0c57-4cc1-ad9e-26698df89dc9{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#f5f2ee;--bgColor_H:34;--bgColor_S:26%;--bgColor_L:95%;--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:#f5f2ee;}#section-4e9be597-0c57-4cc1-ad9e-26698df89dc9 .lp-arrow{border-color:var(--primary);background:var(--primary);}#section-4e9be597-0c57-4cc1-ad9e-26698df89dc9 .lp-arrow:after{background:var(--white);}
34#section-4e9be597-0c57-4cc1-ad9e-26698df89dc9 .lp-arrow:hover:not(:disabled){border-color:var(--primary);background:Transparent;}#section-4e9be597-0c57-4cc1-ad9e-26698df89dc9 .lp-arrow:hover:not(:disabled):after{background:var(--primary);}#section-4e9be597-0c57-4cc1-ad9e-26698df89dc9 .stats-list__item{min-height:unset;}#section-4e9be597-0c57-4cc1-ad9e-26698df89dc9 .stats-list__title{font-size:34px;}#section-4e9be597-0c57-4cc1-ad9e-26698df89dc9>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(2 / 4 * var(--global-section-padding))!important;}#section-fba75ce4-28b8-44ae-9e59-29052c7ca6c7{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-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(0 / 4 * var(--global-section-padding));background-color:#fff;}#section-fba75ce4-28b8-44ae-9e59-29052c7ca6c7>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(0 / 4 * var(--global-section-padding))!important;}#section-57e3def3-0b54-4364-ba92-3c2da73df25a{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-top:calc(0 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#fff;}#section-57e3def3-0b54-4364-ba92-3c2da73df25a .gallery-style-menu-grid{margin-left:auto;margin-right:auto;}#section-57e3def3-0b54-4364-ba92-3c2da73df25a .gallery-style-menu-title-group{max-width:100%;margin-bottom:64px;}#section-57e3def3-0b54-4364-ba92-3c2da73df25a .gallery-style-menu-grid__title{text-align:center;}#section-57e3def3-0b54-4364-ba92-3c2da73df25a .gallery-style-menu-grid__item{aspect-ratio:1/1;}#section-57e3def3-0b54-4364-ba92-3c2da73df25a>div:last-child{padding-top:calc(0 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-94299c24-639b-4cf2-a15f-710c04b9b187{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-top:calc(0 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#fff;}#section-94299c24-639b-4cf2-a15f-710c04b9b187>div:last-child{padding-top:calc(0 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159{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;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.3));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/65f77adf-1d59-4a94-a18f-063f31ed4050');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159 .testimonials-slider-slider__quotes{background:var(--accent);}#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159 .testimonials-slider-slider__quotes:after{--iconColor:var(--white);}#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159 .lp-arrow{border-color:var(--white);background:var(--white);}#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159 .lp-arrow:after{background:var(--primary);}
34#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159 .lp-arrow:hover:not(:disabled){border-color:var(--white);background:Transparent;}#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159 .lp-arrow:hover:not(:disabled):after{background:var(--white);}#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159>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-c8a0ad1c-794d-403e-bb62-eb33fbb26159{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/65f77adf-1d59-4a94-a18f-063f31ed4050');}}@media (min-width: 1280px) and (orientation: landscape){#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159{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/65f77adf-1d59-4a94-a18f-063f31ed4050');}}@media (min-width: 1920px) and (orientation: landscape){#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159{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/65f77adf-1d59-4a94-a18f-063f31ed4050');}}@media (min-width: 2560px) and (orientation: landscape){#section-c8a0ad1c-794d-403e-bb62-eb33fbb26159{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/65f77adf-1d59-4a94-a18f-063f31ed4050');}}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f{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-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#fff;}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .properties-slider__arrows{gap:12px;}@media (max-width: 768px){#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .properties-slider__arrow--next{margin-left:0px;}}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .properties-slider-card__tag{background:var(--accent);color:var(--white);opacity:1;text-transform:uppercase;}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .properties-slider-card__feature{background:var(--accent);color:var(--white);}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .properties-slider__title{margin-bottom:0;}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .lp-arrow{border-color:var(--primary);background:var(--primary);}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .lp-arrow:after{background:var(--white);}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .lp-arrow:hover:not(:disabled){border-color:var(--primary);background:Transparent;}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .lp-arrow:hover:not(:disabled):after{background:var(--primary);}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f .properties-slider-card__address{text-transform:uppercase;}#section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-fb7349af-e14f-467a-9daf-07d33ead2bb9{color:#000;--fontColor:#000;--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(0 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#ffffff;}#section-fb7349af-e14f-467a-9daf-07d33ead2bb9 .lp-arrow{border-color:var(--primary);background:var(--primary);}#section-fb7349af-e14f-467a-9daf-07d33ead2bb9 .lp-arrow:after{background:var(--white);}
34#section-fb7349af-e14f-467a-9daf-07d33ead2bb9 .lp-arrow:hover:not(:disabled){border-color:var(--primary);background:Transparent;}#section-fb7349af-e14f-467a-9daf-07d33ead2bb9 .lp-arrow:hover:not(:disabled):after{background:var(--primary);}#section-fb7349af-e14f-467a-9daf-07d33ead2bb9 .neighborhoods-slider__title{max-width:100%;}#section-fb7349af-e14f-467a-9daf-07d33ead2bb9>div:last-child{padding-top:calc(0 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb{color:#000;--fontColor:#000;--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;background-color:#ffffff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.3));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/f3e471ba-2d4a-492d-bda6-9aa7f258512b');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb .home-valuation-tabs__item{background-color:var(--white);border:1px solid var(--primary);color:var(--primary);}#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb .home-valuation__tab--active{background-color:var(--primary);border-color:var(--primary);color:var(--white);}#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb .home-valuation-info__pre-title.home-valuation__pre-title--with-title,#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb .home-valuation-info__description p{color:var(--white);}#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb .lp-icon:after{--iconColor:var(--accent)!important;}#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb .custom-select-toggle:after{background-color:var(--primary);}@media (min-width: 960px) and (orientation: landscape){#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb{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/f3e471ba-2d4a-492d-bda6-9aa7f258512b');}}@media (min-width: 1280px) and (orientation: landscape){#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb{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/f3e471ba-2d4a-492d-bda6-9aa7f258512b');}}@media (min-width: 1920px) and (orientation: landscape){#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb{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/f3e471ba-2d4a-492d-bda6-9aa7f258512b');}}@media (min-width: 2560px) and (orientation: landscape){#section-0cae3508-3cc4-48dc-9582-6f81a06f07fb{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/f3e471ba-2d4a-492d-bda6-9aa7f258512b');}}#section-346316c9-a364-46cc-8a36-f6113f1201e3{color:#000;--fontColor:#000;--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(4 / 4 * var(--global-section-padding));background-color:#ffffff;}#section-346316c9-a364-46cc-8a36-f6113f1201e3>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-2c090225-3f15-4437-9733-8b420503d690{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#f5f2ee;--bgColor_H:34;--bgColor_S:26%;--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:#f5f2ee;}#section-2c090225-3f15-4437-9733-8b420503d690 div.newsletter-signup .newsletter-signup__form-item{background-color:#fff;border:1px solid #999;color:#000;}#section-2c090225-3f15-4437-9733-8b420503d690 .lp-input:-webkit-autofill,#section-2c090225-3f15-4437-9733-8b420503d690 .lp-input:-webkit-autofill:focus,#section-2c090225-3f15-4437-9733-8b420503d690 .lp-input:-webkit-autofill:hover{-webkit-text-fill-color:#000!important;}#section-2c090225-3f15-4437-9733-8b420503d690>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63{color:#fff;--fontColor:#fff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#ffffff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.4));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/a892a189-5cc0-4b9c-8769-0ad398b88f67');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63 .newsletter-contact-cta__wrapper{-webkit-box-pack:center;-ms-flex-pack:center;
34-webkit-justify-content:center;justify-content:center;}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63 .newsletter-contact-cta__word-divide:before{background:var(--light-gray);opacity:1;}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63 .newsletter-contact-cta__word-divide:after{background:var(--light-gray);opacity:1;}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63 .newsletter-contact-cta__right-back{display:none;}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63 .newsletter-contact-cta__link{-webkit-text-decoration:underline;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--dark-gray);}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63 .newsletter-contact-cta__link:hover{color:var(--primary)!important;text-decoration-color:var(--primary);}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63 .newsletter-contact-cta__description{opacity:1;font-weight:500;}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63{background-attachment:fixed;-webkit-background-position:center;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;}@media only screen and (max-width: 768px){#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63{background-attachment:fixed;}}#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63 .newsletter-contact-cta__heading{max-width:100%!important;}@media (min-width: 768px){#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63 .newsletter-contact-cta__heading h2{max-width:26ch;margin-left:auto;margin-right:auto;}}@media (min-width: 960px) and (orientation: landscape){#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63{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/a892a189-5cc0-4b9c-8769-0ad398b88f67');}}@media (min-width: 1280px) and (orientation: landscape){#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63{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/a892a189-5cc0-4b9c-8769-0ad398b88f67');}}@media (min-width: 1920px) and (orientation: landscape){#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63{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/a892a189-5cc0-4b9c-8769-0ad398b88f67');}}@media (min-width: 2560px) and (orientation: landscape){#section-5bb607e9-9670-455b-9652-8c9d1b0b1c63{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/a892a189-5cc0-4b9c-8769-0ad398b88f67');}}#section-2b120f4d-e619-4190-9fac-7fc3abaef672{color:#1a1a1a;--fontColor:#1a1a1a;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:10%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#ffffff;}body>div.sidemenu{background-color:rgba(255, 255, 255, 1);color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;}footer{background-color:rgba(255, 255, 255, 1);color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;}
35        </style>
36    <style id="custom-style-css">.button-style-1{color:rgba(255, 255, 255, 1)!important;background-color:rgba(140, 111, 69, 1)!important;border-color:rgba(140, 111, 69, 1)!important;}.button-style-1:hover{color:rgba(140, 111, 69, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(140, 111, 69, 1)!important;}.pagination-style-1 li a{color:rgba(0, 0, 0, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-1 li a:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(140, 111, 69, 1)!important;border-color:rgba(140, 111, 69, 1)!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(140, 111, 69, 1)!important;border-color:rgba(140, 111, 69, 1)!important;}.social_icons-style-1 a{border-color:rgba(140, 111, 69, 1)!important;background-color:rgba(140, 111, 69, 1)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-1 a:hover{border-color:rgba(140, 111, 69, 1)!important;background-color:rgba(0, 0, 0, 0)!important;color:rgba(140, 111, 69, 1)!important;}.social_icons-style-1 a i{color:inherit!important;}
36.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.hyperlink-style-1{color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-1:hover{color:rgba(140, 111, 69, 1)!important;}.button-style-2{color:rgba(140, 111, 69, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-2:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(255, 255, 255, 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(140, 111, 69, 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(140, 111, 69, 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(255, 255, 255, 1)!important;color:rgba(140, 111, 69, 1)!important;}.social_icons-style-2 a:hover{border-color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-2 a i{color:inherit!important;}
36.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:rgba(255, 255, 255, 1)!important;}.button-style-3{color:rgba(140, 111, 69, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(140, 111, 69, 1)!important;}.button-style-3:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(140, 111, 69, 1)!important;border-color:rgba(140, 111, 69, 1)!important;}.button-style-4{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-4:hover{color:rgba(140, 111, 69, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}</style>
37        <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode
38             defaults, and dynamically loads the locale + main (and banner if needed). -->
39        
39<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="0ff2944e-bf8d-436a-8339-bb2d94158f4a"></script>
39
40
41
42        
42<script>
43            (function utmParse() {
44                const url = new URL(window.location.href);
45                if (url.search) {
46                    const utm = url.search.split(/\?|&/g).reduce((acc, current) => {
47                        const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g);
48                        if (matched) {
49                        acc[matched[0]] = current.replace(`${matched[0]}=`, '');
50                        }
51                        return acc;
52                    }, {});
53                    if (Object.keys(utm).length) {
54                        window.localStorage.setItem('utm_vars', JSON.stringify(utm));
55                    } else {
56                        // Remove old utm vars
57                        window.localStorage.removeItem('utm_vars');
58                    }
59                }
60                // Set referrer in local storage
61                // This is meant to be stored once to avoid self-referrals and to have the first referrer only.
62                if (!window.localStorage.getItem('referrer')) {
63                    // Capture the Referrer URL
64                    const referrer = document.referrer;
65                    if (referrer) {
66                        // Only store the referrer if it comes from outside the current domain (to avoid self-referrals)
67                        const currentDomain = window.location.hostname;
68                        const referrerDomain = new URL(referrer).hostname;
69
70                        if (referrerDomain !== currentDomain) {
71                            // Store it in localStorage
72                            localStorage.setItem('referrer', referrer);
73                        }
74                    }
75                }
76            })();
77        </script>
77
78        <!-- Bing Webmaster Tools Verification -->
79<script>
80        // Check if on the homepage before the body loads
81        if (window.location.pathname === '/' || window.location.pathname === '/index.html') {
82            document.write('<meta name="msvalidate.01" content="9444E455BC3D007F3F70BCA3F6F54DD2" />');
83        }
84</script>
84
85    <!-- GOOGLE TRANSLATE STYLES are moved to external CSS -->
86</head>
87<body>
88    <div id="google_translate_element" style="display: none"></div>
89
90        <nav id="global-navbar" data-el-id="3242b8f0-253e-46f7-b814-162ccf958ec2">
91            
92<header class="header js-header" style="--textColor: rgba(255, 255, 255, 1); --backgroundColor: rgba(0, 0, 0, 0);">
93  <div class="header-container ">
94    
95    <a href="/" class="header-logo">
96      <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/d8af9b0d-444f-4894-99ba-4f08f8debc20" 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/d8af9b0d-444f-4894-99ba-4f08f8debc20 3456w" sizes="350px" alt="Company logo" class="header-logo__img header-logo__img--dark">
97      <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/808bc6e0-b73f-4e78-a35f-deccb70eb975" 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/808bc6e0-b73f-4e78-a35f-deccb70eb975 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/808bc6e0-b73f-4e78-a35f-deccb70eb975 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/808bc6e0-b73f-4e78-a35f-deccb70eb975 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/808bc6e0-b73f-4e78-a35f-deccb70eb975 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/808bc6e0-b73f-4e78-a35f-deccb70eb975 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/808bc6e0-b73f-4e78-a35f-deccb70eb975 3456w" sizes="350px" alt="Company logo" class="header-logo__img header-logo__img--light">
98    </a>
99
100    <ul class="header-navigation">
101      <li class="header-navigation__item ">
102        
103        <a class="header-navigation__link "  href="/properties"  style="--delay: 0s">Portfolio</a>
104      </li>
105      <li class="header-navigation__item ">
106        
107        <a class="header-navigation__link "  href="/home-search/listings"  style="--delay: 0.1s">Home Search</a>
108      </li>
109      <li class="header-navigation__item ">
110        
111        <a class="header-navigation__link "  href="/testimonials"  style="--delay: 0.2s">Testimonials</a>
112      </li>
113      <li class="header-navigation__item ">
114        
115        <a class="header-navigation__link "  href="/home-valuation"  style="--delay: 0.30000000000000004s">Home Valuation</a>
116      </li>
117      <li class="header-navigation__item ">
118        
119        <a class="header-navigation__link "  href="/neighborhoods"  style="--delay: 0.4s">Neighborhoods</a>
120      </li>
121      <li class="header-navigation__item ">
122        
123        <a class="header-navigation__link "  data-type="CONTACT_US" tabindex="0" style="--delay: 0.5s">Contact Us</a>
124      </li>
125    </ul>
126
127
128    <div class="header-buttons-wrapper">
129
130      <a href="tel:9255253380"
131        class="header-contact-btn lp-btn button-style-2">(925) 525-3380</a>
132
133
134      <button type="button" class="header-hamburger-btn lp-btn hamburger-component hamburger js-sidemenu-opener"
135        title="Toggle Sidemenu"></button>
136    </div>
137  </div>
138
139</header>
140
141        </nav>
142        <div id="global-sidemenu" class="sidemenu" data-el-id="033c3235-a8bd-45bf-a4a8-96977e33190d">
143            
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159<button class="sidemenu-close toggle close lp-btn lp-icon link-icon--plus"></button>
160
161
162<div class="sidemenu-wrapper sidemenu-wrapper--small" style="--navItemNumberColor: rgba(133, 43, 107, 1);">
163    <div class="sidemenu-nav-holder ">
164        <ul class="sidemenu-navigation sidemenu-navigation--index">
165                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
166                            <a  
167                                href="/" 
168                                class="sidemenu-navigation__link">Home</a>
169                
170                    </li>
171                  
172                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
173                            <a  
174                                href="/team" 
175                                class="sidemenu-navigation__link">Meet the Team</a>
176                
177                    </li>
178                  
179                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
180                            <a  
181                                href="/properties" 
182                                class="sidemenu-navigation__link">Portfolio</a>
183                
184                    </li>
185                  
186        </ul>
187
188        <ul class="sidemenu-navigation sidemenu-navigation--index">
189                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
190                            <a  
191                                href="/home-search/listings" 
192                                class="sidemenu-navigation__link">Home Search</a>
193                
194                    </li>
195                  
196                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
197                            <a  
198                                href="/home-valuation" 
199                                class="sidemenu-navigation__link">Home Valuation</a>
200                
201                    </li>
202                  
203                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
204                            <a  
205                                href="/neighborhoods" 
206                                class="sidemenu-navigation__link">Neighborhoods</a>
207                
208                    </li>
209                  
210        </ul>
211
212        <ul class="sidemenu-navigation sidemenu-navigation--index">
213                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
214                            <a  
215                                href="/testimonials" 
216                                class="sidemenu-navigation__link">Testimonials</a>
217                
218                    </li>
219                  
220                    <li class="sidemenu-navigation__item js-idemenu-navigation-item sidemenu-navigation__item--sub-nav">
221                            <span class="sidemenu-navigation__link sidemenu-navigation__link--sub-nav sidemenu-navigation__link--sub-nav-active js-sub-nav-opener lp-icon">
222                                Resources
223                            </span>
224                
225                        <ul class="sidemenu-navigation-sub-nav lp-a">
226                            <li class="sidemenu-navigation-sub-nav__item"><a  href="/buyers-team" class="sidemenu-navigation-sub-nav__link">Buyer&#x27;s Guide</a></li>
227                            <li class="sidemenu-navigation-sub-nav__item"><a  href="/sellers-team" class="sidemenu-navigation-sub-nav__link">Seller&#x27;s Guide</a></li>
228                            <li class="sidemenu-navigation-sub-nav__item"><a  href="/mortgage-calculator" class="sidemenu-navigation-sub-nav__link">Mortgage Calculator</a></li>
229                        </ul>
230                    </li>
231                  
232                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
233                            <a  
234                                href="/compass-concierge" 
235                                class="sidemenu-navigation__link">Compass Concierge</a>
236                
237                    </li>
238                  
239        </ul>
240
241        <ul class="sidemenu-navigation sidemenu-navigation--index">
242                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
243                            <a  
244                                href="/blog" 
245                                class="sidemenu-navigation__link">Blog</a>
246                
247                    </li>
248                  
249                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
250                            <a  
251                                href="/contact" 
252                                class="sidemenu-navigation__link">Contact Us</a>
253                
254                    </li>
255                  
256                    <li class="sidemenu-navigation__item js-idemenu-navigation-item ">
257                            <a  
258                                href="/home-search/account" 
259                                class="sidemenu-navigation__link">My Search Portal</a>
260                
261                    </li>
262                  
263        </ul>
264    </div>
265
266    <div class="sidemenu-footer">
267        <div class="sidemenu__info-group sidemenu__col">
268                    <div class="sidemenu__section-content">
269                                <div class="sidemenu__col-content">
270                                <p class="sidemenu__col-title">Contact Us</p><div class="sidemenu__col-description lp-a">
271                                        <p class="sidemenu__col-agent-name">COUTURE REAL ESTATE GROUP | CA DRE# 01333990</p>
272                                        <a href="tel:9255253380" class="sidemenu__col-phone">(925) 525-3380</a>
273                                        <a href="/cdn-cgi/l/email-protection#5833392c303d2a31363d763b372d2c2d2a3d183b373528392b2b763b3735" class="sidemenu__col-email"><span class="__cf_email__" data-cfemail="afc4cedbc7caddc6c1ca81ccc0dadbdaddcaefccc0c2dfcedcdc81ccc0c2">[email&#160;protected]</span></a>
274                                    </div>
275                                </div>
276                                <div class="sidemenu__col-content">
277                                <p class="sidemenu__col-title">Address</p>                <div class="sidemenu__col-description lp-a sidemenu__col-description--pre-line"><p>900 MAIN ST<br>PLEASANTON CA 94566</p></div>
278                                        
279                                </div>
280                    </div>
281                    
282        </div>
283
284            <div class="sidemenu-socials-block">
285                <p class="sidemenu__col-title">Follow Us</p>
286                    <ul class="lp-socials social_icons-style-1">
287                    
288                            <li>
289                              <a
290                                href="https://www.linkedin.com/in/katherine-couture-90618317/"
291                                class="lp-socials__link"
292                                data-wow-delay="0s"
293                                target="_blank"
294                                aria-label="LINKEDIN"
295                              >
296                                  <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
297                              </a>
298                            </li>
299                            <li>
300                              <a
301                                href="https://www.youtube.com/@couturerealestateteam3351"
302                                class="lp-socials__link"
303                                data-wow-delay="0.1s"
304                                target="_blank"
305                                aria-label="YOUTUBE"
306                              >
307                                  <span class="lp-i lp-i--youtube" aria-hidden="true"></span>
308                              </a>
309                            </li>
310                            <li>
311                              <a
312                                href="https://www.google.com/search?q&#x3D;Katherine+Couture%2C+Realtor+%7C+Intero+Real+Estate+Livermore&amp;rlz&#x3D;1C1CHZN_enPH1001PH1001&amp;oq&#x3D;katherine+coutu&amp;gs_lcrp&#x3D;EgZjaHJvbWUqBggAEEUYOzIGCAAQRRg7MgYIARBFGDsyBggCEEUYOzIGCAMQRRg5MgYIBBBFGDwyBggFEEUYPDIGCAYQRRg80gEIMjI3MWowajGoAgCwAgA&amp;sourceid&#x3D;chrome&amp;ie&#x3D;UTF-8#lrd&#x3D;0x808fe79f1abaaaab:0x84474328b06e78ae,1,,,,"
313                                class="lp-socials__link"
314                                data-wow-delay="0.2s"
315                                target="_blank"
316                                aria-label="GOOGLE"
317                              >
318                                  <span class="lp-i lp-i--google" aria-hidden="true"></span>
319                              </a>
320                            </li>
321                            <li>
322                              <a
323                                href="https://www.zillow.com/profile/user767165"
324                                class="lp-socials__link"
325                                data-wow-delay="0.3s"
326                                target="_blank"
327                                aria-label="ZILLOW"
328                              >
329                                  <span class="lp-i lp-i--zillow" aria-hidden="true"></span>
330                              </a>
331                            </li>
332                      </ul>            </div>
333    </div>
334</div>
335        </div>
336        <div  id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="4c08210d-8fa1-4e4b-ad13-3209994c2ceb">
337            <div class="floating-contact-button">
338  <div class="floating-contact-button__btn-holder js-btn-holder"
339    style="--backgroundColor: rgba(255, 255, 255, 1); --textColor: rgba(0, 0, 0, 1);  --pillTextColor: rgba(255, 255, 255, 1); --pillBackgroundColor: rgba(140, 111, 69, 1);">
340        <a href="/home-search/listings"   class="floating-contact-button__btn-search lp-icon hyperlink-style-1">Search</a>
341    <button type="button" class="floating-contact-button__btn-connect js-btn-connect lp-icon lp-ico-arrow-top">Contact Us</button>
342  </div>
343
344  <div class="floating-contact-button-pop-up js-pop-up" style="--backgroundColor: rgba(255, 255, 255, 1); --textColor: rgba(0, 0, 0, 1);">
345      <form class="floating-contact-button-pop-up__form js-form" data-type="contact-form">
346          <h3 class="floating-contact-button-pop-up__title">Leave a Message</h3>
347
348        <div class="floating-contact-button-pop-up__input-group lp-input-group">
349          <input id="__FullName" type="text" name="name"
350            class="lp-input js-input-name lp-input--light"
351            required placeholder="Full Name">
352        </div>
353        
354        <div class="floating-contact-button-pop-up__input-group lp-input-group">
355          <input id="__Email" type="email" name="email"
356            class="lp-input js-email-input "
357            required placeholder="Email">
358        </div>
359        
360        <div class="floating-contact-button-pop-up__input-group lp-input-group">
361          <input class="lp-input " type="tel" placeholder="Phone" id="__Phone"
362            name="phone" required>
363        </div>
364        
365        <select name="interest" id="-field-interest"
366          class="floating-contact-button-pop-up__input-group lp-input js-select " required>
367          <option value="" selected disabled data-label="Interest">Interested in...</option>
368          <option value="Selling &amp; Buying">Selling &amp; Buying</option>
369          <option value="Selling">Selling</option>
370          <option value="Buying">Buying</option>
371          <option value="Renting">Renting</option>
372          <option value="Other">Other</option>
373          <label for="-field-interest" class="lp-label sr-only">Interest</label>
374        </select>
375        
376        <div class="floating-contact-button-pop-up__input-group lp-input-group">
377          <textarea name="message" rows="4" id="__Message" class="lp-in
377put "
378            placeholder="Message" required></textarea>
379        </div>
380        
381        <div class="lp-disclaimer">  <div class='lp-tcr-content' style='margin-bottom: 1em;'>
382    <span class='lp-tcr-message'>
383      By providing your contact information to Couture Real Estate Team, your personal
384      information will be processed in accordance with Couture Real Estate Team's
385      <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. By
386      checking the box(es) below, you consent to receive communications
387      regarding your real estate inquiries and related marketing and promotional
388      updates in the manner selected by you. For SMS text messages, message
389      frequency varies. Message and data rates may apply. You may opt out of
390      receiving further communications from Couture Real Estate Team at any time. To opt
391      out of receiving SMS text messages, reply STOP to unsubscribe.
392    </span>
393  </div>
394  <label style='display: none;' for='-termsAccepted'>Opt
395    in/Disclaimer Consent:</label>
396  <label class='lp-tcr-content' style='margin-bottom: 1em;'>
397    <span class='lp-tcr-checkbox'>
398      <input
399        type='checkbox'
400        name='termsAccepted'
401        id='-termsAccepted'
402        oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
403        oninput="this.setCustomValidity('')"
404        required
405        value='Yes, I agree to receive email or phone call communications from Couture Real Estate Team.'
406      />
407    </span>
408    <span class='lp-tcr-message'>
409      Yes, I agree to receive email or phone call communications from
410      Couture Real Estate Team.
411    </span>
412  </label>
413  <label style='display: none;' for='-customConsent'>Opt
414    in/Disclaimer Consent:</label>
415  <label class='lp-tcr-content' style='margin-bottom: 1em;'>
416    <span class='lp-tcr-checkbox'>
417      <input
418        type='checkbox'
419        name='customConsent'
420        id='-customConsent'
421        value='Yes, I agree to receive SMS text messages from Couture Real Estate Team.'
422      />
423    </span>
424    <span class='lp-tcr-message'>
425      Yes, I agree to receive SMS text messages from Couture Real Estate Team.
426    </span>
427  </label>
428
429</div>
430        
431        <button type="submit" class="floating-contact-button-pop-up__btn-submit lp-btn lp-btn--mob-full-width button-style-1">Submit</button>
432
433        <div class="lp-h-pot">
434          <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off"
435            tabindex="-1">
436        </div>
437        <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" />
438        <input type="hidden" name="button_text" value="Contact Us">
439      </form>
440
441      <div class="floating-contact-button-pop-up__success js-success">
442          <h3 class="floating-contact-button-pop-up__title">Thank you for your message. We will be in touch with you shortly.</h3>
443
444                <a
445                    href="/home-search/listings"
446                    
447                    class="lp-btn floating-contact-button-pop-up__success-btn button-style-1"
448                    
449                    
450                    
451                    
452                    
453                    >
454                            Explore Our Properties
455                    </a>
456      </div>
457    <button type="button" class="floating-contact-button-pop-up__close js-close-btn lp-icon"></button>
458  </div>
459  
460</div>
461
462        </div>
463        <section id="section-c1234c57-c7ef-4bf5-a255-f88b98dbc080"  class="video-section is-font-color-light is-background-color-dark" data-el-id="bc2e983c-8c71-4c9e-9b1a-970e380ee8de">
464  <div class="video-wrapper">
465    <div class="full-screen-video-component">
466      <div class="video-wrapper hidable">
467        <video class="lazy"
468          poster="https://res.cloudinary.com/luxuryp/videos/f_auto,q_auto/so_0,eo_0/hqcsc9hs5ngrc5uj4nwo/v4_katherine-and-michael-couture.jpg"
469          style="height:100%;"
470          loop
471          muted
472          autoplay
473          playsinline>
474          <source data-src="https://res.cloudinary.com/luxuryp/videos/f_webm,vc_vp9,q_auto:best,w_1920,c_limit/hqcsc9hs5ngrc5uj4nwo/v4_katherine-and-michael-couture.webm" type="video/webm;codecs=vp9">
475<source data-src="https://res.cloudinary.com/luxuryp/videos/f_mp4,vc_h265,q_auto:best,w_1920,c_limit/hqcsc9hs5ngrc5uj4nwo/v4_katherine-and-michael-couture.mp4" type="video/mp4;codecs=hvc1">
476<source data-src="https://res.cloudinary.com/luxuryp/videos/f_mp4,vc_h264,q_auto:best,w_1920,c_limit/hqcsc9hs5ngrc5uj4nwo/v4_katherine-and-michael-couture.mp4" type="video/mp4">
477        </video>
478      </div>
479        <div class="poster" style="background-image: url('https://media-production.lp-cdn.com/cdn-cgi/image/format&#x3D;auto,quality&#x3D;85,fit&#x3D;scale-down,width&#x3D;1920/https://media-production.lp-cdn.com/media/4b56bc9e-85f6-4b31-9c03-8ffbc2fe1295')"></div>
480    </div>
481  </div>
482  <div class="overlay-component"style="--section-overlay: rgba(0, 0, 0, 0.2);"></div>
483  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css"
484/>
vendor: 109 bytes, lines 484-485
484
485<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
485<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js"></script>
485
486
487
488
489<div class="opening-search" style="--searchBoxColor: rgba(0, 0, 0, 0);">
490    <div class="opening-search__container">
491
492        <div class="opening-search__image-wrapper splide js-slider-nav">
493            <div class="splide__track">
494                <ul class="splide__list">
495                        <div class="opening-search__item-image splide__slide" data-duration="">
496                            
497                        </div>
498                </ul>
499            </div>
500        </div>
501
502        <div class="opening-search__content">
503            <div class="opening-search__text-slider splide js-slider">
504                <div class="splide__track">
505                    <ul class="splide__list">
506                            <li class="splide__slide opening-search__item js-item" data-duration="">
507                                    <div class="opening-search__pre-title lp-text--pretitle">Couture Real Estate Group | CA DRE# 01333990</div>
508                                    <h1 class="opening-search__title">
509Livermore Valley Luxury Homes                                    </h1>
510                                    <div class="opening-search__description"><p>The Couture Difference: Personalized Service, Outstanding Results.</p></div>
511                            </li>
512                    </ul>
513                </div>
514            </div>
515            <div class="opening-search__search-box search-form">
516                        <div class="opening-search__search-wrapper js-search-wrapper search-near-hidden"  data-search-mls="true" data-search-properties="false" data-locations="US" data-show-neighborhood-names="false">
517                            <div class="opening-search__search-input-container lp-input-group lp-input--with-icon">
518                                <input 
519                                    type="text"
520                                    id="section-c1234c57-c7ef-4bf5-a255-f88b98dbc080-address"
521                                    name="home-address"
522                                    class="opening-search__search-input js-search-input lp-input lp-input--dark"
523                                    placeholder="Search address or city"
524                                />
525                                <div class="opening-search__pin-map lp-icon lp-input-icon lp-input-icon--pin-map-2"></div>
526                            </div>
527                            <div class="opening-search__search-results js-search-results">
528                                <div class="opening-search__results-container js-results-container"></div>
529                                <div class="opening-search__search-in-progress js-search-in-progress hide">
530                                    <i class="lp-i lp-i--spinner lp-i--pulse"></i>
531                                </div>
532                                <div class="opening-search__predefined-links js-predefined-links hide">
533                                </div>              
534                            </div>
535                        </div>
536
537                            <button class="opening-search__search-button js-search-button lp-btn lp-btn--filled button-style-2">
538                                <span class="lp-btn__content">Search</span>
539                            </button>
540
541                <div class="opening-search-sound lp-socials js-sound social_icons-style-2">
542                    
543                    <a href="#" class="lp-socials__link socials__link ">
544                        <span class="lp-icon lp-icon--sound js-sound-icon" style="display: none;"></span>
545
546                        <span class="lp-icon lp-icon--mute js-mute-icon" ></span>
547                    </a>
548                </div>
549            </div>
550            <ul class="lp-socials social_icons-style-2 opening-search-socials">
551            
552            </ul>        </div>
553
554        
555    </div>
556</div>
557
558</section>
559<section id="section-4e9be597-0c57-4cc1-ad9e-26698df89dc9"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="b57584cc-7b27-435c-abd6-2277ce40a476">
560<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css"/>
561<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js"></script>
561
562
563<div class="stats-list-container lp-vertical-paddings"
564  style="--titleColor: rgba(0, 0, 0, 1); --statsTileBackgroundColor: rgba(0, 0, 0, 0); --statsValueColor: rgba(0, 0, 0, 1); --statsTitleColor: rgba(0, 0, 0, 1)">
565  <div class="stats-list-title-group lp-title-group">
566    <p class="stats-list-title-group__pre-title">Our Mission</p>
567    <h2 class="stats-list-title-group__title  stats-list-title-group__with-pre-title">Simplifying Real Estate For You</h2>
568    <div class="stats-list-title-group__description"><p>Our mission at Couture Real Estate Group is simple yet powerful: to simplify the real estate process for you. We believe that every client deserves personal attention and a tailored approach that meets their unique needs. As your trusted partner, we go above and beyond to make your experience seamless, stress-free, and rewarding, no matter if you are buying or selling.</p></div>
569  </div>
570
571  <div class="stats-list splide js-stats-list" data-arrows-style="">
572    <div class="splide__track">
573      <div class="splide__list">
574        <div class="stats-list__item splide__slide js-stats-list-item">
575          
576          <p class="stats-list__title js-value">20+</p>
577          <p class="stats-list__desc">Years of Experience</p>
578        </div>
579        <div class="stats-list__item splide__slide js-stats-list-item">
580          
581          <p class="stats-list__title js-value">100%</p>
582          <p class="stats-list__desc">Client Satisfaction</p>
583        </div>
584        <div class="stats-list__item splide__slide js-stats-list-item">
585          
586          <p class="stats-list__title js-value">$50M+</p>
587          <p class="stats-list__desc">Transactions</p>
588        </div>
589      </div>
590    </div>
591  </div>
592</div>
593</section>
594<section id="section-fba75ce4-28b8-44ae-9e59-29052c7ca6c7"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="1ac6a4c8-74e8-4359-bc07-630d9ecd7326">
595<div class="standard-cta lp-vertical-paddings " style="--titleTextColor: rgba(0, 0, 0, 1);">
596  
597  <div class="standard-cta__container">
598    <div class="standard-cta__title-group lp-title-group">
599      <p class="standard-cta__pre-title lp-text--pretitle ">Experience the Couture difference</p>
600      <h2 class="standard-cta__title js-title standard-cta__title--with-pretitle">Your Solution Starts Here</h2>
601      
602    </div>
603    
604    <div class="standard-cta__description"><p>When you choose Couture Real Estate Group, you gain access to a wealth of expertise and insights into the Livermore Valley market. As an experienced real estate agent, Katherine Couture takes the time to truly understand your goals and aspirations. Armed with this knowledge, she crafts a personalized strategy to ensure you achieve your desired outcomes. With Katherine by your side, you can expect exceptional service, expert negotiation skills, and unwavering dedication to your success.</p></div>
605    
606  </div>
607</div>
608</section>
609<section id="section-57e3def3-0b54-4364-ba92-3c2da73df25a"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="9e19adb8-cf89-4fae-8080-d1a77c6a3b57">
610  <div class="gallery-style-menu lp-vertical-paddings">
611
612  <div class="gallery-style-menu-grid  gallery-style-menu-grid--3">
613      <a class="gallery-style-menu-grid__item lp_animation-img-zoom"
614 href="/buyers-team"            >
615
616        <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/82f018e8-722c-4360-89c9-57d2a43bcc16" 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/82f018e8-722c-4360-89c9-57d2a43bcc16 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/82f018e8-722c-4360-89c9-57d2a43bcc16 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/82f018e8-722c-4360-89c9-57d2a43bcc16 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/82f018e8-722c-4360-89c9-57d2a43bcc16 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/82f018e8-722c-4360-89c9-57d2a43bcc16 2000w" alt="Buy a Home" sizes="(max-width: 768px) 100vw, 50vw" class="gallery-style-menu-grid__image portrait" loading="lazy">
617        <h3 class="gallery-style-menu-grid__title">Buy a Home</h3>
618      </a>
619      <a class="gallery-style-menu-grid__item lp_animation-img-zoom"
620 data-type="CONTACT_US"          >
621
622        <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/91392a03-7878-4ee7-859d-942cbb9cd798" 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/91392a03-7878-4ee7-859d-942cbb9cd798 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/91392a03-7878-4ee7-859d-942cbb9cd798 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/91392a03-7878-4ee7-859d-942cbb9cd798 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/91392a03-7878-4ee7-859d-942cbb9cd798 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/91392a03-7878-4ee7-859d-942cbb9cd798 2000w" alt="Contact Us" sizes="(max-width: 768px) 100vw, 50vw" class="gallery-style-menu-grid__image portrait" loading="lazy">
623        <h3 class="gallery-style-menu-grid__title">Contact Us</h3>
624      </a>
625      <a class="gallery-style-menu-grid__item lp_animation-img-zoom"
626 href="/sellers-team"            >
627
628        <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/936b2761-9dc2-46cf-bf59-ea91d4f4504e" 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/936b2761-9dc2-46cf-bf59-ea91d4f4504e 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/936b2761-9dc2-46cf-bf59-ea91d4f4504e 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/936b2761-9dc2-46cf-bf59-ea91d4f4504e 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/936b2761-9dc2-46cf-bf59-ea91d4f4504e 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/936b2761-9dc2-46cf-bf59-ea91d4f4504e 2000w" alt="Sell a Home" sizes="(max-width: 768px) 100vw, 50vw" class="gallery-style-menu-grid__image portrait" loading="lazy">
629        <h3 class="gallery-style-menu-grid__title">Sell a Home</h3>
630      </a>
631  </div>
632</div>
633</section>
634<section id="section-94299c24-639b-4cf2-a15f-710c04b9b187"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="1ac6a4c8-74e8-4359-bc07-630d9ecd7326">
635<div class="standard-cta lp-vertical-paddings " style="--titleTextColor: rgba(0, 0, 0, 1);">
636  <div class="standard-cta__image">
637    <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/12c9b6a8-db36-4017-af0d-efa822a9e418" 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/12c9b6a8-db36-4017-af0d-efa822a9e418 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/12c9b6a8-db36-4017-af0d-efa822a9e418 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/12c9b6a8-db36-4017-af0d-efa822a9e418 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/12c9b6a8-db36-4017-af0d-efa822a9e418 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/12c9b6a8-db36-4017-af0d-efa822a9e418 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/12c9b6a8-db36-4017-af0d-efa822a9e418 3456w" alt="Katherine Couture Pleasanton, CA Real Estate Agent Headsh
637ot" class="standard-cta__default-image" sizes="50vw" loading="lazy">
638    
639  </div>
640  
641  <div class="standard-cta__container">
642    <div class="standard-cta__title-group lp-title-group">
643      <p class="standard-cta__pre-title lp-text--pretitle standard-cta__pre-title--with-line">Meet the Team</p>
644      <h2 class="standard-cta__title js-title ">Welcome to a world of refined living</h2>
645      
646    </div>
647    
648    <div class="standard-cta__description"><p>Katherine Couture | CA DRE# 01333990</p>
649<p>Imagine a stress-free experience where every step is guided by a seasoned professional. With Couture Real Estate Group, you can rest assured that your investment is in capable hands.</p>
650<p>Discover luxury real estate with Mike and Katherine Couture, a dedicated husband and wife team renowned for their exceptional service and market expertise. With a combined experience of over two decades, they are committed to helping you find or sell your perfect home.</p>
651<div>We pride ourselves on integrity, personalized service, and a client-first approach. Whether buying or selling, we offer expert guidance and unwavering dedication to make your real estate journey seamless and successful.</div>
652<div>&nbsp;</div>
653<div>Experience the Couture difference today&mdash;where luxury meets lifestyle.</div></div>
654      <div class="standard-cta-button-container">
655
656        <a
657            href="/team"
658            
659            class="standard-cta-button-container__button lp-btn button-style-1"
660            
661            
662            
663            
664            
665            >
666                              <span class="lp-btn__content">Learn More</span>
667            </a>
668
669
670      </div>
671    
672  </div>
673</div>
674</section>
675<section  class="image-section is-font-color-light is-background-color-light" id="section-c8a0ad1c-794d-403e-bb62-eb33fbb26159" data-el-id="7b64bc4a-88bb-4371-aa48-2acffa9f4150">
676<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css"/>
677<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js"></script>
677
678
679
680<div class="testimonials-slider lp-container lp-vertical-paddings" style="--titleTextColor: rgba(255, 255, 255, 1); --quoteBackColor: rgba(0, 0, 0, 0); --testimonialTestColor: rgba(0, 0, 0, 1); --testimonialBack: rgba(245, 242, 238, 1);">
681
682        <div class="testimonials-slider-heading">
683                <div class="testimonials-slider-heading__pre-title lp-text--pretitle">See Why Our Clients Love Us</div>
684                <h2 class="testimonials-slider-heading__title testimonials-slider-heading__title--with-pre-title">Testimonials</h2>
685        </div>
686
687    <div class="testimonials-slider-slider-wrapper">
688        <div class="testimonials-slider-slider splide js-slider testimonials-slider-slider__more-slides testimonials-slider-slider__two-columns js-two-columns" data-items-length="10" data-autoplay-interval="5">
689            <div class="splide__track">
690                <div class="splide__list">
691                        <div class="testimonials-slider-slider__item splide__slide">
692                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
693                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">We have used Katherine as our realtor multiple times, both as buyers and as sellers. She has been amazing each time! Katherine is organized, detailed, and very knowledgeable. Having her guide us through the real estate processes was such a blessing! We always knew that she was looking out for our best interests and would follow through on commitments. Thank you, Katherine!</q></div>
694                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">We have used Katherine as our realtor multiple times, both as buyers and as sellers. She has been amazing each time! Katherine is organized, detailed, and very knowledgeable. Having her guide us through the real estate processes was such a blessing! We always knew that she was looking out for our best interests and would follow through on commitments. Thank you, Katherine!</q></div>
695                            
696                                <div class="testimonials-slider-slider__author">Cari E.</div>
697                        </div>
698                        <div class="testimonials-slider-slider__item splide__slide">
699                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
700                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">Katherine did a great job of selling our house early this year at a very difficult time in the market. Despite increased interest rates and the market downturn, Katherine sold our home in excess of the listing price after she secured multiple bids within days of the house hitting the market. Her strong market knowledge, combined with her superb staging guidance and spot-on suggested minor improvements, surely contributed to the successful sale. We strongly recommend Katherine to anyone looking to sell their home in the Tri-Valley.</q></div>
701                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">Katherine did a great job of selling our house early this year at a very difficult time in the market. Despite increased interest rates and the market downturn, Katherine sold our home in excess of the listing price after she secured multiple bids within days of the house hitting the market. Her strong market knowledge, combined with her superb staging guidance and spot-on suggested minor improvements, surely contributed to the successful sale. We strongly recommend Katherine to anyone looking to sell their home in the Tri-Valley.</q></div>
702                            
703                                <div class="testimonials-slider-slider__author">Curt S.</div>
704                        </div>
705                        <div class="testimonials-slider-slider__item splide__slide">
706                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
707                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">Katherine was amazing throughout the process. We are first-time home buyers, and we couldn’t be happier with how easy she made everything. She was able to work around our crazy work schedules and kept us updated with anything new that popped up. Katherine was very prompt with any email and answered any questions we had right away, which helped us out the most. I will definitely be recommending her to anyone who is looking for a realtor. She is very approachable, and her personality is so inviting that she is someone you are glad to have met and worked with.</q></div>
708                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">Katherine was amazing throughout the process. We are first-time home buyers, and we couldn’t be happier with how easy she made everything. She was able to work around our crazy work schedules and kept us updated with anything new that popped up. Katherine was very prompt with any email and answered any questions we had right away, which helped us out the most. I will definitely be recommending her to anyone who is looking for a realtor. She is very approachable, and her personality is so inviting that she is someone you are glad to have met and worked with.</q></div>
709                            
710                                <div class="testimonials-slider-slider__author">Rebecca G.</div>
711                        </div>
712                        <div class="testimonials-slider-slider__item splide__slide">
713                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
714                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">Katherine found us a home in the crazy housing market of 2022! She has really good connections in the neighborhoods and knows a lot of people. This enabled her to show us homes that matched our unique needs. Katherine is a consummate professional. She is very diligent and works very well with all parties involved, keeping everyone updated regarding what they need to do next (buyer, seller, inspectors, lender). I would wholeheartedly recommend Katherine as a realtor for any home buying/selling needs.</q></div>
715                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">Katherine found us a home in the crazy housing market of 2022! She has really good connections in the neighborhoods and knows a lot of people. This enabled her to show us homes that matched our unique needs. Katherine is a consummate professional. She is very diligent and works very well with all parties involved, keeping everyone updated regarding what they need to do next (buyer, seller, inspectors, lender). I would wholeheartedly recommend Katherine as a realtor for any home buying/selling needs.</q></div>
716                            
717                                <div class="testimonials-slider-slider__author">Murali N.</div>
718                        </div>
719                        <div class="testimonials-slider-slider__item splide__slide">
720                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
721                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">Katherine is by far the best realtor we have ever had. She gave great advice on what renovations we needed and had contractors who were immediately ready. They were able to start the renovations right away and at a very reasonable cost. Katherine made sure the work was done properly and to our satisfaction. She helped us every step of the way during this difficult journey, answering any and all questions asked of her. Katherine is the best realtor I have ever worked with and would highly recommend her for any seller or buyer. I cannot praise Katherine highly enough for all the hard 
721work she put into selling our home. And to prove this, Katherine was able to sell our home in 2 days! That should tell you how good she really is.</q></div>
722                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">Katherine is by far the best realtor we have ever had. She gave great advice on what renovations we needed and had contractors who were immediately ready. They were able to start the renovations right away and at a very reasonable cost. Katherine made sure the work was done properly and to our satisfaction. She helped us every step of the way during this difficult journey, answering any and all questions asked of her. Katherine is the best realtor I have ever worked with and would highly recommend her for any seller or buyer. I cannot praise Katherine highly enough for all the hard work she put into selling our home. And to prove this, Katherine was able to sell our home in 2 days! That should tell you how good she really is.</q></div>
723                            
724                                <div class="testimonials-slider-slider__author">Ed E.</div>
725                        </div>
726                        <div class="testimonials-slider-slider__item splide__slide">
727                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
728                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">Katherine went beyond in helping me to sell our family home. She was courteous, always optimistic, and responsive. What Katherine brings to the table is caring and compassion for her clients. My situation was a bit tricky, and she was a wonderful support throughout the entire process, assisting me in a myriad of ways. As the seller's market was beginning to weaken, she kept at it and got us the best agreement. I am so thankful Katherine was recommended to me!</q></div>
729                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">Katherine went beyond in helping me to sell our family home. She was courteous, always optimistic, and responsive. What Katherine brings to the table is caring and compassion for her clients. My situation was a bit tricky, and she was a wonderful support throughout the entire process, assisting me in a myriad of ways. As the seller's market was beginning to weaken, she kept at it and got us the best agreement. I am so thankful Katherine was recommended to me!</q></div>
730                            
731                                <div class="testimonials-slider-slider__author">Jamie L.</div>
732                        </div>
733                        <div class="testimonials-slider-slider__item splide__slide">
734                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
735                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">Working with Katherine was pretty amazing. She did a fantastic job of selling our coastal home, located 185 miles away! Hired a great photographer and videographer. Drove to the property twice herself, and worked well with a local realtor there. We were amazed at how quickly our property sold, with multiple offers that exceeded our expectations. Personable and professional realtor. The best of the best!</q></div>
736                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">Working with Katherine was pretty amazing. She did a fantastic job of selling our coastal home, located 185 miles away! Hired a great photographer and videographer. Drove to the property twice herself, and worked well with a local realtor there. We were amazed at how quickly our property sold, with multiple offers that exceeded our expectations. Personable and professional realtor. The best of the best!</q></div>
737                            
738                                <div class="testimonials-slider-slider__author">Patrice L.</div>
739                        </div>
740                        <div class="testimonials-slider-slider__item splide__slide">
741                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
742                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">Katherine Couture was not only an amazing realtor, but was a helpful resource as we transitioned to life in the Tri-Valley! A respected realtor and leader in the community, Katherine patiently walked us through the ins and outs of the market, was super accessible and responsive to our needs, even working closely with our mortgage broker to ensure everything went smoothly for us. If you're looking for someone you can trust, who understands your interests and will go to bat for you, look no further than Katherine Couture.</q></div>
743                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">Katherine Couture was not only an amazing realtor, but was a helpful resource as we transitioned to life in the Tri-Valley! A respected realtor and leader in the community, Katherine patiently walked us through the ins and outs of the market, was super accessible and responsive to our needs, even working closely with our mortgage broker to ensure everything went smoothly for us. If you're looking for someone you can trust, who understands your interests and will go to bat for you, look no further than Katherine Couture.</q></div>
744                            
745                                <div class="testimonials-slider-slider__author">Bryan H.</div>
746                        </div>
747                        <div class="testimonials-slider-slider__item splide__slide">
748                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
749                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">We decided to list, and within a week, Katherine had us on the market and delivered pre-qualified offers at well over asking. She negotiated everything in our favor, including free rent-back. She then helped us secure our new property in downtown Livermore and lined up the timing perfectly. She's a top-notch realtor and true expert in Livermore Valley Real Estate!</q></div>
750                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">We decided to list, and within a week, Katherine had us on the market and delivered pre-qualified offers at well over asking. She negotiated everything in our favor, including free rent-back. She then helped us secure our new property in downtown Livermore and lined up the timing perfectly. She's a top-notch realtor and true expert in Livermore Valley Real Estate!</q></div>
751                            
752                                <div class="testimonials-slider-slider__author">Lisa S.</div>
753                        </div>
754                        <div class="testimonials-slider-slider__item splide__slide">
755                            <span class="testimonials-slider-slider__quotes lp-icon link-icon--quotes"></span>
756                            <div class="testimonials-slider-slider__body--mobile js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="50" data-max-characters="120"><q class="testimonials-slider-slider__quote">Katherine is a gem and a complete pleasure to work with! I highly recommend her and her entire team.</q></div>
757                            <div class="testimonials-slider-slider__body js-collapsible-text" data-link-style="hyperlink-style-1" data-min-characters="300" data-max-characters="500"><q class="testimonials-slider-slider__quote">Katherine is a gem and a complete pleasure to work with! I highly recommend her and her entire team.</q></div>
758                            
759                                <div class="testimonials-slider-slider__author">Anthony W.</div>
760                        </div>
761                </div>
762            </div>
763        </div>
764
765            <div class="testimonials-slider-arrows js-arrows">
766                <button class="lp-arrow lp-arrow--prev js-arrow--prev "></button>
767                <button class="lp-arrow lp-arrow--next js-arrow--next "></button>
768            </div>
769    </div>
770
771        <div class="testimonials-slider-btn-holder">
772        <a
773            href="/testimonials"
774            
775            class="lp-btn before-and-after-slider__btn button-style-2"
776            
777            
778            
779            
780            
781            >
782                                    <span class="lp-btn__content">View All</span>
783            </a>
784        </div>
785</div>
786
787</section>
788<section id="section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="28010ed3-701e-4785-bc96-ac801b31660b">
789
790
791    <link
792    rel="stylesheet"
793    href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css"
794    />
795
796    
796<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js"></script>
796
797    
797<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide-extension-grid.min.js"></script>
797
798
799
800    <div class="properties-slider lp-container lp-vertical-paddings " style="
801        --titleTextColor: rgba(0, 0, 0, 1);
802        --detailsBgColor: rgba(245, 242, 238, 1);
803        --detailsTextColor: rgba(0, 0, 0, 1);
804        --upperBgColor: rgba(0, 0, 0, 0);">
805
806        <div class="properties-slider__title-group lp-group-title">
807            <p class="properties-slider__pretitle lp-text--pretitle">Browse Our</p>
808            <h2 class="properties-slider__title properties-slider__title--with-pretitle">Portfolio</h2>
809        </div>
810
811        <div class="properties-slider__slider-container">
812            <div class="properties-slider-slider  properties-slider-slider--horizontal splide js-slider">
813                <div class="properties-slider-slider__splide-track splide__track ">
814                   <ul class="properties-slider-slider__splide-list splide__list ">
815                                <li class="properties-slider-card splide__slide js-card">
816                                    <div class="properties-slider-card__image-container">
817                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41122083/-6102883450073335925.jpg" alt="101 Acorn Way" class="properties-slider-card__image" loading="lazy">
818                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
819                                    </div>
820                                    <div class="properties-slider-card__details js-card__details">
821                                        <p class="properties-slider-card__price">$2,496,000</p>
822                                            <p class="properties-slider-card__address">101 Acorn Way, Livermore, CA 94550</p>
823                                        <ul class="properties-slider-card__features js-card__features">
824                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">6 Beds</li>
825                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">4 Baths</li>
826                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">4,037 Sq.Ft.</li>
827                                        </ul>
828                                    </div>
829                                    <a href="/properties/101-acorn-way-livermore-ca-us-94550-41122083" class="properties-slider-card__link"></a>
830                                </li>
831                                <li class="properties-slider-card splide__slide js-card">
832                                    <div class="properties-slider-card__image-container">
833                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41148188/-5841717463333222900.jpg" alt="1579 Aria Ct" class="properties-slider-card__image" loading="lazy">
834                                        <span class="properties-slider-card__tag lp-tag">For Sale</span>
835                                    </div>
836                                    <div class="properties-slider-card__details js-card__details">
837                                        <p class="properties-slider-card__price">$2,478,888</p>
838                                            <p class="properties-slider-card__address">1579 Aria Ct, Livermore, CA 94550</p>
839                                        <ul class="properties-slider-card__features js-card__features">
840                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">5 Beds</li>
841                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">5 Baths</li>
842                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">3,532 Sq.Ft.</li>
843                                        </ul>
844                                    </div>
845                                    <a href="/properties/1579-aria-ct-livermore-ca-us-94550-41148188" class="properties-slider-card__link"></a>
846                                </li>
847                                <li class="properties-slider-card splide__slide js-card">
848                                    <div class="properties-slider-card__image-container">
849                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41142453/5222283091309908044.jpg" alt="125 Acorn Way" class="properties-slider-card__image" loading="lazy">
850                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
851                                    </div>
852                                    <div class="properties-slider-card__details js-card__details">
853                                        <p class="properties-slider-card__price">$2,468,000</p>
854                                            <p class="properties-slider-card__address">125 Acorn Way, Livermore, CA 94550</p>
855                                        <ul class="properties-slider-card__features js-card__features">
856                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">6 Beds</li>
857                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">5 Baths</li>
858                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">3,532 Sq.Ft.</li>
859                                        </ul>
860                                    </div>
861                                    <a href="/properties/125-acorn-way-livermore-ca-us-94550-41142453" class="properties-slider-card__link"></a>
862                                </li>
863                                <li class="properties-slider-card splide__slide js-card">
864                                    <div class="properties-slider-card__image-container">
865                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41084372/375804271813793426.jpg" alt="1071 Lexington Way" class="properties-slider-card__image" loading="lazy">
866                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
867                                    </div>
868                                    <div class="properties-slider-card__details js-card__details">
869                                        <p class="properties-slider-card__price">$2,427,000</p>
870                                            <p class="properties-slider-card__address">1071 Lexington Way, Livermore, CA 94550</p>
871                                        <ul class="properties-slider-card__features js-card__features">
872                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">5 Beds</li>
873                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
874                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">2,894 Sq.Ft.</li>
875                                        </ul>
876                                    </div>
877                                    <a href="/properties/1071-lexington-way-livermore-ca-94550-41084372" class="properties-slider-card__link"></a>
878                                </li>
879                                <li class="properties-slider-card splide__slide js-card">
880                                    <div class="properties-slider-card__image-container">
881                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41087056/-6247096987571933989.jpg" alt="282 Prato Way" class="properties-slider-card__image" loading="lazy">
882                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
883                                    </div>
884                                    <div class="properties-slider-card__details js-card__details">
885                                        <p class="properties-slider-card__price">$2,380,000</p>
886                                            <p class="properties-slider-card__address">282 Prato Way, Livermore, CA 94550</p>
887                                        <ul class="properties-slider-card__features js-card__features">
888                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
889                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
890                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">3,023 Sq.Ft.</li>
891                                        </ul>
892                                    </div>
893                                    <a href="/properties/282-prato-way-livermore-ca-94550-41087056" class="properties-slider-card__link"></a>
894                                </li>
895                                <li class="properties-slider-card splide__slide js-card">
896                                    <div class="properties-slider-card__image-container">
897                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41081780/6481401459432158083.jpg" alt="26 Raccolio Way" class="properties-slider-card__image" loading="lazy">
898                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
899                                    </div>
900                                    <div class="properties-slider-card__details js-card__details">
901                                        <p class="properties-slider-card__price">$2,250,000</p>
902                                            <p class="properties-slider-card__address">26 Raccolio Way, Livermore, CA 94550</p>
903                                        <ul class="properties-slider-card__features js-card__features">
904                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
905                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
906                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">3,023 Sq.Ft.</li>
907                                        </ul>
908                                    </div>
909                                    <a href="/properties/26-raccolio-way-livermore-ca-94550-41081780" class="properties-slider-card__link"></a>
910                                </li>
911                                <li class="properties-slider-card splide__slide js-card">
912                                    <div class="properties-slider-card__image-container">
913                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41060023/1902080463945327045.jpg" alt="3058 Paseo Granada" class="properties-slider-card__image" loading="lazy">
914                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
915                                    </div>
916                                    <div class="properties-slider-card__details js-card__details">
917                                        <p class="properties-slider-card__price">$2,250,000</p>
918                                            <p class="properties-slider-card__address">3058 Paseo Granada, Pleasanton, CA 94566</p>
919                                        <ul class="properties-slider-card__features js-card__features">
920                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
921                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
922                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">3,027 Sq.Ft.</li>
923                                        </ul>
924                                    </div>
925                                    <a href="/properties/3058-paseo-granada-pleasanton-ca-94566-41060023" class="properties-slider-card__link"></a>
926                                </li>
927                                <li class="properties-slider-card splide__slide js-card">
928                                    <div class="properties-slider-card__image-container">
929                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41101879/3584692592966387942.jpg" alt="1646 Cascina Ct" class="properties-slider-card__image" loading="lazy">
930                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
931                                    </div>
932                                    <div class="properties-slider-card__details js-card__details">
933                                        <p class="properties-slider-card__price">$2,205,000</p>
934                                            <p class="properties-slider-card__address">1646 Cascina Ct, Livermore, CA 94550</p>
935                                        <ul class="properties-slider-card__features js-card__features">
936                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
937                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
938                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">3,023 Sq.Ft.</li>
939                                        </ul>
940                                    </div>
941                                    <a href="/properties/1646-cascina-ct-livermore-ca-94550-41101879" class="properties-slider-card__link"></a>
942                                </li>
943                                <li class="properties-slider-card splide__slide js-card">
944                                    <div class="properties-slider-card__image-container">
945                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41089703/3817023967630595172.jpg" alt="1599 Cielo Ct" class="properties-slider-card__image" loading="lazy">
946                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
947                                    </div>
948                                    <div class="properties-slider-card__details js-card__details">
949                                        <p class="properties-slider-card__price">$2,200,000</p>
950                                            <p class="properties-slider-card__address">1599 Cielo Ct, Livermore, CA 94550</p>
951                                        <ul class="properties-slider-card__features js-card__features">
952                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
953                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">4 Baths</li>
954                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">2,834 Sq.Ft.</li>
955                                        </ul>
956                                    </div>
957                                    <a href="/properties/1599-cielo-ct-livermore-ca-94550-41089703" class="properties-slider-card__link"></a>
958                                </li>
959                                <li class="properties-slider-card splide__slide js-card">
960                                    <div class="properties-slider-card__image-container">
961                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41098274/6980224851785733697.jpg" alt="1591 Aria Ct" class="properties-slider-card__image" loading="lazy">
962                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
963                                    </div>
964                                    <div class="properties-slider-card__details js-card__details">
965                                        <p class="properties-slider-card__price">$2,150,000</p>
966                                            <p class="properties-slider-card__address">1591 Aria Ct, Livermore, CA 94550</p>
967                                        <ul class="properties-slider-card__features js-card__features">
968                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
969                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
970                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">3,328 Sq.Ft.</li>
971                                        </ul>
972                                    </div>
973                                    <a href="/properties/1591-aria-ct-livermore-ca-94550-41098274" class="properties-slider-card__link"></a>
974                                </li>
975                                <li class="properties-slider-card splide__slide js-card">
976                                    <div class="properties-slider-card__image-container">
977                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41116033/-8353074685476115288.jpg" alt="1650 Vetta Dr" class="properties-slider-card__image" loading="lazy">
978                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
979                                    </div>
980                                    <div class="properties-slider-card__details js-card__details">
981                                        <p class="properties-slider-card__price">$2,098,000</p>
982                                            <p class="properties-slider-card__address">1650 Vetta Dr, Livermore, CA 94550</p>
983                                        <ul class="properties-slider-card__features js-card__features">
984                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
985                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
986                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">2,834 Sq.Ft.</li>
987                                        </ul>
988                                    </div>
989                                    <a href="/properties/1650-vetta-dr-livermore-ca-us-94550-41116033" class="properties-slider-card__link"></a>
990                                </li>
991                                <li class="properties-slider-card splide__slide js-card">
992                                    <div class="properties-slider-card__image-container">
993                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41138854/8910832333766423091.jpg" alt="1800 Versailles Ave" class="properties-slider-card__image" loading="lazy">
994                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
995                                    </div>
996                                    <div class="properties-slider-card__details js-card__details">
997                                        <p class="properties-slider-card__price">$1,950,000</p>
998                                            <p class="properties-slider-card__address">1800 Versailles Ave, Alameda, CA 94501</p>
999                                        <ul class="properties-slider-card__features js-card__features">
1000                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
1001                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1002                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,820 Sq.Ft.</li>
1003                                        </ul>
1004                                    </div>
1005                                    <a href="/properties/1800-versailles-ave-alameda-ca-us-94501-41138854" class="properties-slider-card__link"></a>
1006                                </li>
1007                                <li class="properties-slider-card splide__slide js-card">
1008                                    <div class="properties-slider-card__image-container">
1009                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41022555/-6750942574723683880.jpg" alt="71 Raccolio Way" class="properties-slider-card__image" loading="lazy">
1010                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1011                                    </div>
1012                                    <div class="properties-slider-card__details js-card__details">
1013                                        <p class="properties-slider-card__price">$1,935,000</p>
1014                                            <p class="properties-slider-card__address">71 Raccolio Way, Livermore, CA 94550</p>
1015                                        <ul class="properties-slider-card__features js-card__features">
1016                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
1017                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
1018                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">2,834 Sq.Ft.</li>
1019                                        </ul>
1020                                    </div>
1021                                    <a href="/properties/71-raccolio-way-livermore-ca-94550-41022555" class="properties-slider-card__link"></a>
1022                                </li>
1023                                <li class="properties-slider-card splide__slide js-card">
1024                                    <div class="properties-slider-card__image-container">
1025                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41024749/-4572270242310928220.jpg" alt="1066 Camino Ramon" class="properties-slider-card__image" loading="lazy">
1026                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1027                                    </div>
1028                                    <div class="properties-slider-card__details js-card__details">
1029                                        <p class="properties-slider-card__price">$1,600,000</p>
1030                                            <p class="properties-slider-card__address">1066 Camino Ramon, San Jose, CA 95125</p>
1031                                        <ul class="properties-slider-card__features js-card__features">
1032                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">3 Beds</li>
1033                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1034                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,547 Sq.Ft.</li>
1035                                        </ul>
1036                                    </div>
1037                                    <a href="/properties/1066-camino-ramon-san-jose-ca-95125-41024749" class="properties-slider-card__link"></a>
1038                                </li>
1039                                <li class="properties-slider-card splide__slide js-card">
1040                                    <div class="properties-slider-card__image-container">
1041                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41055306/8024696178642681933.jpg" alt="1171 Innsbruck St" class="properties-slider-card__image" loading="lazy">
1042                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1043                                    </div>
1044                                    <div class="properties-slider-card__details js-card__details">
1045                                        <p class="properties-slider-card__price">$1,551,000</p>
1046                                            <p class="properties-slider-card__address">1171 Innsbruck St, Livermore, CA 94550</p>
1047                                        <ul class="properties-slider-card__features js-card__features">
1048                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
1049                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1050                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">2,128 Sq.Ft.</li>
1051                                        </ul>
1052                                    </div>
1053                                    <a href="/properties/1171-innsbruck-st-livermore-ca-94550-41055306" class="properties-slider-card__link"></a>
1054                                </li>
1055                                <li class="properties-slider-card splide__slide js-card">
1056                                    <div class="properties-slider-card__image-container">
1057                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41133559/-4350358090532131953.jpg" alt="34517 Windflower Ln" class="properties-slider-card__image" loading="lazy">
1058                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1059                                    </div>
1060                                    <div class="properties-slider-card__details js-card__details">
1061                                        <p class="properties-slider-card__price">$1,470,000</p>
1062                                            <p class="properties-slider-card__address">34517 Windflower Ln, Union City, CA 94587</p>
1063                                        <ul class="properties-slider-card__features js-card__features">
1064                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
1065                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
1066                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,914 Sq.Ft.</li>
1067                                        </ul>
1068                                    </div>
1069                                    <a href="/properties/34517-windflower-ln-union-city-ca-us-94587-41133559" class="properties-slider-card__link"></a>
1070                                </li>
1071                                <li class="properties-slider-card splide__slide js-card">
1072                                    <div class="properties-slider-card__image-container">
1073                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41115501/-4019765663937933309.jpg" alt="393 Lloyd St, Livermore" class="properties-slider-card__image" loading="lazy">
1074                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1075                                    </div>
1076                                    <div class="properties-slider-card__details js-card__details">
1077                                        <p class="properties-slider-card__price">$1,432,000</p>
1078                                            <p class="properties-slider-card__address">393 Lloyd St, Livermore, CA 94550</p>
1079                                        <ul class="properties-slider-card__features js-card__features">
1080                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">5 Beds</li>
1081                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">4 Baths</li>
1082                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">2,561 Sq.Ft.</li>
1083                                        </ul>
1084                                    </div>
1085                                    <a href="/properties/393-lloyd-st-livermore-livermore-ca-us-94550-41115501" class="properties-slider-card__link"></a>
1086                                </li>
1087                                <li class="properties-slider-card splide__slide js-card">
1088                                    <div class="properties-slider-card__image-container">
1089                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41126471/1973696256284658936.jpg" alt="907 Hazel St" class="properties-slider-card__image" loading="lazy">
1090                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1091                                    </div>
1092                                    <div class="properties-slider-card__details js-card__details">
1093                                        <p class="properties-slider-card__price">$1,348,000</p>
1094                                            <p class="properties-slider-card__address">907 Hazel St, Livermore, CA 94550</p>
1095                                        <ul class="properties-slider-card__features js-card__features">
1096                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">5 Beds</li>
1097                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
1098                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">2,068 Sq.Ft.</li>
1099                                        </ul>
1100                                    </div>
1101                                    <a href="/properties/907-hazel-st-livermore-ca-us-94550-41126471" class="properties-slider-card__link"></a>
1102                                </li>
1103                                <li class="properties-slider-card splide__slide js-card">
1104                                    <div class="properties-slider-card__image-container">
1105                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41081398/-1253078773764137919.jpg" alt="649 Hanover St" class="properties-slider-card__image" loading="lazy">
1106                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1107                                    </div>
1108                                    <div class="properties-slider-card__details js-card__details">
1109                                        <p class="properties-slider-card__price">$1,280,000</p>
1110                                            <p class="properties-slider-card__address">649 Hanover St, Livermore, CA 94551</p>
1111                                        <ul class="properties-slider-card__features js-card__features">
1112                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">3 Beds</li>
1113                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1114                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,366 Sq.Ft.</li>
1115                                        </ul>
1116                                    </div>
1117                                    <a href="/properties/649-hanover-st-livermore-ca-94551-41081398" class="properties-slider-card__link"></a>
1118                                </li>
1119                                <li class="properties-slider-card splide__slide js-card">
1120                                    <div class="properties-slider-card__image-container">
1121                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41121559/8928238645330304567.jpg" alt="1718 Pedrozzi Cmn" class="properties-slider-card__image" loading="lazy">
1122                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1123                                    </div>
1124                                    <div class="properties-slider-card__details js-card__details">
1125                                        <p class="properties-slider-card__price">$949,000</p>
1126                                            <p class="properties-slider-card__address">1718 Pedrozzi Cmn, Livermore, CA 94551</p>
1127                                        <ul class="properties-slider-card__features js-card__features">
1128                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
1129                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">4 Baths</li>
1130                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,929 Sq.Ft.</li>
1131                                        </ul>
1132                                    </div>
1133                                    <a href="/properties/1718-pedrozzi-cmn-livermore-ca-94551-41121559" class="properties-slider-card__link"></a>
1134                                </li>
1135                                <li class="properties-slider-card splide__slide js-card">
1136                                    <div class="properties-slider-card__image-container">
1137                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41082053/-6442102827382592935.jpg" alt="725 Discovery Bay Blvd" class="properties-slider-card__image" loading="lazy">
1138                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1139                                    </div>
1140                                    <div class="properties-slider-card__details js-card__details">
1141                                        <p class="properties-slider-card__price">$926,888</p>
1142                                            <p class="properties-slider-card__address">725 Discovery Bay Blvd, Discovery Bay, CA 94505</p>
1143                                        <ul class="properties-slider-card__features js-card__features">
1144                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">4 Beds</li>
1145                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
1146                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">2,865 Sq.Ft.</li>
1147                                        </ul>
1148                                    </div>
1149                                    <a href="/properties/725-discovery-bay-blvd-discovery-bay-ca-94505-41082053" class="properties-slider-card__link"></a>
1150                                </li>
1151                                <li class="properties-slider-card splide__slide js-card">
1152                                    <div class="properties-slider-card__image-container">
1153                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41053303/-5685511529037949310.jpg" alt="236 Canyon Woods Way # C" class="properties-slider-card__image" loading="lazy">
1154                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1155                                    </div>
1156                                    <div class="properties-slider-card__details js-card__details">
1157                                        <p class="properties-slider-card__price">$838,000</p>
1158                                            <p class="properties-slider-card__address">236 Canyon Woods Way # C, San Ramon, CA 94582</p>
1159                                        <ul class="properties-slider-card__features js-card__features">
1160                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">2 Beds</li>
1161                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1162                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,031 Sq.Ft.</li>
1163                                        </ul>
1164                                    </div>
1165                                    <a href="/properties/236-canyon-woods-way-c-san-ramon-ca-94582-41053303" class="properties-slider-card__link"></a>
1166                                </li>
1167                                <li class="properties-slider-card splide__slide js-card">
1168                                    <div class="properties-slider-card__image-container">
1169                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41040372/-8172633893658586764.jpg" alt="162 Dogwood Pl" class="properties-slider-card__image" loading="lazy">
1170                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1171                                    </div>
1172                                    <div class="properties-slider-card__details js-card__details">
1173                                        <p class="properties-slider-card__price">$824,950</p>
1174                                            <p class="properties-slider-card__address">162 Dogwood Pl, San Ramon, CA 94583</p>
1175                                        <ul class="properties-slider-card__features js-card__features">
1176                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">2 Beds</li>
1177                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1178                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">960 Sq.Ft.</li>
1179                                        </ul>
1180                                    </div>
1181                                    <a href="/properties/162-dogwo
1181od-pl-san-ramon-ca-94583-41040372" class="properties-slider-card__link"></a>
1182                                </li>
1183                                <li class="properties-slider-card splide__slide js-card">
1184                                    <div class="properties-slider-card__image-container">
1185                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41107051/-1896722606714667979.jpg" alt="760 Griffey Way" class="properties-slider-card__image" loading="lazy">
1186                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1187                                    </div>
1188                                    <div class="properties-slider-card__details js-card__details">
1189                                        <p class="properties-slider-card__price">$750,000</p>
1190                                            <p class="properties-slider-card__address">760 Griffey Way, Galt, CA 95632</p>
1191                                        <ul class="properties-slider-card__features js-card__features">
1192                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">5 Beds</li>
1193                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
1194                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">2,766 Sq.Ft.</li>
1195                                        </ul>
1196                                    </div>
1197                                    <a href="/properties/760-griffey-way-galt-ca-us-95632-41107051" class="properties-slider-card__link"></a>
1198                                </li>
1199                                <li class="properties-slider-card splide__slide js-card">
1200                                    <div class="properties-slider-card__image-container">
1201                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41024547/1751211152197474500.jpg" alt="166 Bluebird Ave" class="properties-slider-card__image" loading="lazy">
1202                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1203                                    </div>
1204                                    <div class="properties-slider-card__details js-card__details">
1205                                        <p class="properties-slider-card__price">$715,000</p>
1206                                            <p class="properties-slider-card__address">166 Bluebird Ave, Livermore, CA 94551</p>
1207                                        <ul class="properties-slider-card__features js-card__features">
1208                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">3 Beds</li>
1209                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1210                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,188 Sq.Ft.</li>
1211                                        </ul>
1212                                    </div>
1213                                    <a href="/properties/166-bluebird-ave-livermore-ca-94551-41024547" class="properties-slider-card__link"></a>
1214                                </li>
1215                                <li class="properties-slider-card splide__slide js-card">
1216                                    <div class="properties-slider-card__image-container">
1217                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41087950/-1604462339702732239.jpg" alt="112 Machado Ct" class="properties-slider-card__image" loading="lazy">
1218                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1219                                    </div>
1220                                    <div class="properties-slider-card__details js-card__details">
1221                                        <p class="properties-slider-card__price">$680,000</p>
1222                                            <p class="properties-slider-card__address">112 Machado Ct, Tracy, CA 95376</p>
1223                                        <ul class="properties-slider-card__features js-card__features">
1224                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">3 Beds</li>
1225                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">3 Baths</li>
1226                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,812 Sq.Ft.</li>
1227                                        </ul>
1228                                    </div>
1229                                    <a href="/properties/112-machado-ct-tracy-ca-95376-41087950" class="properties-slider-card__link"></a>
1230                                </li>
1231                                <li class="properties-slider-card splide__slide js-card">
1232                                    <div class="properties-slider-card__image-container">
1233                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41083619/1434575646788847235.jpg" alt="4777 Apple Tree Cmn" class="properties-slider-card__image" loading="lazy">
1234                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1235                                    </div>
1236                                    <div class="properties-slider-card__details js-card__details">
1237                                        <p class="properties-slider-card__price">$675,000</p>
1238                                            <p class="properties-slider-card__address">4777 Apple Tree Cmn, Livermore, CA 94551</p>
1239                                        <ul class="properties-slider-card__features js-card__features">
1240                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">2 Beds</li>
1241                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1242                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">944 Sq.Ft.</li>
1243                                        </ul>
1244                                    </div>
1245                                    <a href="/properties/4777-apple-tree-cmn-livermore-ca-94551-41083619" class="properties-slider-card__link"></a>
1246                                </li>
1247                                <li class="properties-slider-card splide__slide js-card">
1248                                    <div class="properties-slider-card__image-container">
1249                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41047986/-6764600601104755399.jpg" alt="3035 Dovenshire Dr" class="properties-slider-card__image" loading="lazy">
1250                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1251                                    </div>
1252                                    <div class="properties-slider-card__details js-card__details">
1253                                        <p class="properties-slider-card__price">$507,000</p>
1254                                            <p class="properties-slider-card__address">3035 Dovenshire Dr, Tracy, CA 95376</p>
1255                                        <ul class="properties-slider-card__features js-card__features">
1256                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">3 Beds</li>
1257                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1258                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,339 Sq.Ft.</li>
1259                                        </ul>
1260                                    </div>
1261                                    <a href="/properties/3035-dovenshire-dr-tracy-ca-95376-41047986" class="properties-slider-card__link"></a>
1262                                </li>
1263                                <li class="properties-slider-card splide__slide js-card">
1264                                    <div class="properties-slider-card__image-container">
1265                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41110884/7671746826073728315.jpg" alt="88 E San Fernando St # 804" class="properties-slider-card__image" loading="lazy">
1266                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1267                                    </div>
1268                                    <div class="properties-slider-card__details js-card__details">
1269                                        <p class="properties-slider-card__price">$486,000</p>
1270                                            <p class="properties-slider-card__address">88 E San Fernando St # 804, San Jose, CA 95113</p>
1271                                        <ul class="properties-slider-card__features js-card__features">
1272                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">1 Bed</li>
1273                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">1 Bath</li>
1274                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">732 Sq.Ft.</li>
1275                                        </ul>
1276                                    </div>
1277                                    <a href="/properties/88-e-san-fernando-st-804-san-jose-ca-95113-41110884" class="properties-slider-card__link"></a>
1278                                </li>
1279                                <li class="properties-slider-card splide__slide js-card">
1280                                    <div class="properties-slider-card__image-container">
1281                                        <img src="https://dlajgvw9htjpb.cloudfront.net/cms/6382308c-8bfc-4993-9f82-aceab30cdb9f/41136116/-5861848105680963680.jpg" alt="3263 Viney
1281ard Ave # 62" class="properties-slider-card__image" loading="lazy">
1282                                        <span class="properties-slider-card__tag lp-tag">Sold</span>
1283                                    </div>
1284                                    <div class="properties-slider-card__details js-card__details">
1285                                        <p class="properties-slider-card__price">$184,500</p>
1286                                            <p class="properties-slider-card__address">3263 Vineyard Ave # 62, Pleasanton, CA 94566</p>
1287                                        <ul class="properties-slider-card__features js-card__features">
1288                                            <li class="properties-slider-card__feature lp-icon lp-icon--bed lp-tag">2 Beds</li>
1289                                              <li class="properties-slider-card__feature lp-icon lp-icon--bath lp-tag">2 Baths</li>
1290                                            <li class="properties-slider-card__feature lp-icon lp-icon--sqft lp-tag">1,536 Sq.Ft.</li>
1291                                        </ul>
1292                                    </div>
1293                                    <a href="/properties/3263-vineyard-ave-62-pleasanton-ca-us-94566-41136116" class="properties-slider-card__link"></a>
1294                                </li>
1295                   </ul>
1296                </div>
1297            </div>
1298        </div>
1299            <div class="properties-slider__arrows">
1300                <button class="properties-slider__arrow properties-slider__arrow--prev lp-arrow lp-arrow--prev js-arrow--prev " style=""><span class="lp-visually-hidden">previous</span></button>
1301                <button class="properties-slider__arrow properties-slider__arrow--next lp-arrow lp-arrow--next js-arrow--next " style=""><span class="lp-visually-hidden">next</span></button>
1302            </div>
1303        <a
1304            href="/properties"
1305            
1306            class="properties-slider__cta lp-btn button-style-1"
1307            
1308            
1309            
1310            
1311            
1312            >
1313                                <span class="properties-slider__cta-content lp-btn--filled__content">View All</span>
1314            </a>
1315    </div>
1316
1317
1318</section>
1319<section id="section-fb7349af-e14f-467a-9daf-07d33ead2bb9"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="8cd6d0a7-4760-49c0-8edb-40ec971e0c3a">
1320  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css"/>
1321  
1321<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js"></script>
1321
1322<div class="neighborhoods-slider lp-vertical-paddings js-main-container" data-full-width-slider="false" data-card-layout="Multiple" data-show-cats="false" style="
1323                                                    --titleTextColor: rgba(0, 0, 0, 1); 
1324                                                    --boxBgColor: rgba(245, 242, 238, 1);
1325                                                    --boxTextColor: rgba(255, 255, 255, 1)">
1326
1327        <div class="neighborhoods-slider__title-group">
1328            <p class="neighborhoods-slider__pretitle lp-text--pretitle">Areas of Expertise</p>
1329            <h2 class="neighborhoods-slider__title">Discover hidden gems in the Tri-Valley</h2>
1330            
1331        </div>
1332
1333    <div class="neighborhoods-slider__list ">
1334        <div class="splide neighborhoods-slider__list-slider js-list-slider">
1335            <div class="splide__track">
1336                <ul class="splide__list">
1337                        <li class="neighborhoods-slider__list-item splide__slide lp-icon js-list-item" data-tags="">
1338                            <span class="neighborhoods-slider__list-item-text">Livermore</span>
1339                        </li>
1340                        <li class="neighborhoods-slider__list-item splide__slide lp-icon js-list-item" data-tags="">
1341                            <span class="neighborhoods-slider__list-item-text">Pleasanton</span>
1342                        </li>
1343                        <li class="neighborhoods-slider__list-item splide__slide lp-icon js-list-item" data-tags="">
1344                            <span class="neighborhoods-slider__list-item-text">Dublin</span>
1345                        </li>
1346                        <li class="neighborhoods-slider__list-item splide__slide lp-icon js-list-item" data-tags="">
1347                            <span class="neighborhoods-slider__list-item-text">Danville</span>
1348                        </li>
1349                        <li class="neighborhoods-slider__list-item splide__slide lp-icon js-list-item" data-tags="">
1350                            <span class="neighborhoods-slider__list-item-text">San Ramon</span>
1351                        </li>
1352                        <li class="neighborhoods-slider__list-item splide__slide lp-icon js-list-item" data-tags="">
1353                            <span class="neighborhoods-slider__list-item-text">Ruby Hill</span>
1354                        </li>
1355                </ul>
1356            </div>
1357        </div>
1358    </div>
1359
1360    <div class="neighborhoods-slider__images ">
1361
1362        <div class="neighborhoods-slider__images-slider splide js-images-slider">
1363            <div class="splide__track">
1364                <ul class="splide__list">
1365                        <li class="neighborhoods-slider__card neighborhoods-slider__card--full splide__slide js-card" data-neighborhood="Livermore" data-tags="">
1366                                <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/61f93036-30ca-4734-ac8f-9500911b2b16" 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/61f93036-30ca-4734-ac8f-9500911b2b16 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/61f93036-30ca-4734-ac8f-9500911b2b16 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/61f93036-30ca-4734-ac8f-9500911b2b16 1920w" sizes="(max-width: 1024px) 100vw, 64.93vw" alt="Livermore" class="neighborhoods-slider__card-image" loading="lazy">
1367                            <div class="neighborhoods-slider__card-content neighborhoods-slider__card-content--centered">
1368                                <h4 class="neighborhoods-slider__card-content-title"><span class="neighborhoods-slider__card-content-title-keyword">Explore</span> Livermore</h4>
1369                                <p class="neighborhoods-slider__card-content-description">Discover the charm of Livermore, CA, and find your dream home in one of the most desirable locations in the Bay Area.</p>
1370                                <a href="/neighborhoods/livermore" class="neighborhoods-slider__card-link lp-link hyperlink-style-1">Read More</a>
1371                            </div>
1372                        </li>
1373                        <li class="neighborhoods-slider__card neighborhoods-slider__card--full splide__slide js-card" data-neighborhood="Pleasanton" data-tags="">
1374                                <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/596e699a-05bb-4efc-853d-93d9825aa7f5" 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/596e699a-05bb-4efc-853d-93d9825aa7f5 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/596e699a-05bb-4efc-853d-93d9825aa7f5 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/596e699a-05bb-4efc-853d-93d9825aa7f5 1920w" sizes="(max-width: 1024px) 100vw, 64.93vw" alt="Pleasanton" class="neighborhoods-slider__card-image" loading="lazy">
1375                            <div class="neighborhoods-slider__card-content neighborhoods-slider__card-content--centered">
1376                                <h4 class="neighborhoods-slider__card-content-title"><span class="neighborhoods-slider__card-content-title-keyword">Explore</span> Pleasanton</h4>
1377                                <p class="neighborhoods-slider__card-content-description">A city where picturesque landscapes, historical charm, and modern amenities converge to create an ideal living experience.</p>
1378                                <a href="/neighborhoods/pleasanton" class="neighborhoods-slider__card-link lp-link hyperlink-style-1">Read More</a>
1379                            </div>
1380                        </li>
1381                        <li class="neighborhoods-slider__card neighborhoods-slider__card--full splide__slide js-card" data-neighborhood="Dublin" data-tags="">
1382                                <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/5421c19a-9066-4174-9871-bf2e357f175d" 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/5421c19a-9066-4174-9871-bf2e357f175d 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/5421c19a-9066-4174-9871-bf2e357f175d 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/5421c19a-9066-4174-9871-bf2e357f175d 1920w" sizes="(max-width: 1024px) 100vw, 64.93vw" alt="Dublin" class="neighborhoods-slider__card-image" loading="lazy">
1383                            <div class="neighborhoods-slider__card-content neighborhoods-slider__card-content--centered">
1384                                <h4 class="neighborhoods-slider__card-content-title"><span class="neighborhoods-slider__card-content-title-keyword">Explore</span> Dublin</h4>
1385                                <p class="neighborhoods-slider__card-content-description">Enjoy the city’s family-friendly atmosphere and engage in community events that make Dublin a fantastic place to live.</p>
1386                                <a href="/neighborhoods/dublin" class="neighborhoods-slider__card-link lp-link hyperlink-style-1">Read More</a>
1387                            </div>
1388                        </li>
1389                        <li class="neighborhoods-slider__card neighborhoods-slider__card--full splide__slide js-card" data-neighborhood="Danville" data-tags="">
1390                                <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/785e768e-bb24-4ee9-8130-87d2d9ae1881" 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/785e768e-bb24-4ee9-8130-87d2d9ae1881 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/785e768e-bb24-4ee9-8130-87d2d9ae1881 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/785e768e-bb24-4ee9-8130-87d2d9ae1881 1920w" sizes="(max-width: 1024px) 100vw, 64.93vw" alt="Danville" class="neighborhoods-slider__card-image" loading="lazy">
1391                            <div class="neighborhoods-slider__card-content neighborhoods-slider__card-content--centered">
1392                                <h4 class="neighborhoods-slider__card-content-title"><span class="neighborhoods-slider__card-content-title-keyword">Explore</span> Danville</h4>
1393                                <p class="neighborhoods-slider__card-content-description">37.8216° N, 122.0000° W</p>
1394                                <a href="/neighborhoods/danville" class="neighborhoods-slider__card-link lp-link hyperlink-style-1">Read More</a>
1395                            </div>
1396                        </li>
1397                        <li class="neighborhoods-slider__card neighborhoods-slider__card--full splide__slide js-card" data-neighborhood="San Ramon" data-tags="">
1398                                <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/4bf38308-e5cc-4f99-99ef-0c46b0dc8856" 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/4bf38308-e5cc-4f99-99ef-0c46b0dc8856 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/4bf38308-e5cc-4f99-99ef-0c46b0dc8856 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/4bf38308-e5cc-4f99-99ef-0c46b0dc8856 1920w" sizes="(max-width: 1024px) 100vw, 64.93vw" alt="San Ramon" class="neighborhoods-slider__card-image" loading="lazy">
1399                            <div class="neighborhoods-slider__card-content neighborhoods-slider__card-content--centered">
1400                                <h4 class="neighborhoods-slider__card-content-title"><span class="neighborhoods-slider__card-content-title-keyword">Explore</span> San Ramon</h4>
1401                                <p class="neighborhoods-slider__card-content-description">37.7644° N, 121.9540° W</p>
1402                                <a href="/neighborhoods/san-ramon" class="neighborhoods-slider__card-link lp-link hyperlink-style-1">Read More</a>
1403                            </div>
1404                        </li>
1405                        <li class="neighborhoods-slider__card neighborhoods-slider__card--full splide__slide js-card" data-neighborhood="Ruby Hill" data-tags="">
1406                                <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/fae8990c-ccd2-4221-a33f-3b1a6e06eb76" 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/fae8990c-ccd2-4221-a33f-3b1a6e06eb76 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/fae8990c-ccd2-4221-a33f-3b1a6e06eb76 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fae8990c-ccd2-4221-a33f-3b1a6e06eb76 1920w" sizes="(max-width: 1024px) 100vw, 64.93vw" alt="Ruby Hill" 
1406class="neighborhoods-slider__card-image" loading="lazy">
1407                            <div class="neighborhoods-slider__card-content neighborhoods-slider__card-content--centered">
1408                                <h4 class="neighborhoods-slider__card-content-title"><span class="neighborhoods-slider__card-content-title-keyword">Explore</span> Ruby Hill</h4>
1409                                <p class="neighborhoods-slider__card-content-description">37.6604° N, 121.8758° W</p>
1410                                <a href="/neighborhoods/ruby-hill" class="neighborhoods-slider__card-link lp-link hyperlink-style-1">Read More</a>
1411                            </div>
1412                        </li>
1413                </ul>
1414            </div>
1415        </div>
1416    </div>
1417
1418    <div class="neighborhoods-slider__arrows js-arrows">
1419        <button class="lp-arrow lp-arrow--prev "></button>
1420        <button class="lp-arrow lp-arrow--next "></button>
1421    </div>
1422    
1423    <div class="neighborhoods-slider__cta-btn">
1424        <a
1425            href="/neighborhoods"
1426            
1427            class="neighborhoods-slider__btn lp-btn button-style-1"
1428            
1429            
1430            
1431            
1432            
1433            >
1434                                <span class="lp-btn__content">View All</span>
1435            </a>
1436    </div>
1437</div>
1438</section>
1439<section  class="image-section is-font-color-dark is-background-color-light" id="section-0cae3508-3cc4-48dc-9582-6f81a06f07fb" data-el-id="e412fada-d987-4910-ae4c-bb99b0bf04d6">
1440    <div class="home-valuation lp-vertical-paddings js-home-valuation" style="--titleColor: rgba(255, 255, 255, 1); --contentBoxColor: rgba(255, 255, 255, 1); --backColor: rgba(0, 0, 0, 0); --formTextColor: rgba(0, 0, 0, 1);">
1441    <div class="home-valuation-row">
1442        <div class="home-valuation-info">
1443                    <div class="home-valuation-info__pre-title lp-text--pretitle home-valuation__pre-title--with-title">What’s Your Home Worth?</div>
1444
1445                    <h3 class="home-valuation-info__title  home-valuation__title--with-pretitle">Get a Free, Accurate Home Valuation</h3>
1446                    <div class="home-valuation-info__description"><p>Instant Estimates Backed by Local Expertise</p></div>
1447        </div>
1448
1449        <form class="home-valuation-form form js-form" data-type="contact-form">
1450            <div class="home-valuation-tabs">
1451                <div class="home-valuation-tabs__item js-home-valuation-tabs home-valuation__tab--active">1</div>
1452                <div class="home-valuation-tabs__item js-home-valuation-tabs">2</div>
1453                    <div class="home-valuation-tabs__item js-home-valuation-tabs">3</div>
1454            </div>
1455
1456            <div class="home-valuation-step home-valuation-step--active js-home-valuation-step js-home-valuation-step--1">
1457                <div class="lp-combo-input">
1458                    <label for="address" class="home-valuation-form__label lp-label">Enter your address to begin</label>
1459                    <div class="lp-input--with-icon">
1460                        <input id="address" type="text" class="lp-input address-input js-address" name="address" placeholder="Type address" required>
1461                        <div class="lp-icon lp-input-icon lp-input-icon--pin-map"></div>
1462                    </div>
1463                    <input type="hidden" name="message" class="js-message">
1464                </div>
1465                <div class="js-home-valuation-map home-valuation-map"></div>
1466                <button type="button" class="home-valuation-form__btn lp-btn js-btn button-style-1" disabled>
1467                    <span class="lp-btn__content">Continue</span>
1468                </button>
1469            </div>
1470            
1471            <div class="home-valuation-step js-home-valuation-step js-home-valuation-step--2">
1472                <div class="h-pot">
1473                    <label for="section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-middleName">Middle Name</label>
1474                    <input id="section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-middleName" name="middleName" value="" autocomplete="off" tabindex="-1">
1475                </div>
1476                <div class="lp-input-group lp-input--with-icon">
1477                    <input id="section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-name" name="name" class="lp-input" placeholder="Your name" required/>
1478                    <label for="section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-name" class="home-valuation-form__label lp-label">Your name</label>
1479                    <div class="lp-icon lp-input-icon icon--person"></div>
1480                </div>
1481                <div class="home-valuation-form__mail-phone">
1482                    <div class="lp-input-group lp-input--with-icon">
1483                        <input id="section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-phone" type="tel" name="phone" class="lp-input" placeholder="Your phone" required/>
1484                        <label for="section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-phone" class="home-valuation-form__label lp-label">Phone</label>
1485                        <div class="lp-icon lp-input-icon lp-icon--phone"></div>
1486                    </div>
1487                    <div class="lp-input-group lp-input--with-icon">
1488                        <input id="section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-email" name="email" type="email" class="lp-input" placeholder="Your email address" required />
1489                        <label for="section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-email" class="home-valuation-form__label lp-label">Email</label>
1490                        <div class="lp-icon lp-input-icon lp-input-icon--mail"></div>
1491                    </div>
1492                </div>
1493            
1494                <div class="lp-combo-input custom-label-group">
1495                    <label class="home-valuation-form__label lp-label js-time-frame" for="time_frame">Select an option</label>
1496                    <select id="time_frame" class="lp-input dropdown-select" value='' name="timeframe" required>
1497                        <option value="" disabled selected>Select</option>
1498                            <option value="I want to sell my home now">I want to sell my home now</option>
1499                            <option value="In the next 3 months">In the next 3 months</option>
1500                            <option value="In the next 12 months">In the next 12 months</option>
1501                            <option value="I&#x27;m just curious..">I&#x27;m just curious..</option>
1502                    </select>
1503                </div>
1504
1505                <div class="lp-disclaimer">  <div class='lp-tcr-content' style='margin-bottom: 1em;'>
1506    <span class='lp-tcr-message'>
1507      By providing your contact information to Couture Real Estate Team, your personal
1508      information will be processed in accordance with Couture Real Estate Team's
1509      <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. By
1510      checking the box(es) below, you consent to receive communications
1511      regarding your real estate inquiries and related marketing and promotional
1512      updates in the manner selected by you. For SMS text messages, message
1513      frequency varies. Message and data rates may apply. You may opt out of
1514      receiving further communications from Couture Real Estate Team at any time. To opt
1515      out of receiving SMS text messages, reply STOP to unsubscribe.
1516    </span>
1517  </div>
1518  <label style='display: none;' for='section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-termsAccepted'>Opt
1519    in/Disclaimer Consent:</label>
1520  <label class='lp-tcr-content' style='margin-bottom: 1em;'>
1521    <span class='lp-tcr-checkbox'>
1522      <input
1523        type='checkbox'
1524        name='termsAccepted'
1525        id='section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-termsAccepted'
1526        oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
1527        oninput="this.setCustomValidity('')"
1528        required
1529        value='Yes, I agree to receive email or phone call communications from Couture Real Estate Team.'
1530      />
1531    </span>
1532    <span class='lp-tcr-message'>
1533      Yes, I agree to receive email or phone call communications from
1534      Couture Real Estate Team.
1535    </span>
1536  </label>
1537  <label style='display: none;' for='section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-customConsent'>Opt
1538    in/Disclaimer Consent:</label>
1539  <label class='lp-tcr-content' style='margin-bottom: 1em;'>
1540    <span class='lp-tcr-checkbox'>
1541      <input
1542        type='checkbox'
1543        name='customConsent'
1544        id='section-0cae3508-3cc4-48dc-9582-6f81a06f07fb-customConsent'
1545        value='Yes, I agree to receive SMS text messages from Couture Real Estate Team.'
1546      />
1547    </span>
1548    <span class='lp-tcr-message'>
1549      Yes, I agree to receive SMS text messages from Couture Real Estate Team.
1550    </span>
1551  </label>
1552
1553</div>
1554                <div class="submission-error-message" style="display: none;"></div>
1555                <div class="home-valuation-form__btn-container">
1556                    <input type="hidden" name="source" value="HOME_VALUATION" />
1557                    <button type="submit" class="home-valuation-form__btn home-valuation-btn--subscribe-btn lp-btn lp-icon button-style-1">
1558                        <span class="lp-btn__content">Continue</span>
1559                    </button>
1560                </div>
1561            </div>
1562            
1563            <div class="home-valuation-step js-home-valuation-step js-home-valuation-step--3">
1564                <div class="home-valuation-success">
1565                        <h6 class="home-valuation-success__title">Thank You!</h6>
1566                        <div class="home-valuation-success__description">We&#x27;ll be in touch with your free personalized report. It&#x27;ll compare your home to nearby properties, taking into account market conditions, location, and features to accurately determine its value.</div>
1567                        <a href="/properties/sale" class="home-valuation-form__btn lp-btn button-style-1">
1568                            <span class="lp-btn__content">Search Homes</span>
1569                        </a>
1570                </div>
1571            </div>
1572        </form>
1573    </div>
1574</div>
1575</section>
1576<section id="section-346316c9-a364-46cc-8a36-f6113f1201e3"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="46a8dcac-8416-4782-8d95-480c1fcc427e">
1577<script type="text/x-handlebars-template" class="blogItem pagination-script">    <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/{{slug}}">
1578        <div class="blog-posts-slider-item__image-container">
1579            {{#if categories}}
1580              <span class="blog-posts-slider-item__category lp-tag">{{categories.[0].name}}</span>
1581            {{/if}}
1582            {{{mediaImage media.[0] class="blog-posts-slider-item__image" sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" alt=name}}}
1583        </div>
1584        <div class="blog-posts-slider-item__description">
1585                {{#if (or customAuthor createdBy.firstName createdBy.lastName publishedAt)}}
1586                    <p class="blog-posts-slider-item__name">
1587                            {{#if (or customAuthor createdBy.firstName createdBy.lastName)}}{{#if customAuthor}}{{customAuthor}}{{else}}{{createdBy.firstName}} {{createdBy.lastName}}{{/if}}{{/if}}
1588 
1589                            {{#if publishedAt}}{{#if (or customAuthor createdBy.firstName createdBy.lastName)}} I {{/if}}{{/if}}
1590
1591                            {{#if publishedAt}}{{hbFormatDate publishedAt}}{{/if}}
1592                    </p>
1593                {{/if}}
1594            {{#if title}}<h3 class="blog-posts-slider-item__title">{{title}}</h3>{{/if}}
1595            {{#if categories}}
1596              <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">{{categories.[0].name}}</span>
1597            {{/if}}
1598        </div>
1599	</a>
1600</script>
vendor: 1 bytes, line 1600
1600
1601<script type="text/x-handlebars-template" class="layoutNum pagination-script">{{#ifEquals layout "Single Post Slider"}}1{{/ifEquals}}{{#ifEquals layout "2-Post Slider"}}2{{/ifEquals}}{{#ifEquals layout "3-Post Slider"}}3{{/ifEquals}}{{#ifEquals layout "4-Post Slider"}}4{{/ifEquals}}</script>
1601
1602
1603
1604<link
1605rel="stylesheet"
1606href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css"
1607/>
1608
1609<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js"></script>
vendor: 1 bytes, line 1609
1609
1610<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide-extension-grid.min.js"></script>
1610
1611
1612<div class="blog-posts-slider lp-vertical-paddings" style="--titleTextColor: rgba(0, 0, 0, 1);">
1613        <div class="blog-posts-slider__title-group">
1614            <p class="blog-posts-slider__pretitle lp-text--pretitle blog-posts-slider__pretitle--with-title">REAL ESTATE INSIGHTS</p>
1615            <h2 class="blog-posts-slider__title">Blog Posts</h2>
1616            
1617        </div>
1618    <div class="blog-posts-slider__collection blog-posts-slider__collection--2 js-slider splide" data-layout='2' data-items="47" data-autoscroll="false" data-autoscroll-interval="6">
1619        <div class="splide__track">
1620            <ul class="splide__list">
1621                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/late-summer-in-livermore-how-downtown-and-the-wineries-sync-up-from-august-into-september">
1622                    <div class="blog-posts-slider-item__image-container">
1623                        <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/18636c4b-1271-43f1-8c59-dcb3cf202a6f" 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/18636c4b-1271-43f1-8c59-dcb3cf202a6f 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/18636c4b-1271-43f1-8c59-dcb3cf202a6f 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/18636c4b-1271-43f1-8c59-dcb3cf202a6f 1408w" alt="Covered stone-column loggia with a limestone fireplace, oatmeal sofa, olive tree, and lavender in golden evening light." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1624                    </div>
1625                    <div class="blog-posts-slider-item__description">
1626                                <p class="blog-posts-slider-item__name">
1627                                        
1628             
1629                                        
1630            
1631                                        August 6, 2026
1632                                </p>
1633                        <h3 class="blog-posts-slider-item__title">Late Summer In Livermore: How Downtown And The Wineries Sync Up From August Into September</h3>
1634                    </div>
1635            	</a>
1636                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/why-downtown-pleasanton-still-hears-train-horns-and-what-the-quiet-zone-meeting-will-decide">
1637                    <div class="blog-posts-slider-item__image-container">
1638                        <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/21f48815-2988-46d0-9ec6-cdaa8218c944" 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/21f48815-2988-46d0-9ec6-cdaa8218c944 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/21f48815-2988-46d0-9ec6-cdaa8218c944 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/21f48815-2988-46d0-9ec6-cdaa8218c944 1536w" alt="Cream-sided home with a recessed oak entry, limestone porch bases, concrete approach, green lawn, and sculptural garden tree in morning light." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1639                    </div>
1640                    <div class="blog-posts-slider-item__description">
1641                                <p class="blog-posts-slider-item__name">
1642                                        
1643             
1644                                        
1645            
1646                                        October 8, 2026
1647                                </p>
1648                        <h3 class="blog-posts-slider-item__title">Why Downtown Pleasanton Still Hears Train Horns, and What the Quiet Zone Meeting Will Decide</h3>
1649                    </div>
1650            	</a>
1651                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/ruby-hill-isnt-one-place-its-two-and-both-have-news-this-harvest-season">
1652                    <div class="blog-posts-slider-item__image-container">
1653                        <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/be945b01-e08a-4ff6-8cfa-60a9c8800995" 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/be945b01-e08a-4ff6-8cfa-60a9c8800995 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/be945b01-e08a-4ff6-8cfa-60a9c8800995 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/be945b01-e08a-4ff6-8cfa-60a9c8800995 1408w" alt="Two-story stucco home with a terracotta roof, limestone entry, and orange-red tree beside the motor court." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1654                    </div>
1655                    <div class="blog-posts-slider-item__description">
1656                                <p class="blog-posts-slider-item__name">
1657                                        
1658             
1659                                        
1660            
1661                                        September 3, 2026
1662                                </p>
1663                        <h3 class="blog-posts-slider-item__title">Ruby Hill Isn&#x27;t One Place. It&#x27;s Two, And Both Have News This Harvest Season.</h3>
1664                    </div>
1665            	</a>
1666                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/the-one-homesite-rule-every-south-livermore-vineyard-buyer-should-know-before-making-an-offer">
1667                    <div class="blog-posts-slider-item__image-container">
1668                        <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/7d972139-6547-456d-b83a-2c00d57641f2" 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/7d972139-6547-456d-b83a-2c00d57641f2 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/7d972139-6547-456d-b83a-2c00d57641f2 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/7d972139-6547-456d-b83a-2c00d57641f2 1536w" alt="Ivory stucco home with a terracotta roof beyond a broad gravel approach, framed by grapevines and an olive tree." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1669                    </div>
1670                    <div class="blog-posts-slider-item__description">
1671                                <p class="blog-posts-slider-item__name">
1672                                        
1673             
1674                                        
1675            
1676                                        October 1, 2026
1677                                </p>
1678                        <h3 class="blog-posts-slider-item__title">The One-Homesite Rule Every South Livermore Vineyard Buyer Should Know Before Making an Offer</h3>
1679                    </div>
1680            	</a>
1681                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/selling-your-san-ramon-home-while-relocating-away">
1682                    <div class="blog-posts-slider-item__image-container">
1683                        <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/fcbceb4d-7606-49d1-96ca-c5f90ad7190d" 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/fcbceb4d-7606-49d1-96ca-c5f90ad7190d 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/fcbceb4d-7606-49d1-96ca-c5f90ad7190d 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fcbceb4d-7606-49d1-96ca-c5f90ad7190d 1408w" alt="Recessed front porch opening onto a bright foyer, framed by contemporary-traditional finishes and curated planting." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1684                    </div>
1685                    <div class="blog-posts-slider-item__description">
1686                                <p class="blog-posts-slider-item__name">
1687                                        
1688             
1689                                        
1690            
1691                                        June 25, 2026
1692                                </p>
1693                        <h3 class="blog-posts-slider-item__title">Selling Your San Ramon Home While Relocating Away</h3>
1694                    </div>
1695            	</a>
1696                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/downtown-pleasantons-empty-storefronts-arent-a-vacancy-problem-theyre-a-waiting-list">
1697                    <div class="blog-posts-slider-item__image-container">
1698                        <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/51c9bc5c-0899-4ba3-8a5c-c8250ce933b6" 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/51c9bc5c-0899-4ba3-8a5c-c8250ce933b6 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/51c9bc5c-0899-4ba3-8a5c-c8250ce933b6 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/51c9bc5c-0899-4ba3-8a5c-c8250ce933b6 1408w" alt="Two-story stucco house at dusk, warm windows glowing above a lawn and walkway to the covered entry." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1699                    </div>
1700                    <div class="blog-posts-slider-item__description">
1701                                <p class="blog-posts-slider-item__name">
1702                                        
1703             
1704                                        
1705            
1706                                        September 24, 2026
1707                                </p>
1708                        <h3 class="blog-posts-slider-item__title">Downtown Pleasanton&#x27;s Empty Storefronts Aren&#x27;t a Vacancy Problem. They&#x27;re a Waiting List.</h3>
1709                    </div>
1710            	</a>
1711                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/dublins-home-prices-arent-split-east-vs-west-theyre-split-ranch-vs-ranch">
1712                    <div class="blog-posts-slider-item__image-container">
1713                        <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/df9ee918-a9c3-4f17-b10a-603b2027a1b0" 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/df9ee918-a9c3-4f17-b10a-603b2027a1b0 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/df9ee918-a9c3-4f17-b10a-603b2027a1b0 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/df9ee918-a9c3-4f17-b10a-603b2027a1b0 1408w" alt="Cream stucco suburban home with stone base, gabled roof, two-car garage, and paver walkway across a lawn." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1714                    </div>
1715                    <div class="blog-posts-slider-item__description">
1716                                <p class="blog-posts-slider-item__name">
1717                                        
1718             
1719                                        
1720            
1721                                        August 20, 2026
1722                                </p>
1723                        <h3 class="blog-posts-slider-item__title">Dublin&#x27;
1723s Home Prices Aren&#x27;t Split East vs. West. They&#x27;re Split Ranch vs. Ranch.</h3>
1724                    </div>
1725            	</a>
1726                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/san-ramon-home-prices-arent-falling-theyre-splitting">
1727                    <div class="blog-posts-slider-item__image-container">
1728                        <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/6b2c6614-62fd-449f-ac92-695bc6dd32d3" 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/6b2c6614-62fd-449f-ac92-695bc6dd32d3 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/6b2c6614-62fd-449f-ac92-695bc6dd32d3 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/6b2c6614-62fd-449f-ac92-695bc6dd32d3 1408w" alt="Two-story stucco home with a stone entry, curved paver motor court, clipped hedges, and a mature oak." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1729                    </div>
1730                    <div class="blog-posts-slider-item__description">
1731                                <p class="blog-posts-slider-item__name">
1732                                        
1733             
1734                                        
1735            
1736                                        September 17, 2026
1737                                </p>
1738                        <h3 class="blog-posts-slider-item__title">San Ramon Home Prices Aren&#x27;t Falling. They&#x27;re Splitting.</h3>
1739                    </div>
1740            	</a>
1741                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/bishop-ranch-keeps-trading-up-whats-new-to-eat-in-san-ramon-this-fall">
1742                    <div class="blog-posts-slider-item__image-container">
1743                        <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/a40b1d8f-416d-4183-b341-0b5ce43c004f" 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/a40b1d8f-416d-4183-b341-0b5ce43c004f 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/a40b1d8f-416d-4183-b341-0b5ce43c004f 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/a40b1d8f-416d-4183-b341-0b5ce43c004f 1408w" alt="Round oak dining table with linen chairs beside a window overlooking an olive tree and clipped garden hedge." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1744                    </div>
1745                    <div class="blog-posts-slider-item__description">
1746                                <p class="blog-posts-slider-item__name">
1747                                        
1748             
1749                                        
1750            
1751                                        August 13, 2026
1752                                </p>
1753                        <h3 class="blog-posts-slider-item__title">Bishop Ranch Keeps Trading Up: What&#x27;s New To Eat In San Ramon This Fall</h3>
1754                    </div>
1755            	</a>
1756                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/in-ruby-hill-the-city-signs-off-last-the-neighborhood-signs-off-first">
1757                    <div class="blog-posts-slider-item__image-container">
1758                        <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/106f0e0f-6eca-4806-a19c-37b6a1c7431a" 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/106f0e0f-6eca-4806-a19c-37b6a1c7431a 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/106f0e0f-6eca-4806-a19c-37b6a1c7431a 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/106f0e0f-6eca-4806-a19c-37b6a1c7431a 1408w" alt="Two-story cream stucco home with a three-car garage, curved stone walkway, oak tree, and lavender landscaping." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1759                    </div>
1760                    <div class="blog-posts-slider-item__description">
1761                                <p class="blog-posts-slider-item__name">
1762                                        
1763             
1764                                        
1765            
1766                                        September 10, 2026
1767                                </p>
1768                        <h3 class="blog-posts-slider-item__title">In Ruby Hill, The City Signs Off Last. The Neighborhood Signs Off First.</h3>
1769                    </div>
1770            	</a>
1771                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/your-thursday-night-blueprint-in-dublin-emerald-glen-the-farmers-market-and-whats-opening-arou
1771nd-it">
1772                    <div class="blog-posts-slider-item__image-container">
1773                        <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/201e8823-9965-4eef-b318-efdcb8888958" 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/201e8823-9965-4eef-b318-efdcb8888958 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/201e8823-9965-4eef-b318-efdcb8888958 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/201e8823-9965-4eef-b318-efdcb8888958 1408w" alt="Porch entry with ajar oak door, glowing sidelights, black sconce, and limestone walkway." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1774                    </div>
1775                    <div class="blog-posts-slider-item__description">
1776                                <p class="blog-posts-slider-item__name">
1777                                        
1778             
1779                                        
1780            
1781                                        August 6, 2026
1782                                </p>
1783                        <h3 class="blog-posts-slider-item__title">Your Thursday Night Blueprint In Dublin: Emerald Glen, The Farmers&#x27; Market, And What&#x27;s Opening Around It</h3>
1784                    </div>
1785            	</a>
1786                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/downsizing-in-pleasanton-preparing-a-long-time-home-to-sell">
1787                    <div class="blog-posts-slider-item__image-container">
1788                        <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/9b7d5ea7-a7fc-436a-bf00-34dd5efa69dd" 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/9b7d5ea7-a7fc-436a-bf00-34dd5efa69dd 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/9b7d5ea7-a7fc-436a-bf00-34dd5efa69dd 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9b7d5ea7-a7fc-436a-bf00-34dd5efa69dd 1408w" alt="King bed with rumpled beige linens, pale-oak nightstands, and a ficus beside a foliage-framed window." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1789                    </div>
1790                    <div class="blog-posts-slider-item__description">
1791                                <p class="blog-posts-slider-item__name">
1792                                        
1793             
1794                                        
1795            
1796                                        July 16, 2026
1797                                </p>
1798                        <h3 class="blog-posts-slider-item__title">Downsizing In Pleasanton: Preparing A Long-Time Home To Sell</h3>
1799                    </div>
1800            	</a>
1801                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/south-livermores-price-premium-isnt-about-the-vineyards-its-a-zoning-line">
1802                    <div class="blog-posts-slider-item__image-container">
1803                        <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/4d86d48f-bd07-4b50-bb21-439d96d13d45" 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/4d86d48f-bd07-4b50-bb21-439d96d13d45 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/4d86d48f-bd07-4b50-bb21-439d96d13d45 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/4d86d48f-bd07-4b50-bb21-439d96d13d45 1408w" alt="Elevated view of a landscaped backyard with a rectangular pool, limestone patio, lawn, and stucco house." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1804                    </div>
1805                    <div class="blog-posts-slider-item__description">
1806                                <p class="blog-posts-slider-item__name">
1807                                        
1808             
1809                                        
1810            
1811                                        August 27, 2026
1812                                </p>
1813                        <h3 class="blog-posts-slider-item__title">South Livermore&#x27;s Price Premium Isn&#x27;t About The Vineyards. It&#x27;s A Zoning Line.</h3>
1814                    </div>
1815            	</a>
1816                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/pleasanton-neighborhood-lifestyles-from-historic-to-hillside">
1817                    <div class="blog-posts-slider-item__image-container">
1818                        <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/9d01716e-fdd5-40b5-9b76-2085349e1a6b" 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/9d01716e-fdd5-40b5-9b76-2085349e1a6b 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/9d01716e-fdd5-40b5-9b76-2085349e1a6b 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9d01716e-fdd5-40b5-9b76-2085349e1a6b 1408w" alt="A home&#x27;s porch entry, shown in an exterior architectural detail." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1819                    </div>
1820                    <div class="blog-posts-slider-item__description">
1821                                <p class="blog-posts-slider-item__name">
1822                                        
1823             
1824                                        
1825            
1826                                        July 23, 2026
1827                                </p>
1828                        <h3 class="blog-posts-slider-item__title">Pleasanton Neighborhood Lifestyles, From Historic To Hillside</h3>
1829                    </div>
1830            	</a>
1831                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/preparing-your-san-ramon-home-for-a-standout-sale">
1832                    <div class="blog-posts-slider-item__image-container">
1833                        <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/59ff40f0-1341-41c1-87ee-3db38b69cd4b" 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/59ff40f0-1341-41c1-87ee-3db38b69cd4b 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/59ff40f0-1341-41c1-87ee-3db38b69cd4b 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/59ff40f0-1341-41c1-87ee-3db38b69cd4b 1408w" alt="Linen-upholstered bed with white duvet, oak nightstands, foot bench, and greenery beyond the window." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1834                    </div>
1835                    <div class="blog-posts-slider-item__description">
1836                                <p class="blog-posts-slider-item__name">
1837                                        
1838             
1839                                        
1840            
1841                                        May 21, 2026
1842                                </p>
1843                        <h3 class="blog-posts-slider-item__title">Preparing Your San Ramon Home For A Standout Sale</h3>
1844                    </div>
1845            	</a>
1846                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/san-ramon-neighborhood-types-explained-for-homebuyers">
1847                    <div class="blog-posts-slider-item__image-container">
1848                        <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/39296a07-79d9-4d93-a14b-e77af718b39d" 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/39296a07-79d9-4d93-a14b-e77af718b39d 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/39296a07-79d9-4d93-a14b-e77af718b39d 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/39296a07-79d9-4d93-a14b-e77af718b39d 1408w" alt="Modern white patio with a beige sofa before wide sliding glass doors, framed by a large tree and garden." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1849                    </div>
1850                    <div class="blog-posts-slider-item__description">
1851                                <p class="blog-posts-slider-item__name">
1852                                        
1853             
1854                                        
1855            
1856                                        June 18, 2026
1857                                </p>
1858                        <h3 class="blog-posts-slider-item__title">San Ramon Neighborhood Types Explained For Homebuyers</h3>
1859                    </div>
1860            	</a>
1861                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/danville-single-family-market-trends-homeowners-should-know">
1862                    <div class="blog-posts-slider-item__image-container">
1863                        <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/67a796f9-9ccc-4c14-9c40-087b285eee0e" 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/67a796f9-9ccc-4c14-9c40-087b285eee0e 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/67a796f9-9ccc-4c14-9c40-087b285eee0e 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/67a796f9-9ccc-4c14-9c40-087b285eee0e 1408w" alt="Cream stucco house facade with black-framed windows, limestone entry pier, paver walkway, and low lavender planting." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1864                    </div>
1865                    <div class="blog-posts-slider-item__description">
1866                                <p class="blog-posts-slider-item__name">
1867                                        
1868             
1869                                        
1870            
1871                                        July 9, 2026
1872                                </p>
1873                        <h3 class="blog-posts-slider-item__title">Danville Single-Family Market Trends Homeowners Should Know</h3>
1874                    </div>
1875            	</a>
1876                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/everyday-life-near-charming-downtown-danville">
1877                    <div class="blog-posts-slider-item__image-container">
1878                        <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/1df31f41-72fe-452d-b572-c62b0535237d" 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/1df31f41-72fe-452d-b572-c62b0535237d 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/1df31f41-72fe-452d-b572-c62b0535237d 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/1df31f41-72fe-452d-b572-c62b0535237d 1408w" alt="Living room with a limestone fireplace and open sliding doors overlooking a planted patio." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1879                    </div>
1880                    <div class="blog-posts-slider-item__description">
1881                                <p class="blog-posts-slider-item__name">
1882                                        
1883             
1884                                        
1885            
1886                                        July 2, 2026
1887                                </p>
1888                        <h3 class="blog-posts-slider-item__title">Everyday Life Near Charming Downtown Danville</h3>
1889                    </div>
1890            	</a>
1891                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/using-concierge-style-prep-to-sell-in-ruby-hill">
1892                    <div class="blog-posts-slider-item__image-container">
1893                        <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/592f2e7e-c82f-4b90-9702-4f17a86af96f" 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/592f2e7e-c82f-4b90-9702-4f17a86af96f 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/592f2e7e-c82f-4b90-9702-4f17a86af96f 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/592f2e7e-c82f-4b90-9702-4f17a86af96f 1408w" alt="Open-plan kitchen with creamy white cabinets, light stone surfaces, and pale oak floors." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1894                    </div>
1895                    <div class="blog-posts-slider-item__description">
1896                                <p class="blog-posts-slider-item__name">
1897                                        
1898             
1899                                        
1900            
1901                                        June 11, 2026
1902                                </p>
1903                        <h3 class="blog-posts-slider-item__title">Using Concierge-Style Prep To Sell In Ruby Hill</h3>
1904                    </div>
1905            	</a>
1906                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/turnkey-listing-prep-in-livermore-with-concierge-support">
1907                    <div class="blog-posts-slider-item__image-container">
1908                        <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/885f94b7-2916-4c22-b76e-9964bb53e617" 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/885f94b7-2916-4c22-b76e-9964bb53e617 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/
1908885f94b7-2916-4c22-b76e-9964bb53e617 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/885f94b7-2916-4c22-b76e-9964bb53e617 1408w" alt="Freestanding tub beside a frameless glass shower, with pale oak cabinetry and light quartz surfaces." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1909                    </div>
1910                    <div class="blog-posts-slider-item__description">
1911                                <p class="blog-posts-slider-item__name">
1912                                        
1913             
1914                                        
1915            
1916                                        May 14, 2026
1917                                </p>
1918                        <h3 class="blog-posts-slider-item__title">Turnkey Listing Prep In Livermore With Concierge Support</h3>
1919                    </div>
1920            	</a>
1921                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/what-its-like-to-live-in-ruby-hill">
1922                    <div class="blog-posts-slider-item__image-container">
1923                        <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/09023bd0-35c3-4d22-ad61-b46c2d948006" 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/09023bd0-35c3-4d22-ad61-b46c2d948006 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/09023bd0-35c3-4d22-ad61-b46c2d948006 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/09023bd0-35c3-4d22-ad61-b46c2d948006 1408w" alt="Contemporary-traditional upscale suburban house with manicured landscaping and a deep front setback" sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1924                    </div>
1925                    <div class="blog-posts-slider-item__description">
1926                                <p class="blog-posts-slider-item__name">
1927                                        
1928             
1929                                        
1930            
1931                                        June 4, 2026
1932                                </p>
1933                        <h3 class="blog-posts-slider-item__title">What It’s Like To Live In Ruby Hill</h3>
1934                    </div>
1935            	</a>
1936                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/staging-luxury-homes-in-ruby-hill-for-maximum-impact">
1937                    <div class="blog-posts-slider-item__image-container">
1938                        <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/b72cf977-21dc-4f3c-a0c2-02cf56dc0bfe" 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/b72cf977-21dc-4f3c-a0c2-02cf56dc0bfe 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/b72cf977-21dc-4f3c-a0c2-02cf56dc0bfe 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/b72cf977-21dc-4f3c-a0c2-02cf56dc0bfe 1408w" alt="Living room with a limestone fireplace opening onto a loggia, with oak flooring and a potted olive tree." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1939                    </div>
1940                    <div class="blog-posts-slider-item__description">
1941                                <p class="blog-posts-slider-item__name">
1942                                        
1943             
1944                                        
1945            
1946                                        April 23, 2026
1947                                </p>
1948                        <h3 class="blog-posts-slider-item__title">Staging Luxury Homes In Ruby Hill For Maximum Impact</h3>
1949                    </div>
1950            	</a>
1951                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/move-up-buyers-in-pleasanton-buy-and-sell-with-less-stress">
1952                    <div class="blog-posts-slider-item__image-container">
1953                        <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/309150e5-b55b-47f9-a834-15f00242795d" 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/309150e5-b55b-47f9-a834-15f00242795d 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/309150e5-b55b-47f9-a834-15f00242795d 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/309150e5-b55b-47f9-a834-15f00242795d 1408w" alt="Warm-white built-ins frame a light quartz desk beside a window seat overlooking silvery olive leaves and a clipped hedge." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1954                    </div>
1955                    <div class="blog-posts-slider-item__description">
1956                                <p class="blog-posts-slider-item__name">
1957                                        
1958             
1959                                        
1960            
1961                                        May 7, 2026
1962                                </p>
1963                        <h3 class="blog-posts-slider-item__title">Move-Up Buyers In Pleasanton: Buy And Sell With Less Stress</h3>
1964                    </div>
1965            	</a>
1966                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/boost-home-value-best-roi-home-improvements-1">
1967                    <div class="blog-posts-slider-item__image-container">
1968                          <span class="blog-posts-slider-item__category lp-tag">Real Estate</span>
1969                        <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/56e824db-0c72-4962-8ee7-eb45899f04cd" 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/56e824db-0c72-4962-8ee7-eb45899f04cd 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/56e824db-0c72-4962-8ee7-eb45899f04cd 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/56e824db-0c72-4962-8ee7-eb45899f04cd 1920w" alt="Modern kitchen with a large stone island, opening through glass walls to a garden and patio." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1970                    </div>
1971                    <div class="blog-posts-slider-item__description">
1972                                <p class="blog-posts-slider-item__name">
1973                                        
1974             
1975                                        
1976            
1977                                        September 10, 2025
1978                                </p>
1979                        <h3 class="blog-posts-slider-item__title">Boost Home Value: Best ROI Home Improvements</h3>
1980                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Real Estate</span>
1981                    </div>
1982            	</a>
1983                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/outdoor-adventures-around-livermore-new-homeowners-love">
1984                    <div class="blog-posts-slider-item__image-container">
1985                        <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/1871fe4c-43aa-485e-99cd-21c111526706" 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/1871fe4c-43aa-485e-99cd-21c111526706 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/1871fe4c-43aa-485e-99cd-21c111526706 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/1871fe4c-43aa-485e-99cd-21c111526706 1408w" alt="Limestone patio beneath a white-oak pergola, beside stucco walls and dark-framed sliding doors." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
1986                    </div>
1987                    <div class="blog-posts-slider-item__description">
1988                                <p class="blog-posts-slider-item__name">
1989                                        
1990             
1991                                        
1992            
1993                                        April 2, 2026
1994                                </p>
1995                        <h3 class="blog-posts-slider-item__title">Outdoor Adventures Around Livermore New Homeowners Love</h3>
1996                    </div>
1997            	</a>
1998                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/ruby-hill-listing-timeline-from-prep-to-pending">
1999                    <div class="blog-posts-slider-item__image-container">
2000                        <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/fa10510b-a427-45f8-951b-c5e4cb678eca" 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/fa10510b-a427-45f8-951b-c5e4cb678eca 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/fa10510b-a427-45f8-951b-c5e4cb678eca 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fa10510b-a427-45f8-951b-c5e4cb678eca 1408w" alt="Modern stone-and-wood home with open glass doors, a patio, and hillside views at sunset." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2001                    </div>
2002                    <div class="blog-posts-slider-item__description">
2003                                <p class="blog-posts-slider-item__name">
2004                                        
2005             
2006                                        
2007            
2008                                        January 1, 2026
2009                                </p>
2010                        <h3 class="blog-posts-slider-item__title">Ruby Hill Listing Timeline: From Prep To Pending</h3>
2011                    </div>
2012            	</a>
2013                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/a-relaxed-weekend-guide-for-new-san-ramon-locals">
2014                    <div class="blog-posts-slider-item__image-container">
2015                        <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/2c20a916-34e2-4b51-80d6-fc68797821dc" 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/2c20a916-34e2-4b51-80d6-fc68797821dc 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/2c20a916-34e2-4b51-80d6-fc68797821dc 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/2c20a916-34e2-4b51-80d6-fc68797821dc 1408w" alt="Stucco house with board-and-batten siding, recessed porch, driveway, lawn, and specimen tree." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2016                    </div>
2017                    <div class="blog-posts-slider-item__description">
2018                                <p class="blog-posts-slider-item__name">
2019                                        
2020             
2021                                        
2022            
2023                                        April 16, 2026
2024                                </p>
2025                        <h3 class="blog-posts-slider-item__title">A Relaxed Weekend Guide For New San Ramon Locals</h3>
2026                    </div>
2027            	</a>
2028                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/buying-a-condo-or-townhome-in-dublin-ca">
2029                    <div class="blog-posts-slider-item__image-container">
2030                        <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/61c9ad40-4c91-40fc-a3a7-
203058e8022766df" 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/61c9ad40-4c91-40fc-a3a7-58e8022766df 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/61c9ad40-4c91-40fc-a3a7-58e8022766df 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/61c9ad40-4c91-40fc-a3a7-58e8022766df 1408w" alt="Bright open kitchen and dining area with warm neutral finishes and soft window light." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2031                    </div>
2032                    <div class="blog-posts-slider-item__description">
2033                                <p class="blog-posts-slider-item__name">
2034                                        
2035             
2036                                        
2037            
2038                                        March 24, 2026
2039                                </p>
2040                        <h3 class="blog-posts-slider-item__title">Buying A Condo Or Townhome In Dublin CA</h3>
2041                    </div>
2042            	</a>
2043                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/dublin-ca-neighborhoods-for-an-active-lifestyle">
2044                    <div class="blog-posts-slider-item__image-container">
2045                        <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/66776efa-724d-4772-b256-82aff9f7f818" 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/66776efa-724d-4772-b256-82aff9f7f818 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/66776efa-724d-4772-b256-82aff9f7f818 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/66776efa-724d-4772-b256-82aff9f7f818 1408w" alt="Curved path beside a Craftsman-style home, drought-tolerant plants, bike rack, and drinking fountain beneath oaks." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2046                    </div>
2047                    <div class="blog-posts-slider-item__description">
2048                                <p class="blog-posts-slider-item__name">
2049                                        
2050             
2051                                        
2052            
2053                                        February 19, 2026
2054                                </p>
2055                        <h3 class="blog-posts-slider-item__title">Dublin CA Neighborhoods For An Active Lifestyle</h3>
2056                    </div>
2057            	</a>
2058                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/danville-or-san-ramon-choosing-your-next-home-base">
2059                    <div class="blog-posts-slider-item__image-container">
2060                        <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/efad845a-1efd-4361-af22-bf8dd777a524" 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/efad845a-1efd-4361-af22-bf8dd777a524 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/efad845a-1efd-4361-af22-bf8dd777a524 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/efad845a-1efd-4361-af22-bf8dd777a524 1408w" alt="Home entry with stucco and board-and-batten siding, framed by landscaping." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2061                    </div>
2062                    <div class="blog-posts-slider-item__description">
2063                                <p class="blog-posts-slider-item__name">
2064                                        
2065             
2066                                        
2067            
2068                                        March 5, 2026
2069                                </p>
2070                        <h3 class="blog-posts-slider-item__title">Danville Or San Ramon? Choosing Your Next Home Base</h3>
2071                    </div>
2072            	</a>
2073                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/what-its-like-to-live-near-downtown-pleasanton">
2074                    <div class="blog-posts-slider-item__image-container">
2075                        <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/f46a528f-14de-47c4-baa8-e33f4714cbea" 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/f46a528f-14de-47c4-baa8-e33f4714cbea 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/f46a528f-14de-47c4-baa8-e33f4714cbea 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/f46a528f-14de-47c4-baa8-e33f4714cbea 1408w" alt="Sunlit brick sidewalk lined with trees beside a large Craftsman-style house at sunset." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2076                    </div>
2077                    <div class="blog-posts-slider-item__description">
2078                                <p class="blog-posts-slider-item__name">
2079                                        
2080             
2081                                        
2082            
2083                                        February 5, 2026
2084                                </p>
2085                        <h3 class="blog-posts-slider-item__title">What It’s Like To Live Near Downtown Pleasanton</h3>
2086                    </div>
2087            	</a>
2088                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/pricing-a-danville-home-for-multiple-offers">
2089                    <div class="blog-posts-slider-item__image-container">
2090                        <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/9ca8b482-414b-4aa7-b2c2-e13cdf512d4b" 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/9ca8b482-414b-4aa7-b2c2-e13cdf512d4b 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/9ca8b482-414b-4aa7-b2c2-e13cdf512d4b 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9ca8b482-414b-4aa7-b2c2-e13cdf512d4b 1408w" alt="Stucco home with a tiled roof, white flower beds, and mountains in the background." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2091                    </div>
2092                    <div class="blog-posts-slider-item__description">
2093                                <p class="blog-posts-slider-item__name">
2094                                        
2095             
2096                                        
2097            
2098                                        January 15, 2026
2099                                </p>
2100                        <h3 class="blog-posts-slider-item__title">Pricing A Danville Home For Multiple Offers</h3>
2101                    </div>
2102            	</a>
2103                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/what-appraisers-look-for-in-danville-homes">
2104                    <div class="blog-posts-slider-item__image-container">
2105                        <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/8c3c53d0-2871-4edf-9da3-551a6ac58de1" 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/8c3c53d0-2871-4edf-9da3-551a6ac58de1 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/8c3c53d0-2871-4edf-9da3-551a6ac58de1 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/8c3c53d0-2871-4edf-9da3-551a6ac58de1 1408w" alt="Stone ranch house with a red tile roof, arched entry, broad driveway, and three-car garage at dusk." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2106                    </div>
2107                    <div class="blog-posts-slider-item__description">
2108                                <p class="blog-posts-slider-item__name">
2109                                        
2110             
2111                                        
2112            
2113                                        December 4, 2025
2114                                </p>
2115                        <h3 class="blog-posts-slider-item__title">What Appraisers Look For In Danville Homes</h3>
2116                    </div>
2117            	</a>
2118                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/budget-friendly-smart-home-upgrades-that-boost-resale-value">
2119                    <div class="blog-posts-slider-item__image-container">
2120                          <span class="blog-posts-slider-item__category lp-tag">Real Estate</span>
2121                        <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/053bf628-9244-4b2b-b798-eba24c04ad62" 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/053bf628-9244-4b2b-b798-eba24c04ad62 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/053bf628-9244-4b2b-b798-eba24c04ad62 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/053bf628-9244-4b2b-b798-eba24c04ad62 1920w" alt="Modern white house with dark metal roof, warmly lit windows, and a wall-mounted video doorbell." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2122                    </div>
2123                    <div class="blog-posts-slider-item__description">
2124                                <p class="blog-posts-slider-item__name">
2125                                        
2126             
2127                                        
2128            
2129                                        September 24, 2025
2130                                </p>
2131                        <h3 class="blog-posts-slider-item__title">Budget-Friendly Smart Home Upgrades That Boost Resale Value</h3>
2132                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Real Estate</span>
2133                    </div>
2134            	</a>
2135                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/using-prop-19-when-you-sell-a-ruby-hill-home">
2136                    <div class="blog-posts-slider-item__image-container">
2137                        <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/c7b4b284-d766-42fc-98b3-63e3b8986f60" 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/c7b4b284-d766-42fc-98b3-63e3b8986f60 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/c7b4b284-d766-42fc-98b3-63e3b8986f60 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/c7b4b284-d766-42fc-98b3-63e3b8986f60 1408w" alt="Large stone mansion with red-tile roofs, landscaped grounds, and a pool overlooking distant hills at sunset." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2138                    </div>
2139                    <div class="blog-posts-slider-item__description">
2140                                <p class="blog-posts-slider-item__name">
2141                                        
2142             
2143                                        
2144            
2145                                        November 6, 2025
2146                                </p>
2147                        <h3 class="blog-posts-slider-item__title">Using Prop 19 When You Sell A Ruby Hill Home</h3>
2148                    </div>
2149            	</a>
2150                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/off-the-beaten-path-spots-in-livermore-locals-love">
2151                    <div class="blog-posts-slider-item__image-container">
2152                          <span class="blog-posts-slider-item__category lp-tag">Lifestyle</span>
2153                        <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/451d95d6-acdf-4277-82da-12deefb7f630" 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/451d95d6-acdf-4277-82da-12deefb7f630 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/451d95d6-acdf-4277-82da-12deefb7f630 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/451d95d6-acdf-4277-82da-12deefb7f630 1920w" alt="Wine-tasting table overlooking vineyard rows, a farmhouse, and golden rolling hills." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2154                    </div>
2155                    <div class="blog-posts-slider-item__description">
2156                                <p class="blog-posts-slider-item__name">
2157                                        
2158             
2159                                        
2160            
2161                                        October 9, 2025
2162                                </p>
2163                        <h3 class="blog-posts-slider-item__title">
2163Off-the-Beaten-Path Spots in Livermore Locals Love</h3>
2164                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Lifestyle</span>
2165                    </div>
2166            	</a>
2167                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/modern-home-trends-transforming-danville-ca">
2168                    <div class="blog-posts-slider-item__image-container">
2169                          <span class="blog-posts-slider-item__category lp-tag">Real Estate</span>
2170                        <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/96e90f61-8465-490c-aac3-b2d68d51531a" 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/96e90f61-8465-490c-aac3-b2d68d51531a 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/96e90f61-8465-490c-aac3-b2d68d51531a 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/96e90f61-8465-490c-aac3-b2d68d51531a 1920w" alt="Modern white home with rooftop solar panels, glass walls, and a landscaped path leading to an outdoor patio." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2171                    </div>
2172                    <div class="blog-posts-slider-item__description">
2173                                <p class="blog-posts-slider-item__name">
2174                                        
2175             
2176                                        
2177            
2178                                        May 28, 2025
2179                                </p>
2180                        <h3 class="blog-posts-slider-item__title">Modern Home Trends Transforming Danville, CA</h3>
2181                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Real Estate</span>
2182                    </div>
2183            	</a>
2184                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/how-californias-adu-rules-impact-san-ramon-owners">
2185                    <div class="blog-posts-slider-item__image-container">
2186                        <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/5dce8861-aecb-41f2-be48-2e779f3f8801" 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/5dce8861-aecb-41f2-be48-2e779f3f8801 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/5dce8861-aecb-41f2-be48-2e779f3f8801 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/5dce8861-aecb-41f2-be48-2e779f3f8801 1408w" alt="Paved walkway between a light stucco home and a modern wood-clad house, with raised garden beds." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2187                    </div>
2188                    <div class="blog-posts-slider-item__description">
2189                                <p class="blog-posts-slider-item__name">
2190                                        
2191             
2192                                        
2193            
2194                                        December 18, 2025
2195                                </p>
2196                        <h3 class="blog-posts-slider-item__title">How California’s ADU Rules Impact San Ramon Owners</h3>
2197                    </div>
2198            	</a>
2199                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/solar-battery-in-ruby-hill-under-californias-new-rules">
2200                    <div class="blog-posts-slider-item__image-container">
2201                        <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/0275cd05-8215-497d-8e56-f7aa0a8ac5ed" 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/0275cd05-8215-497d-8e56-f7aa0a8ac5ed 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/0275cd05-8215-497d-8e56-f7aa0a8ac5ed 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/0275cd05-8215-497d-8e56-f7aa0a8ac5ed 1408w" alt="White stucco home with a red tile roof covered in solar panels, backed by autumn trees and distant hills." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2202                    </div>
2203                    <div class="blog-posts-slider-item__description">
2204                                <p class="blog-posts-slider-item__name">
2205                                        
2206             
2207                                        
2208            
2209                                        October 16, 2025
2210                                </p>
2211                        <h3 class="blog-posts-slider-item__title">Solar + Battery In Ruby Hill Under California’s New Rules</h3>
2212                    </div>
2213            	</a>
2214                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/what-really-drives-home-prices-in-pleasanton">
2215                    <div class="blog-posts-slider-item__image-container">
2216                        <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/3d093edb-1164-46d3-b933-9e978fcae616" 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/3d093edb-1164-46d3-b933-9e978fcae616 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/3d093edb-1164-46d3-b933-9e978fcae616 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/3d093edb-1164-46d3-b933-9e978fcae616 1408w" alt="Two-story stucco house with a red tile roof beside a broad lawn and mature trees." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2217                    </div>
2218                    <div class="blog-posts-slider-item__description">
2219                                <p class="blog-posts-slider-item__name">
2220                                        
2221             
2222                                        
2223            
2224                                        November 21, 2025
2225                                </p>
2226                        <h3 class="blog-posts-slider-item__title">What Really Drives Home Prices In Pleasanton</h3>
2227                    </div>
2228            	</a>
2229                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/your-guide-to-buying-a-home-in-pleasanton-ca">
2230                    <div class="blog-posts-slider-item__image-container">
2231                          <span class="blog-posts-slider-item__category lp-tag">Real Estate</span>
2232                        <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/4b132120-0955-41aa-bbfe-f6b6254368aa" 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/4b132120-0955-41aa-bbfe-f6b6254368aa 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/4b132120-0955-41aa-bbfe-f6b6254368aa 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/4b132120-0955-41aa-bbfe-f6b6254368aa 1920w" alt="Suburban street lined with landscaped homes and mature trees, with rolling hills in the distance." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2233                    </div>
2234                    <div class="blog-posts-slider-item__description">
2235                                <p class="blog-posts-slider-item__name">
2236                                        
2237             
2238                                        
2239            
2240                                        June 27, 2025
2241                                </p>
2242                        <h3 class="blog-posts-slider-item__title">Your Guide to Buying a Home in Pleasanton, CA</h3>
2243                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Real Estate</span>
2244                    </div>
2245            	</a>
2246                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/top-neighborhoods-to-invest-in-dublin-ca-this-year">
2247                    <div class="blog-posts-slider-item__image-container">
2248                          <span class="blog-posts-slider-item__category lp-tag">Real Estate</span>
2249                        <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/cdc37420-a789-47d5-8a8d-560cc001e4dc" 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/cdc37420-a789-47d5-8a8d-560cc001e4dc 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/cdc37420-a789-47d5-8a8d-560cc001e4dc 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/cdc37420-a789-47d5-8a8d-560cc001e4dc 1920w" alt="Aerial view of a town beside patchwork green fields, with wooded hills stretching across the horizon." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2250                    </div>
2251                    <div class="blog-posts-slider-item__description">
2252                                <p class="blog-posts-slider-item__name">
2253                                        
2254             
2255                                        
2256            
2257                                        July 19, 2025
2258                                </p>
2259                        <h3 class="blog-posts-slider-item__title">Top Neighborhoods to Invest in Dublin, CA This Year</h3>
2260                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Real Estate</span>
2261                    </div>
2262            	</a>
2263                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/how-to-remodel-your-home-in-pleasanton-ca-without-the-stress">
2264                    <div class="blog-posts-slider-item__image-container">
2265                          <span class="blog-posts-slider-item__category lp-tag">Real Estate</span>
2266                        <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/2f5df517-9cc7-4e8a-8acc-97dda903d1de" 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/2f5df517-9cc7-4e8a-8acc-97dda903d1de 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/2f5df517-9cc7-4e8a-8acc-97dda903d1de 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/2f5df517-9cc7-4e8a-8acc-97dda903d1de 1920w" alt="Bright open-plan kitchen with a marble island, vaulted wood-beam ceiling, and wide windows overlooking a garden." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2267                    </div>
2268                    <div class="blog-posts-slider-item__description">
2269                                <p class="blog-posts-slider-item__name">
2270                                        
2271             
2272                                        
2273            
2274                                        August 30, 2025
2275                                </p>
2276                        <h3 class="blog-posts-slider-item__title">How to Remodel Your Home in Pleasanton, CA Without the Stress</h3>
2277                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Real Estate</span>
2278                    </div>
2279            	</a>
2280                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/hidden-gems-in-livermore-ca-must-see-local-spots">
2281                    <div class="blog-posts-slider-item__image-container">
2282                          <span class="blog-posts-slider-item__category lp-tag">Lifestyle</span>
2283                        <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/4533d694-0006-4d76-99a3-4d5f317e9478" 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/4533d694-0006-4d76-99a3-4d5f317e9478 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/4533d694-0006-4d76-99a3-4d5f317e9478 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/4533d694-0006-4d76-99a3-4d5f317e9478 1920w" alt="A small-town shopping street borders vineyard rows, with rolling hills and distant mountains." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2284                    </div>
2285                    <div class="blog-posts-slider-item__description">
2286                                <p class="blog-posts-slider-item__name">
2287                                        
2288             
2289                                        
2290            
2291                                        June 11, 2025
2292                                </p>
2293                        <h3 class="blog-posts-slider-item__title">Hidden Gems in Livermore, CA: Must-See Local Spots</h3>
2294                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Lifestyle</span>
2295                    </div>
2296            	</a>
2297                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/eco-friendly-home-upgrades-that-add-value-in-ruby-hill-ca">
2298                    <div class="blog-posts-slider-item__image-container">
2299                          <span class="blog-posts-slider-item__category lp-tag">Real Estate</span>
2300                        <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/633b0812-fb8d-4ff2-bc4e-663ee68f1e5d" 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/633b0812-fb8d-4ff2-bc4e-663ee68f1e5d 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/633b0812-fb8d-4ff2-bc4e-663ee68f1e5d 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/633b0812-fb8d-4ff2-bc4e-663ee68f1e5d 1920w" alt="Modern stone-and-glass house with rooftop solar panels, landscaped garden, and vineyard rows beyond." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2301                    </div>
2302                    <div class="blog-posts-slider-item__description">
2303                                <p class="blog-posts-slider-item__name">
2304                                        
2305             
2306                                        
2307            
2308                                        August 13, 2025
2309                                </p>
2310                        <h3 class="blog-posts-slider-item__title">Eco-Friendly Home Upgrades That Add Value in Ruby Hill, CA</h3>
2311                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Real Estate</span>
2312                    </div>
2313            	</a>
2314                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/must-have-smart-home-features-for-ruby-hill-ca-homeowners">
2315                    <div class="blog-posts-slider-item__image-container">
2316                          <span class="blog-posts-slider-item__category lp-tag">Lifestyle</span>
2317                        <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/01f33596-208b-4ece-8d17-ea147531068a" 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/01f33596-208b-4ece-8d17-ea147531068a 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/01f33596-208b-4ece-8d17-ea147531068a 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/01f33596-208b-4ece-8d17-ea147531068a 1920w" alt="Modern living room opens onto vineyard rows and golden hills, with a linear fireplace." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2318                    </div>
2319                    <div class="blog-posts-slider-item__description">
2320                                <p class="blog-posts-slider-item__name">
2321                                        
2322             
2323                                        
2324            
2325                                        August 9, 2025
2326                                </p>
2327                        <h3 class="blog-posts-slider-item__title">Must-Have Smart Home Features for Ruby Hill, CA Homeowners</h3>
2328                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Lifestyle</span>
2329                    </div>
2330            	</a>
2331                <a class="blog-posts-slider-item splide__slide lp_animation-img-zoom" href="/blog/key-questions-to-ask-during-an-open-house-in-san-ramon-ca">
2332                    <div class="blog-posts-slider-item__image-container">
2333                          <span class="blog-posts-slider-item__category lp-tag">Real Estate</span>
2334                        <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/20c00cb7-4c27-4c17-95f1-0f1d1390401b" 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/20c00cb7-4c27-4c17-95f1-0f1d1390401b 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/20c00cb7-4c27-4c17-95f1-0f1d1390401b 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/20c00cb7-4c27-4c17-95f1-0f1d1390401b 1920w" alt="Modern white homes with flat roofs line a quiet street beneath large leafy trees." sizes="(min-width: 992px) 33vw, (min-width: 769px) 50vw, 100vw" class="blog-posts-slider-item__image" loading="lazy">
2335                    </div>
2336                    <div class="blog-posts-slider-item__description">
2337                                <p class="blog-posts-slider-item__name">
2338                                        
2339             
2340                                        
2341            
2342                                        July 15, 2025
2343                                </p>
2344                        <h3 class="blog-posts-slider-item__title">Key Questions to Ask During an Open House in San Ramon, CA</h3>
2345                          <span  class="blog-posts-slider-item__tag lp-tag" style="position: static;">Real Estate</span>
2346                    </div>
2347            	</a>
2348            </ul>
2349        </div>
2350    </div>
2351    <div class="blog-posts-slider__button-row">
2352            <a href="/blog"  class="blog-posts-slider__btn lp-btn button-style-1"><span class="lp-btn__content">View All</span></a>
2353            <div class="blog-posts-slider__arrows">
2354                <button class="blog-posts-slider__arrow blog-posts-slider__arrow--prev lp-arrow lp-arrow--prev js-arrow--prev "></button>
2355                <button class="blog-posts-slider__arrow blog-posts-slider__arrow--next lp-arrow lp-arrow--next js-arrow--next "></button>
2356            </div>
2357    </div>
2358</div>
2359
2360
2361
2362
2363
2364</section>
2365<section id="section-2c090225-3f15-4437-9733-8b420503d690"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="1bca80b5-df8e-4ef8-b50a-525db1d4a430">
2366  
2367<div class="newsletter-signup lp-vertical-paddings" style="--titleColor:rgba(0, 0, 0, 1);">
2368  <div class="newsletter-signup__container">
2369    <form data-type="contact-form" class="newsletter-signup__form js-form">
2370      <div class="newsletter-signup__form-container">
2371        <div class="newsletter-signup__form-title-group lp-title-group">
2372          <h2 class="newsletter-signup__form-title"> Local Expertise – Global Connections</h2>
2373          <div class="newsletter-signup__form-description lp-text--subtitle"><p>Whether you are making a move locally, selling a second home, or relocating in or out of the area, Katherine&rsquo;s extensive network can reach you as far as you want to go.</p></div>
2374        </div>
2375        <div class="newsletter-signup-form">
2376          <div class="newsletter-signup-form__inputs-container">
2377              <input id="section-2c090225-3f15-4437-9733-8b420503d690__newsSignFirstName" type="text" name="name" class="newsletter-signup__form-item lp-in
2377put" required placeholder="Name">
2378              
2379            <input id="section-2c090225-3f15-4437-9733-8b420503d690__newsSignEmail" type="email" name="email" class="newsletter-signup__form-item lp-input" required placeholder="Email" pattern="[a-zA-Z0-9.!#$%&amp;’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+">
2380            
2381            <button type="submit" class="newsletter-signup__form-submit lp-btn button-style-1">Submit</button>
2382            
2383            <div class="lp-h-pot">
2384              <input id="section-2c090225-3f15-4437-9733-8b420503d690__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1">
2385            </div>
2386            
2387            <input style="display: none;" type="text" name="source" value="NEWSLETTER_SIGNUP" />
2388          </div>
2389        </div>
2390        <div class="newsletter-signup__form-disclaimer lp-disclaimer">  <label style='display: none;' for='section-2c090225-3f15-4437-9733-8b420503d690-termsAccepted'>Opt In/Disclaimer Consent:</label>
2391  <label class='lp-tcr-content'>
2392    <span class='lp-tcr-checkbox'>
2393      <input
2394        type='checkbox'
2395        id='section-2c090225-3f15-4437-9733-8b420503d690-termsAccepted'
2396        name='termsAccepted'
2397        oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
2398        oninput="this.setCustomValidity('')"
2399        required
2400      /></span>
2401    <span class='lp-tcr-message'>
2402      
2403        I agree to be contacted by
2404        Couture Real Estate Group
2405        via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance.
2406        You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary.
2407        <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>.
2408    </span>
2409  </label>
2410
2411</div>
2412      </div>
2413      <div class="newsletter-signup__form-success">
2414        <div class="newsletter-signup__form-title-group lp-title-group">
2415          <h2 class="newsletter-signup__form-success-title">Thank You</h2>
2416          <div class="newsletter-signup__form-success-message lp-text--subtitle">You have successfully been added to our Newsletter. Stay tuned for the latest updates sent straight to your inbox!</div>
2417        </div>
2418      </div>
2419    </form>
2420    
2421  </div>
2422</div>
2423</section>
2424<section  class="image-section is-font-color-light is-background-color-light" id="section-5bb607e9-9670-455b-9652-8c9d1b0b1c63" data-el-id="1ed7f92a-2189-48c5-889c-3838656da504">
2425    <div class="newsletter-contact-cta lp-vertical-paddings"
2426        style="
2427            --titleColorFirst: rgba(177, 132, 99, 1);
2428            --newsletterBack: rgba(238, 237, 233, 0.85);
2429            --titleColorSecond: rgba(255, 255, 255, 1);
2430            --workWithBack: rgba(0, 0, 0, 0);
2431            --newsletterTextColor: rgba(64, 64, 64, 1);
2432            --rightBack: rgba(255, 255, 255, 1);
2433        "
2434>
2435    <div class="newsletter-contact-cta__right-back"></div>
2436    <div class="newsletter-contact-cta__container lp-container">
2437        <div class="newsletter-contact-cta__wrapper">
2438            <div class="newsletter-contact-cta__block newsletter-contact-cta__block--touch newsletter-contact-cta__block--no-newsletter">
2439                <div class="newsletter-contact-cta__heading">
2440                            <h2 class="newsletter-contact-cta__title newsletter-contact-cta__title--touch ">Enjoy personalized service from start to sold</h2>
2441                        <div class="newsletter-contact-cta__description"><p>With Couture Real Estate Group, you have the advantage of working with Katherine Couture, an expert in high-end properties, relocations, and retirement transitions. Her unrivaled expertise and dedication ensure a seamless journey from start to finish.</p></div>
2442                </div>
2443                    <div class="newsletter-contact-cta__btn-wrap">
2444        <a
2445            role="button"
2446            data-type="CONTACT_US"
2447            class="newsletter-contact-cta__btn lp-btn button-style-2"
2448            
2449            
2450            
2451            
2452            
2453            >
2454                                                <span class="lp-btn__content">Contact Us</span>
2455            </a>
2456                    </div>
2457            </div>
2458        </div>
2459    </div>
2460</div>
2461</section>
2462<section id="section-2b120f4d-e619-4190-9fac-7fc3abaef672"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="85dc9e17-a4c7-449c-8890-869fdc11b485">
2463  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css"/>
2464<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js"></script>
vendor: 1 bytes, line 2464
2464
2465<script type="text/x-handlebars-template" class="jsIGTemplate">
2466    {{#each items}}
2467        <a href="{{permalink}}" target="_blank" class="instagram-feed__item lp_animation-img-zoom splide__slide insta-item insta-type-{{mediaType}}">
2468          <img class="instagram-feed__image" src="{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{else}}{{mediaUrl}}{{/ifEquals}}" alt="Instagram post by @{{username}}">
2469        </a>
2470    {{/each}}
2471</script>
2471
2472
2473<div class="instagram-feed lp-vertical-paddings">
2474    <div class="instagram-feed__container" style="--titleColor: #B18463; --boxColor: rgba(238, 237, 233, 1);">
2475        <div class="instagram-feed__title-group lp-title-group">
2476            <div class="instagram-feed__icon lp-icon"></div>
2477            <p class="instagram-feed__pretitle">Follow Us On Instagram</p>
2478            <h2 class="instagram-feed__title instagram-feed__title--with-pretitle"><a href="#" target="_blank" class="instagram-feed__link jsIGLink jsIGName"></a></h2>
2479        </div>
2480
2481        <div class="instagram-feed__collection splide js-slider">
2482          <div class="splide__track">
2483              <ul class="splide__list jsIGContainer">
2484              </ul>
2485          </div>
2486        </div>
2487    </div>
2488</div>
2489
2490
2491
2492
2493</section>
2494
2495        <div id="modals" class="modals"></div>
2496        <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="b8c9ffd0-3b1f-4577-96fc-828efdac86e7">
2497            
2498
2499<div class="footer"> 
2500        <div class="footer-logos-row">
2501            <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/d8af9b0d-444f-4894-99ba-4f08f8debc20" 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 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/d8af9b0d-444f-4894-99ba-4f08f8debc20 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/d8af9b0d-444f-4894-99ba-4f08f8debc20 3456w" class="footer-logo" sizes="350px" alt="">
2502            
2503        </div>
2504    <div class="footer-contact-row">
2505        <div class="footer-info ">
2506                    <div class="footer__col">
2507                        <h5 class="footer__section-title">Couture Real Estate Group</h5>
2508                        <div class="footer__section-content">
2509                                <div class="footer__col-content">
2510                                    <p class="footer__col-title">Contact Us</p>                <div class="footer__col-description lp-a lp-pre-line"><div><a href="tel:9255253380">(925) 525-3380</a><br><a href="/cdn-cgi/l/email-protection#c0aba1b4a8a5b2a9aea5eea3afb5b4b5b2a580a3afadb0a1b3b3eea3afad"><span class="__cf_email__" data-cfemail="563d37223e33243f383378353923222324331635393b263725257835393b">[email&#160;protected]</span></a></div></div>
2511                                </div>
2512                            
2513                                <div class="footer__col-content">
2514                                    <p class="footer__col-title">Address</p>                <div class="footer__col-description lp-a lp-pre-line"><p>900 MAIN ST<br>PLEASANTON CA 94566</p></div>
2515                                </div>
2516                        </div>
2517                    </div>
2518                
2519                
2520                
2521        </div>
2522
2523            <ul class="lp-socials social_icons-style-1 footer-socials">
2524            
2525                    <li>
2526                      <a
2527                        href="https://www.linkedin.com/in/katherine-couture-90618317/"
2528                        class="lp-socials__link socials__link"
2529                        data-wow-delay="0s"
2530                        target="_blank"
2531                        aria-label="LINKEDIN"
2532                      >
2533                          <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
2534                      </a>
2535                    </li>
2536                    <li>
2537                      <a
2538                        href="https://www.youtube.com/@couturerealestateteam3351"
2539                        class="lp-socials__link socials__link"
2540                        data-wow-delay="0.1s"
2541                        target="_blank"
2542                        aria-label="YOUTUBE"
2543                      >
2544                          <span class="lp-i lp-i--youtube" aria-hidden="true"></span>
2545                      </a>
2546                    </li>
2547                    <li>
2548                      <a
2549                        href="https://www.google.com/search?q&#x3D;Katherine+Couture%2C+Realtor+%7C+Intero+Real+Estate+Livermore&amp;rlz&#x3D;1C1CHZN_enPH1001PH1001&amp;oq&#x3D;katherine+coutu&amp;gs_lcrp&#x3D;EgZjaHJvbWUqBggAEEUYOzIGCAAQRRg7MgYIARBFGDsyBggCEEUYOzIGCAMQRRg5MgYIBBBFGDwyBggFEEUYPDIGCAYQRRg80gEIMjI3MWowajGoAgCwAgA&amp;sourceid&#x3D;chrome&amp;ie&#x3D;UTF-8#lrd&#x3D;0x808fe79f1abaaaab:0x84474328b06e78ae,1,,,,"
2550                        class="lp-socials__link socials__link"
2551                        data-wow-delay="0.2s"
2552                        target="_blank"
2553                        aria-label="GOOGLE"
2554                      >
2555                          <span class="lp-i lp-i--google" aria-hidden="true"></span>
2556                      </a>
2557                    </li>
2558                    <li>
2559                      <a
2560                        href="https://www.zillow.com/profile/user767165"
2561                        class="lp-socials__link socials__link"
2562                        data-wow-delay="0.3s"
2563                        target="_blank"
2564                        aria-label="ZILLOW"
2565                      >
2566                          <span class="lp-i lp-i--zillow" aria-hidden="true"></span>
2567                      </a>
2568                    </li>
2569              </ul>    </div>
2570    
2571
2572
2573
2574   
2575        <div class="footer-disclaimer-row">
2576            <div class="footer-disclaimer"><p style="font-size: 14px;">Couture Real Estate Group | CA DRE# 01333990<br>Compass California, Inc. | CA DRE# 01527235</p>
2577<p style="font-size: 12px;">Couture Real Estate Group is a team of real estate agents affiliated with Compass. <a class="link" href="https://www.compass.com/" target="_blank" rel="noopener">Compass</a>&nbsp;is a real estate broker licensed by the State of California and abides by Equal Housing Opportunity laws. License Number 01527235. All material presented herein is intended for informational purposes only and is compiled from sources deemed reliable but has not been verified. Changes in price, condition, sale or withdrawal may be made without notice. No statement is made as to the accuracy of any description. All measurements and square footage are approximate. If your property is currently listed for sale this is not a solicitation.</p>
2578<p style="opacity: 1;"><img style="margin-top: 0; width: 100px; height: auto;" src="https://res.cloudinary.com/luxuryp/images/zbxf1j3xdplm6lhfnqo3/realtor-eho-logo-07232021-update-dark"></p></div>
2579            
2580            
2581        </div>
2582    
2583
2584    <div class="footer-bottom-row">
2585            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/jnymuan6tigs629jigsz" 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/jnymuan6tigs629jigsz 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/jnymuan6tigs629jigsz 390w" class="footer-logo" sizes="350px" alt="">
2586
2587        <div class="footer-copyright lp-a">
2588            <div class="footer-copyright__powered">
2589                Powered by <a href="https://www.luxurypresence.com/" class="" target="_blank">Luxury Presence</a>
2590            </div>
2591            
2592            <div class="footer-copyright__privacy">
2593                <span>Copyright © <span class="auto-year-update">2026</span></span>
2594                
2595           
2596                <a href="/terms-and-conditions" class="footer-copyright__privacy-policy">Privacy Policy</a>
2597            </div>
2598        </div>
2599    </div>
2600
2601</div>
2602
2603        </footer>
2604
2605        <div id="modal-global-contact-us" class="modal "
2606            data-el-id=""
2607            style="background-color: ;"
2608            >
2609            <div class="modal-content">
2610                
2611        
2612        <div class="contact-form-modal lp-vertical-paddings" style="--leftPanelBg
2612Color: rgba(245, 242, 238, 1); --textColor:rgba(0, 0, 0, 1); --formBgColor: rgba(255, 255, 255, 1); --formTextColor: rgba(0, 0, 0, 1)">
2613            <div class="contact-form-modal__bg">
2614                <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/17338084-5da1-458f-947a-bfe1776a6de7" 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/17338084-5da1-458f-947a-bfe1776a6de7 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/17338084-5da1-458f-947a-bfe1776a6de7 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/17338084-5da1-458f-947a-bfe1776a6de7 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/17338084-5da1-458f-947a-bfe1776a6de7 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/17338084-5da1-458f-947a-bfe1776a6de7 2000w" sizes="(min-width: 1981px) 12.2222vw, (min-width: 1025px) 424px, 100vw" class="contact-form-modal__bg-image portrait" alt="">
2615            </div>
2616            <div class="contact-form-modal__close-container">
2617                <button class="contact-form-modal__close toggle close lp-btn lp-icon link-icon--plus"></button>
2618            </div>
2619            <div class="contact-form-modal__container">
2620                  <div class="contact-form-modal-details only-desktop">
2621                        <h2 class="contact-form-modal-details__title only-desktop js-contact-title">Get in Touch</h2>
2622                        <div class="contact-form-modal-agent">
2623                            <div class="contact-form-modal-agent__contact">    
2624                                <p class="contact-form-modal-agent__name">COUTURE REAL ESTATE GROUP | CA DRE# 01333990</p>
2625                                <p class="contact-form-modal-agent__phone lp-a">
2626                                  <a class="contact-form-modal-agent__link" href="tel:9255253380">(925) 525-3380</a>
2627                                </p>
2628                                <p class="contact-form-modal-agent__email lp-a">
2629                                  <a class="contact-form-modal-agent__link" href="/cdn-cgi/l/email-protection#7e151f0a161b0c17101b501d110b0a0b0c1b3e1d11130e1f0d0d501d1113"><span class="__cf_email__" data-cfemail="432822372b26312a2d266d202c363736312603202c2e332230306d202c2e">[email&#160;protected]</span></a>
2630                                </p>
2631                            </div>
2632                            <div class="contact-form-modal-agent__contact">
2633                                <p class="contact-form-modal-agent__addres lp-pre-line">900 MAIN ST
2634                PLEASANTON CA 94566</p>
2635                            </div>
2636                        </div>
2637                
2638                        
2639                        
2640                
2641                        <div class="contact-form-modal-details__socials">
2642                            <ul class="lp-socials social_icons-style-1 contact-form-modal-details__socials-list lp-socials">
2643                            
2644                                    <li>
2645                                      <a
2646                                        href="https://www.linkedin.com/in/katherine-couture-90618317/"
2647                                        class="lp-socials__link contact-form-modal-details__socials-link"
2648                                        data-wow-delay="0s"
2649                                        target="_blank"
2650                                        aria-label="LINKEDIN"
2651                                      >
2652                                          <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
2653                                      </a>
2654                                    </li>
2655                                    <li>
2656                                      <a
2657                                        href="https://www.youtube.com/@couturerealestateteam3351"
2658                                        class="lp-socials__link contact-form-modal-details__socials-l
2658ink"
2659                                        data-wow-delay="0.1s"
2660                                        target="_blank"
2661                                        aria-label="YOUTUBE"
2662                                      >
2663                                          <span class="lp-i lp-i--youtube" aria-hidden="true"></span>
2664                                      </a>
2665                                    </li>
2666                                    <li>
2667                                      <a
2668                                        href="https://www.google.com/search?q&#x3D;Katherine+Couture%2C+Realtor+%7C+Intero+Real+Estate+Livermore&amp;rlz&#x3D;1C1CHZN_enPH1001PH1001&amp;oq&#x3D;katherine+coutu&amp;gs_lcrp&#x3D;EgZjaHJvbWUqBggAEEUYOzIGCAAQRRg7MgYIARBFGDsyBggCEEUYOzIGCAMQRRg5MgYIBBBFGDwyBggFEEUYPDIGCAYQRRg80gEIMjI3MWowajGoAgCwAgA&amp;sourceid&#x3D;chrome&amp;ie&#x3D;UTF-8#lrd&#x3D;0x808fe79f1abaaaab:0x84474328b06e78ae,1,,,,"
2669                                        class="lp-socials__link contact-form-modal-details__socials-link"
2670                                        data-wow-delay="0.2s"
2671                                        target="_blank"
2672                                        aria-label="GOOGLE"
2673                                      >
2674                                          <span class="lp-i lp-i--google" aria-hidden="true"></span>
2675                                      </a>
2676                                    </li>
2677                                    <li>
2678                                      <a
2679                                        href="https://www.zillow.com/profile/user767165"
2680                                        class="lp-socials__link contact-form-modal-details__socials-link"
2681                                        data-wow-delay="0.3s"
2682                                        target="_blank"
2683                                        aria-label="ZILLOW"
2684                                      >
2685                                          <span class="lp-i lp-i--zillow" aria-hidden="true"></span>
2686                                      </a>
2687                                    </li>
2688                              </ul>        </div>
2689                  </div>
2690                    <div class="contact-form-modal-form">
2691                        <h2 class="contact-form-modal-form__title only-mobile js-contact-title">Get in Touch</h2>
2692                        <form action="" class="contact-form-modal-form__form js-form" data-type="contact-form">
2693                            <div class="lp-h-pot">
2694                                  <label for="-if-middleName">Middle Name</label>
2695                                  <input id="-if-middleName" name="middleName" value="" autocomplete="off" tabindex="-1">
2696                            </div> 
2697                            <div class="contact-form-modal-form__group">
2698                                <div class="contact-form-modal-form__group-container lp-input-group">
2699                                    <input required id="-name" name="name" type="text" class="lp-input js-input-name" placeholder="Enter your full name">
2700                                    <label for="-name" class="lp-label contact-form-modal-form__label">Name</label>
2701                                </div>   
2702                                <div class="contact-form-modal-form__group-container lp-input-group">
2703                                    <input required id="-phone" name="phone" type="tel" class="lp-input" placeholder="Your phone">
2704                                    <label for="-phone" class="lp-label contact-form-modal-form__label">Phone</label>
2705                                </div>
2706                            </div>
2707                            <div class="contact-form-modal-form__group lp-input-group">
2708                                <div class="contact-form-modal-form__input-container">
2709                                    <input required id="-email" name="email" type="email" class="lp-input js-email-input" placeholder="@">
2710                                    <div class="contact-form-modal-form__error error">Enter a valid email</div>
2711                                </div>
2712                                
2713                                <label for="-email" class="contact-form-modal-form__label lp-label">Email</label>
2714                            </div>
2715                            <div class="contact-form-modal-form__group lp-input-group">
2716                                <textarea id="-message" name="message" class="contact-form-modal-form__textarea lp-input" placeholder="Type your message"></textarea>
2717                                <label for="-message" class="contact-form-modal-form__label lp-label">Your Message</label>
2718                            </div>
2719                
2720                            <div class="contact-form-modal-form__disclaimer lp-disclaimer">  <div class='lp-tcr-content' style='margin-bottom: 1em;'>
2721                    <span class='lp-tcr-message'>
2722                      By providing your contact information to Couture Real Estate Group, your personal
2723                      information will be processed in accordance with Couture Real Estate Group's
2724                      <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. By
2725                      checking the box(es) below, you consent to receive communications
2726                      regarding your real estate inquiries and related marketing and promotional
2727                      updates in the manner selected by you. For SMS text messages, message
2728                      frequency varies. Message and data rates may apply. You may opt out of
2729                      receiving further communications from Couture Real Estate Group at any time. To opt
2730                      out of receiving SMS text messages, reply STOP to unsubscribe.
2731                    </span>
2732                  </div>
2733                  <label style='display: none;' for='-termsAccepted'>Opt
2734                    in/Disclaimer Consent:</label>
2735                  <label class='lp-tcr-content' style='margin-bottom: 1em;'>
2736                    <span class='lp-tcr-checkbox'>
2737                      <input
2738                        type='checkbox'
2739                        name='termsAccepted'
2740                        id='-termsAccepted'
2741                        oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
2742                        oninput="this.setCustomValidity('')"
2743                        required
2744                        value='Yes, I agree to receive email or phone call communications from Couture Real Estate Group.'
2745                      />
2746                    </span>
2747                    <span class='lp-tcr-message'>
2748                      Yes, I agree to receive email or phone call communications from
2749                      Couture Real Estate Group.
2750                    </span>
2751                  </label>
2752                  <label style='display: none;' for='-customConsent'>Opt
2753                    in/Disclaimer Consent:</label>
2754                  <label class='lp-tcr-content' style='margin-bottom: 1em;'>
2755                    <span class='lp-tcr-checkbox'>
2756                      <input
2757                        type='checkbox'
2758                        name='customConsent'
2759                        id='-customConsent'
2760                        value='Yes, I agree to receive SMS text messages from Couture Real Estate Group.'
2761                      />
2762                    </span>
2763                    <span class='lp-tcr-message'>
2764                      Yes, I agree to receive SMS text messages from Couture Real Estate Group.
2765                    </span>
2766                  </label>
2767                
2768                </div>
2769                
2770                            <button type="submit" class="contact-form-modal-submit lp-btn lp-icon button-style-1">
2771                                <div class="contact-form-modal-submit__default">
2772                                  <span class="contact-form-modal-submit__content lp-btn__content">Send Message</span>
2773                                </div>
2774                                <div class="contact-form-modal-submit__loading">
2775                                  <span class="contact-form-modal-submit__content lp-btn__content">Sending</span>
2776                                </div>
2777                                <div class="contact-form-modal-submit__success">
2778                                  <span class="contact-form-modal-submit__content lp-btn__content">Message Sent!</span>
2779                                </div>
2780                            </button>
2781                        </form>
2782                    </div>
2783                    
2784                  <div class="contact-form-modal-details only-mobile">
2785                        <h2 class="contact-form-modal-details__title only-desktop js-contact-title">Get in Touch</h2>
2786                        <div class="contact-form-modal-agent">
2787                            <div class="contact-form-modal-agent__contact">    
2788                                <p class="contact-form-modal-agent__name">COUTURE REAL ESTATE GROUP | CA DRE# 01333990</p>
2789                                <p class="contact-form-modal-agent__phone lp-a">
2790                                  <a class="contact-form-modal-agent__link" href="tel:9255253380">(925) 525-3380</a>
2791                                </p>
2792                                <p class="contact-form-modal-agent__email lp-a">
2793                                  <a class="contact-form-modal-agent__link" href="/cdn-cgi/l/email-protection#86ede7f2eee3f4efe8e3a8e5e9f3f2f3f4e3c6e5e9ebf6e7f5f5a8e5e9eb"><span class="__cf_email__" data-cfemail="cea5afbaa6abbca7a0abe0ada1bbbabbbcab8eada1a3beafbdbde0ada1a3">[email&#160;protected]</span></a>
2794                                </p>
2795                            </div>
2796                            <div class="contact-form-modal-agent__contact">
2797                                <p class="contact-form-modal-agent__addres lp-pre-line">900 MAIN ST
2798                PLEASANTON CA 94566</p>
2799                            </div>
2800                        </div>
2801                
2802                        
2803                        
2804                
2805                        <div class="contact-form-modal-details__socials">
2806                            <ul class="lp-socials social_icons-style-1 contact-form-modal-details__socials-l
2806ist lp-socials">
2807                            
2808                                    <li>
2809                                      <a
2810                                        href="https://www.linkedin.com/in/katherine-couture-90618317/"
2811                                        class="lp-socials__link contact-form-modal-details__socials-link"
2812                                        data-wow-delay="0s"
2813                                        target="_blank"
2814                                        aria-label="LINKEDIN"
2815                                      >
2816                                          <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
2817                                      </a>
2818                                    </li>
2819                                    <li>
2820                                      <a
2821                                        href="https://www.youtube.com/@couturerealestateteam3351"
2822                                        class="lp-socials__link contact-form-modal-details__socials-link"
2823                                        data-wow-delay="0.1s"
2824                                        target="_blank"
2825                                        aria-label="YOUTUBE"
2826                                      >
2827                                          <span class="lp-i lp-i--youtube" aria-hidden="true"></span>
2828                                      </a>
2829                                    </li>
2830                                    <li>
2831                                      <a
2832                                        href="https://www.google.com/search?q&#x3D;Katherine+Couture%2C+Realtor+%7C+Intero+Real+Estate+Livermore&amp;rlz&#x3D;1C1CHZN_enPH1001PH1001&amp;oq&#x3D;katherine+coutu&amp;gs_lcrp&#x3D;EgZjaHJvbWUqBggAEEUYOzIGCAAQRRg7MgYIARBFGDsyBggCEEUYOzIGCAMQRRg5MgYIBBBFGDwyBggFEEUYPDIGCAYQRRg80gEIMjI3MWowajGoAgCwAgA&amp;sourceid&#x3D;chrome&amp;ie&#x3D;UTF-8#lrd&#x3D;0x808fe79f1abaaaab:0x84474328b06e78ae,1,,,,"
2833                                        class="lp-socials__link contact-form-modal-details__socials-link"
2834                                        data-wow-delay="0.2s"
2835                                        target="_blank"
2836                                        aria-label="GOOGLE"
2837                                      >
2838                                          <span class="lp-i lp-i--google" aria-hidden="true"></span>
2839                                      </a>
2840                                    </li>
2841                                    <li>
2842                                      <a
2843                                        href="https://www.zillow.com/profile/user767165"
2844                                        class="lp-socials__link contact-form-modal-details__socials-link"
2845                                        data-wow-delay="0.3s"
2846                                        target="_blank"
2847                                        aria-label="ZILLOW"
2848                                      >
2849                                          <span class="lp-i lp-i--zillow" aria-hidden="true"></span>
2850                                      </a>
2851                                    </li>
2852                              </ul>        </div>
2853                  </div>
2854            </div>
2855        </div>
2856        
2857            </div>
2858            <button class="close lp-close" type="button" aria-label="close modal">
2859                <span class="lp-close-icon" aria-hidden="true"></span>
2860            </button>
2861        </div>
2862        <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;">
2863          <style>
2864            #qualifying-questions-modal .custom-select-toggle {
2865              border: 1px solid #848484;
2866              border-radius: 8px;
2867              padding: 12px 16px;
2868            }
2869        
2870            #qualifying-questions-modal .custom-select-toggle.is-placeholder {
2871              color: #848484;
2872            }
2873        
2874            #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder {
2875              color: #848484;
2876              opacity: 1;
2877            }
2878        
2879            #qualifying-questions-modal .disclaimer-more {
2880              display: none;
2881            }
2882        
2883            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more {
2884              display: inline;
2885            }
2886        
2887            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis {
2888              display: none;
2889            }
2890          </style>
vendor: 119 bytes, lines 2890-2891
2890
2891          <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
2891<script>
2892            function toggleDisclaimerQualifyingQuestionsModal() {
2893              const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text');
2894              const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer');
2895        
2896              if (disclaimerText.classList.contains('collapsed')) {
2897                disclaimerText.classList.remove('collapsed');
2898                toggleButton.textContent = 'Read less';
2899                toggleButton.setAttribute('aria-expanded', 'true');
2900              } else {
2901                disclaimerText.classList.add('collapsed');
2902                toggleButton.textContent = 'Read more';
2903                toggleButton.setAttribute('aria-expanded', 'false');
2904              }
2905            }
2906          </script>
2906
2907          <div style="max-width: 400px; width: 95%; margin: 0 auto;">
2908            <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;">
2909              <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;">
2910                <span aria-hidden="true">&times;</span>
2911              </button>
2912              <div style="padding: 40px 30px 32px;">
2913                <div style="text-align: left; margin-bottom: 32px;">
2914                  <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;">
2915                    Thanks, please provide more information to help serve you
2916                  </h2>
2917                </div>
2918                <form id="qualifying-questions-modal-form" data-type="contact-form">
2919                  <input type="hidden" name="source" value="PROFILE_UPDATE" />
2920                  <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" />
2921                  <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" />
2922                  <label for="qualifying-questions-modal-email" style="display:none;">
2923                    Email
2924                  </label>
2925                  <label for="qualifying-questions-modal-triggerSource" style="display:none;">
2926                    Trigger Source
2927                  </label>
2928        
2929                  <div style="margin-bottom: 20px;">
2930                    <label for="qualifying-questions-modal-phoneNumber" style="display:none;">
2931                      Phone Number
2932                    </label>
2933                    <input
2934                      type="tel"
2935                      id="qualifying-questions-modal-phoneNumber"
2936                      name="phoneNumber"
2937                      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;"
2938                      pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$"
2939                      required
2940                      placeholder="Phone"
2941                      aria-label="Phone Number"
2942                      inputmode="tel"
2943                      autocomplete="tel"
2944                      onfocus="this.style.borderColor='black';"
2945                      onblur="this.style.borderColor='#848484';"
2946                    />
2947                  </div>
2948        
2949                  <div style="margin-bottom: 20px;">
2950                    <label for="qualifying-questions-modal-interest" style="display:none;">
2951                      Interest
2952                    </label>
2953                    <select
2954                      id="qualifying-questions-modal-interest"
2955                      name="interest"
2956                      required
2957                      data-label="Interest"
2958                      aria-label="Interest"
2959                      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;"
2960                      onfocus="this.style.borderColor='black'; this.style.color='black';"
2961                      onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';"
2962                    >
2963                      <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option>
2964                      <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option>
2965                      <option value="Selling" style="background: #fff; color: black;">Selling</option>
2966                      <option value="Buying" style="background: #fff; color: black;">Buying</option>
2967                      <option value="Renting" style="background: #fff; color: black;">Renting</option>
2968                      <option value="Other" style="background: #fff; color: black;">Other</option>
2969                    </select>
2970                  </div>
2971        
2972                  <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;">
2973                    <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label>
2974                    <label class='lp-tcr-content'>
2975                      <span class='lp-tcr-checkbox'>
2976                        <input
2977                          type='checkbox'
2978                          id='qualifying-questions-modal-qualifying-questions-termsAccepted'
2979                          name='termsAccepted'
2980                          aria-describedby='qualifying-questions-modal-disclaimer-text'
2981                          oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
2982                          oninput="this.setCustomValidity('')"
2983                          required
2984                        /></span>
2985                      <span class='lp-tcr-message'>
2986                        <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;">
2987                          
2988                            I agree to be contacted by
2989                            <strong>Couture Real Estate Team</strong>
2990                            via call, email, and text <span class="disclaimer-more">for real estate services. 
2991                            To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 
2992                            You can also click the unsubscribe link in the emails. 
2993                            Message and data rates may apply. Message frequency may vary.</span>
2994                            <span class="disclaimer-ellipsis">...</span>
2995                            <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>.
2996                        </div>
2997                        <button
2998                          id="qualifying-questions-modal-toggle-disclaimer"
2999                          type="button"
3000                          style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;"
3001                          aria-expanded="false"
3002                          onclick="toggleDisclaimerQualifyingQuestionsModal()"
3003                        >
3004                          Read more
3005                        </button>
3006                      </span>
3007                    </label>
3008                  </div>
3009        
3010                  <div>
3011                    <button
3012                      type="submit"
3013                      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;"
3014                      onmouseover="this.style.background='transparent'; this.style.color='black';"
3015                      onmouseout="this.style.background='black'; this.style.color='white';"
3016                    >
3017                      Submit
3018                    </button>
3019                  </div>
3020                </form>
3021              </div>
3022            </div>
3023          </div>
3024        </div>
3025
3026    
3026<script>
3027        (function() {
3028        var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy"));
3029
3030        if ("IntersectionObserver" in window && lazyVideos.length > 0) {
3031            var lazyVideoObserver = new IntersectionObserver(function(entries, observer) {
3032            entries.forEach(function(video) {
3033                if (video.isIntersecting) {
3034                for (var source in video.target.children) {
3035                    var videoSource = video.target.children[source];
3036                    if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") {
3037                    videoSource.src = videoSource.dataset.src;
3038                    }
3039                }
3040
3041                video.target.load();
3042                video.target.classList.remove("lazy");
3043                lazyVideoObserver.unobserve(video.target);
3044                }
3045            });
3046            });
3047
3048            lazyVideos.forEach(function(lazyVideo) {
3049                lazyVideoObserver.observe(lazyVideo);
3050            });
3051        }
3052        })();
3053    </script>
3053
3054
3055        <!-- Global site tag (gtag.js) - Google Analytics -->
3056        
3056<script defer src="https://www.googletagmanager.com/gtag/js"></script>
3056
3057
3058            <!-- Google Tag Manager -->
3059            
3059<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
3060                new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
3061                j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src=
3062                'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
3063            })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
3063
3064            <!-- End Google Tag Manager -->
3065
3066
3067        <!-- LP Tracker (divolte.js) - LP Divolte -->
3068            
3068<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
3068
3069        <!-- LP Tracker (eventBus) - LP EventBus -->
3070            
3070<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
3070
3071
3072    
3072<script>
3073        window.dataLayer = window.dataLayer || [];
3074        document.sendGoogleTagManagerEvent = function() {
3075            /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */
3076            if (window.navigator.globalPrivacyControl) {
3077                return;
3078            }
3079
3080            dataLayer.push(arguments);
3081        }
3082
3083        document.sendGoogleTagManagerEvent('js', new Date());
3084            document.sendGoogleTagManagerEvent('config', 'G-C30R32GJGE', { page: location.pathname, location: location.href });
3085        document.sendGoogleAnalyticsEvent = function(googleEvent) {
3086            document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, {
3087                event_category: googleEvent.eventCategory,
3088                event_label: googleEvent.eventLabel,
3089                value: googleEvent.eventValue,
3090                page: googleEvent.page,
3091                location: googleEvent.location
3092            })
3093        };
3094
3095        document.addEventListener("DOMContentLoaded", function() {
3096            (function() {
3097                //If the page has an element with ID of auto-year-update the element will be populated with the current year.
3098                var date = new Date();
3099                var elements = document.getElementsByClassName('auto-year-update');
3100                var i;
3101                for (i = 0; i < elements.length; i++) {
3102                    elements[i].innerText = date.getFullYear();
3103                }
3104            })();
3105            if (window.divolteLp) {
3106                window.divolteLp('sendLpPageView', {});
3107            }
3108            if (window.eventBusLp) {
3109                window.eventBusLp('sendLpPageView', {});
3110            }
3111        });
3112    </script>
3112
3113
3114
3115    
3115<script>
3116    // Function to dynamically load a script
3117    function loadScript(url, callback) {
3118        var script = document.createElement('script');
3119        script.type = 'text/javascript';
3120        script.src = url;
3121        script.defer = true;
3122        script.async = true;
3123        script.onload = callback;
3124        document.head.appendChild(script);
3125    }
3126
3127    // Function to dynamically load CSS file
3128    function loadCSS(url) {
3129        var link = document.createElement("link");
3130        link.rel = "stylesheet";
3131        link.href = url;
3132        document.head.appendChild(link);
3133    }
3134
3135    // Global methods / variables that can be accessed by element js
3136    window.luxuryPresence = {
3137        libs: {
3138            loadJs: loadScript,
3139            loadCss: loadCSS,
3140            jsLibsMap: {
3141                paroller: {
3142                    jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js',
3143                    isLoaded: false,
3144                },
3145                ionRangeSlider: {
3146                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js',
3147                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css',
3148                    isLoaded: false,
3149                    requires: ['jquery'],
3150                },
3151                splide: {
3152                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js',
3153                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css',
3154                    isLoaded: false,
3155                },
3156                wow: {
3157                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js',
3158                    isLoaded: false,
3159                },
3160                jquery: {
3161                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js',
3162                    isLoaded: false,
3163                },
3164                slick: {
3165                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js',
3166                    isLoaded: false,
3167                    requires: ['jquery'],
3168                },
3169                libphonenumber: {
3170                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js',
3171                    isLoaded: false,
3172                },
3173            },
3174        },
3175    };
3176    </script>
3176
3177    
3177<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>
3177
3178    
3178<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
3178
3179    
3179<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
3179
3180    
3180<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
3180
3181    
3181<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>
3181
3182    
3182<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>
3182
3183    
3183<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>
3183
3184
3185    <!-- GOOGLE TRANSLATE SCRIPT -->
3186    
3186<script>
3187        function googleTranslateElementInit() {
3188            // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'`
3189            // Language codes can be taken from here https://cloud.google.com/translate/docs/languages
3190            const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt';
3191            document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){
3192                translate.innerText = '';
3193                new google.translate.TranslateElement({
3194                    pageLanguage: 'en',
3195                    layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
3196                    includedLanguages: window.customLanguages || DEFAULT_LANGUAGES,
3197                }, translate);
3198            });
3199        }
3200    </script>
3200
3201    
3201<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
3201
3202            
3202<script defer src="https://accounts.google.com/gsi/intermediate"></script>
3202
3203
3204    <!-- GOOGLE TRANSLATE SCRIPT END-->
3205    
3205<script>
3206
3207        // UI helpers
3208        (function () {
3209
3210            function getSideMenu () {
3211                return document.querySelector('body > div.sidemenu');
3212            }
3213
3214            function sideMenuHide (instant) {
3215                var sideMenu = getSideMenu();
3216                if (!sideMenu || !sideMenu.classList.contains('visible')) {
3217                  return;
3218                }
3219                sideMenu.classList.remove('visible');
3220                sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } }));
3221                window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} }));
3222            }
3223
3224            function sideMenuShow () {
3225                var sideMenu = getSideMenu();
3226                if (!sideMenu || sideMenu.classList.contains('visible')) {
3227                  return;
3228                }
3229                sideMenu.classList.add('visible');
3230                sideMenu.dispatchEvent(new Event('lpui-show'));
3231                window.dispatchEvent(new Event('lpui-sidemenu-show'));
3232            }
3233
3234            function sideMenuToggle () {
3235                var sideMenu = getSideMenu();
3236                if (!sideMenu) {
3237                  return;
3238                }
3239                var isSideMenuVisible = sideMenu.classList.contains('visible');
3240                if (isSideMenuVisible) {
3241                    sideMenuHide();
3242                } else {
3243                    sideMenuShow();
3244                }
3245            }
3246
3247            var scrollLockRequests = {};
3248            window.__debug_scrollLockRequests = scrollLockRequests;
3249            var hideScrollStyles = ''+
3250                    'body {'+
3251                    'overflow: hidden;' +
3252                    '}';
3253            var hideScrollId = 'hide-body-scroll-style';
3254
3255            function scrollLock () {
3256                var style = document.createElement('style');
3257                style.id = hideScrollId;
3258                style.textContent = hideScrollStyles;
3259                document.head.appendChild(style);
3260                window.dispatchEvent(new Event('lpui-scroll-locked'));
3261            }
3262
3263            function scrollUnlock () {
3264                document.getElementById(hideScrollId)?.remove();
3265                window.dispatchEvent(new Event('lpui-scroll-unlocked'));
3266            }
3267
3268            function requestScrollLock (lockId) {
3269                var wasLocked = Object.keys(scrollLockRequests).length > 0;
3270                scrollLockRequests[lockId || '__anonymous_lock'] = true;
3271                if (!wasLocked) {
3272                    scrollLock();
3273                }
3274            }
3275
3276            function releaseScrollLock (lockId) {
3277                if (lockId) {
3278                    delete scrollLockRequests[lockId];
3279                    if (!Object.keys(scrollLockRequests).length) {
3280                        scrollUnlock();
3281                    }
3282                } else {
3283                    scrollLockRequests = {};
3284                    window.__debug_scrollLockRequests = scrollLockRequests;
3285                    scrollUnlock();
3286                }
3287            }
3288
3289            function showModal (modalId, options) {
3290                var modal = document.getElementById(modalId);
3291                if (!modal) {
3292                    return;
3293                }
3294
3295                if (!modal.classList.contains('visible')) {
3296                    modal.classList.add('visible');
3297                    if (options && options.scrollLock) {
3298                        window.lpUI.requestScrollLock(modalId);
3299                    }
3300                    modal.dispatchEvent(new Event('lpui-show'));
3301                    window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } }));
3302                }
3303
3304                const visibleModals = document.querySelectorAll('.modal.visible');
3305
3306                if (visibleModals.length > 1) {
3307
3308                    const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => {
3309                        const zIndex = window.getComputedStyle(modal).zIndex;
3310                        const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0;
3311                        return Math.max(maxZIndex, parsedZIndex);
3312                    }, 0);
3313
3314                    modal.style.zIndex = maxZIndex + 1;
3315                }
3316
3317            }
3318
3319            function _hideModal (modalEl) {
3320                if (!modalEl) {
3321                    return;
3322                }
3323                if (!modalEl.classList.contains('visible')) {
3324                    return;
3325                }
3326                modalEl.classList.remove('visible');
3327                modalEl.style.zIndex = '';
3328                modalEl.dispatchEvent(new Event('lpui-hide'));
3329                var modalId = modalEl.getAttribute('id');
3330                if (modalId) {
3331                    window.lpUI.releaseScrollLock(modalId);
3332                    window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } }));
3333                }
3334            }
3335
3336            function hideModal (modalId) {
3337                _hideModal(document.getElementById(modalId));
3338            }
3339
3340            function hideClosestModal (el) {
3341              const modal = el?.closest('.modal');
3342              if (!modal) {
3343                return;
3344              }
3345              if (modal.classList) {
3346                _hideModal(modal);
3347                return;
3348              }
3349              if (modal.length && modal[0].classList) {
3350                _hideModal(modal[0]);
3351              }
3352            }
3353
3354            window.lpUI = {
3355                sideMenuHide: sideMenuHide,
3356                sideMenuShow: sideMenuShow,
3357                sideMenuToggle: sideMenuToggle,
3358                requestScrollLock: requestScrollLock,
3359                releaseScrollLock: releaseScrollLock,
3360                showModal: showModal,
3361                hideModal: hideModal,
3362                hideClosestModal: hideClosestModal
3363            }
3364        })();
3365
3366        var stringifyPrimitive = function(v) {
3367            switch (typeof v) {
3368                case 'string':
3369                    return v;
3370
3371                case 'boolean':
3372                    return v ? 'true' : 'false';
3373
3374                case 'number':
3375                    return isFinite(v) ? v : '';
3376
3377                default:
3378                    return '';
3379            }
3380        };
3381
3382        function objectToQuerystring(obj, sep, eq, name) {
3383            // https://github.com/Gozala/querystring/blob/master/encode.js
3384            sep = sep || '&';
3385            eq = eq || '=';
3386            if (obj === null) {
3387                obj = undefined;
3388            }
3389
3390            if (typeof obj === 'object') {
3391                return Object.keys(obj).map(function(k) {
3392                    var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
3393                    if (Array.isArray(obj[k])) {
3394                        return obj[k].map(function(v) {
3395                            return ks + encodeURIComponent(stringifyPrimitive(v));
3396                        }).join(sep);
3397                    } else {
3398                        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
3399                    }
3400                }).filter(Boolean).join(sep);
3401
3402            }
3403
3404            if (!name) return '';
3405            return encodeURIComponent(stringifyPrimitive(name)) + eq +
3406                    encodeURIComponent(stringifyPrimitive(obj));
3407        }
3408
3409        function getPath(url, options) {
3410            var parser = document.createElement('a');
3411            parser.href = url || '';
3412            var path = parser.pathname || '';
3413            if (path[0] !== '/') {
3414              // IE does not return path starting with a slash
3415              path = '/' + path;
3416            }
3417
3418            if (options && options.queryString) {
3419                path += parser.search;
3420            }
3421
3422            return path;
3423        }
3424
3425        function getMLSAutocomplete(keyword) {
3426            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';
3427            var query = {
3428                kind: 'listings',
3429                query: keyword
3430            };
3431
3432            return superagent
3433                .get(searchURL)
3434                .query(query)
3435                .then(function(res) {
3436                    var data = res.body || [];
3437                    // Array of listing_auto_complete documents: id, display_address, city, state,
3438                    // price, sold_price, status, status_modified_at, photo_urls (array of URLs).
3439
3440                    return data;
3441                });
3442        }
3443
3444        function getMLSAutocompleteWithFilters(keyword, filters = {}) {
3445            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';
3446
3447            return superagent
3448                .get(searchURL)
3449                .query({ kind: 'listings', query: keyword, ...filters })
3450                .then(function(res) {
3451                    // Same response shape as getMLSAutocomplete.
3452                    return res.body || [];
3453                });
3454        }
3455
3456        function makeMlsLink(data) {
3457            // Code Dupe from utils/googlePlace
3458            // mapping of google data type to mls data type
3459            var mapping = {
3460                neighborhood: 'neighborhood',
3461                locality: 'place',
3462                administrative_area_level_2: 'county',
3463                administrative_area_level_1: 'state',
3464                postal_code: 'postalcode',
3465            };
3466
3467            function _filterTypes(types) {
3468                return types.filter(function(type) { return type !== 'political' });
3469            }
3470
3471            if (!data || !Object.keys(data).length) {
3472                return '/home-search/listings';
3473            }
3474
3475            var newData = {};
3476            _filterTypes(data.types).forEach(function(type) {
3477                if (mapping[type]) {
3478                    newData.search_type = mapping[type];
3479                }
3480            });
3481            newData.omnibox = data.formatted_address;
3482            data.address_components.forEach(function(component) {
3483                _filterTypes(component.types).forEach(function(type) {
3484                    if (mapping[type]) {
3485                        newData[mapping[type]] = component.long_name;
3486                    }
3487                });
3488            });
3489            var bounds = data.geometry.bounds;
3490            var convertedData = Object.assign(bounds, newData);
3491
3492            return '/home-search/listings?' + objectToQuerystring(convertedData);
3493        }
3494
3495        function debounce(func, wait) {
3496            let timeout;
3497            return function(...args) {
3498                const context = this;
3499                clearTimeout(timeout);
3500                timeout = setTimeout(() => func.apply(context, args), wait)
3501            }
3502        }
3503
3504        // Global methods / variables that can be accessed by element js
3505        window.luxuryPresence = {
3506            ...window.luxuryPresence,
3507            defaults: {
3508                companyId: '6382308c-8bfc-4993-9f82-aceab30cdb9f',
3509                apiGatewayUrl: '/api-gw',
3510                routerUrl: '/api-nv',
3511                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\
3511n    }\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    $companyId: ID\n    $pressReleaseIds: [ID!]\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: String\n    $search: String\n    $categories: [String!]\n    $propertyId: [ID!]\n    $developmentId: [ID!]\n    $agentId: [ID!]\n    $teamId: [ID!]\n    $year: [Int!]\n  ) {\n    pressReleases (\n      companyId: $companyId\n      pressReleaseIds: $pressReleaseIds\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      items {\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          altTagText\n        }\n        publishedAt\n        categories\n      }\n      total\n    }\n  }\n","posts":"\n  query Posts (\n    $companyId: String\n    $postId: [ID!]\n    $slug: String\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: String\n    $search: String\n    $featured: Boolean\n    $categoryId: [String!]\n    $neighborhoodId: [String!]\n  ) {\n    posts (\n      companyId: $companyId\n      postId: $postId\n      slug: $slug\n      offset: $offset\n      limit: $limit\n      sort: $sort\n      sortDir: $sortDir\n      search: $search\n      featured: $featured\n      postStatusId: \"5f528253-abb7-484e-95c3-330269ac1102\"\n      categoryId: $categoryId\n      neighborhoodId: $neighborhoodId\n    ) {\n      items {\n        id\n        postId\n        title\n        subtitle\n        description\n        status: postStatus\n        featured\n        slug\n        categories {\n          id\n          name\n        }\n        createdAt\n        publishedAt\n        updatedAt\n        scheduledAt\n        createdBy {\n          ... on Agent {\n            firstName\n            lastName\n          }\n        }\n        customAuthor\n        media {\n          smallUrl\n          mediumUrl\n          largeUrl\n          xLargeUrl\n          xxLargeUrl\n          height\n          width\n          altTagText\n        }\n        seoTitle\n        seoDescription\n      }\n      total\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    $companyId: ID!\n    $developmentIds: [ID!]\n    $agentId: String\n    $slug: String\n    $search: String\n    $tag: [String!]\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: SortDirection\n    $neighborhoodId: ID\n    $neighborhoodIds: [ID!]\n  ) {\n    developments (\n      companyId: $companyId\n      developmentIds: $developmentIds\n      agentId: $agentId\n      slug: $slug\n      search: $search\n      tag: $tag\n      offset: $offset\n      limit: $limit\n      sort: $sort\n      sortDir: $sortDir\n      neighborhoodId: $neighborhoodId\n      neighborhoodIds: $neighborhoodIds\n    ) {\n      items {\n        id\n        name\n        description\n        descriptionShort\n        slug\n        createdAt\n        updatedAt\n        media {\n          smallUrl\n          mediumUrl\n          largeUrl\n          xLargeUrl\n          xxLargeUrl\n          height\n          width\n          altTagText\n        }\n        logoMedia {\n          smallUrl\n          mediumUrl\n          largeUrl\n          xLargeUrl\n          xxLargeUrl\n          height\n          width\n          altTagText\n        }\n        websiteUrl\n        videoUrl\n        googlePlaceData\n        coordinates\n        mlsLink\n        seoTitle\n        seoDescription\n        featuresAndAmenities {\n          featureIds\n          features {\n            featureId\n            name\n          }\n          description\n        }\n        latitude\n        longitude\n        addressLine1\n        addressLine2\n        city\n        state\n        zipCode\n        country\n        yearCompleted\n        residences\n        availability\n        neighborhoodId\n        developer\n        architect\n        interiorDesigner\n        stories\n        buildingHeight\n        buildingHeightUnit\n        bedMin\n        bedMax\n        bathMin\n        bathMax\n        livingSpaceMin\n        livingSpaceMa
3511x\n        livingSpaceUnit\n        lotSizeMin\n        lotSizeMax\n        lotSizeUnit\n        priceMin\n        priceMax\n        priceCurrency\n        tags\n      }\n      total\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: $regionId\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"},
3512                propertyPlaceholderImage: {"id":"3c0de54f-3b31-44c9-9f4f-5b866706511c","alt":null,"bytes":45540,"width":1920,"format":"png","height":1200,"pngUrl":"","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/fb95221b-e937-42d4-858b-5f8c202fb926","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/fb95221b-e937-42d4-858b-5f8c202fb926","authorUrl":null,"createdAt":"2025-04-09T21:39:48.182Z","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/fb95221b-e937-42d4-858b-5f8c202fb926","sourceUrl":null,"updatedAt":"2025-04-09T21:39:48.182Z","xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fb95221b-e937-42d4-858b-5f8c202fb926","__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/fb95221b-e937-42d4-858b-5f8c202fb926","description":null,"displayName":"property-couture","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fb95221b-e937-42d4-858b-5f8c202fb926","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/fb95221b-e937-42d4-858b-5f8c202fb926","originalFileName":"Property couture","cloudinaryPublicId":"fb95221b-e937-42d4-858b-5f8c202fb926"}
3513            },
3514            objectToQuerystring: objectToQuerystring,
3515            getPath: getPath,
3516            getMLSAutocomplete: getMLSAutocomplete,
3517            getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters,
3518            makeMlsLink: makeMlsLink,
3519            debounce: debounce,
3520        };
3521
3522        var wowOffset = 100;
3523    </script>
3523
3524    
3524<script>
3525        (()=>{function e(e){return e&&e.__esModule?e.default:e}var t=globalThis,r={},i={},s=t.parcelRequired4f7;null==s&&((s=function(e){if(e in r)return r[e].exports;if(e in i){var t=i[e];delete i[e];var s={id:e,exports:{}};return r[e]=s,t.call(s.exports,s,s.exports),s.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){i[e]=t},t.parcelRequired4f7=s);var o=s.register;o("ikl6F",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.formatMoney=e.exports.convertAmount=e.exports.fetchExchangeRates=e.exports.toSupportedToCurrency=e.exports.toSupportedFromCurrency=e.exports.SUPPORTED_TO_CURRENCIES=e.exports.SUPPORTED_FROM_CURRENCIES=e.exports.DISPLAY_CURRENCIES=e.exports.writeCurrencyCookie=e.exports.readValidCurrencyCookie=e.exports.readCurrencyCookie=e.exports.clearCurrencyCookie=e.exports.CURRENCY_COOKIE_SAME_SITE=e.exports.CURRENCY_COOKIE_PATH=e.exports.CURRENCY_COOKIE_NAME=e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS=void 0;var r=s("65bUu");Object.defineProperty(e.exports,"CURRENCY_COOKIE_MAX_AGE_SECONDS",{enumerable:!0,get:function(){return r.CURRENCY_COOKIE_MAX_AGE_SECONDS}}),Object.defineProperty(e.exports,"CURRENCY_COOKIE_NAME",{enumerable:!0,get:function(){return r.CURRENCY_COOKIE_NAME}}),Object.defineProperty(e.exports,"CURRENCY_COOKIE_PATH",{enumerable:!0,get:function(){return r.CURRENCY_COOKIE_PATH}}),Object.defineProperty(e.exports,"CURRENCY_COOKIE_SAME_SITE",{enumerable:!0,get:function(){return r.CURRENCY_COOKIE_SAME_SITE}}),Object.defineProperty(e.exports,"clearCurrencyCookie",{enumerable:!0,get:function(){return r.clearCurrencyCookie}}),Object.defineProperty(e.exports,"readCurrencyCookie",{enumerable:!0,get:function(){return r.readCurrencyCookie}}),Object.defineProperty(e.exports,"readValidCurrencyCookie",{enumerable:!0,get:function(){return r.readValidCurrencyCookie}}),Object.defineProperty(e.exports,"writeCurrencyCookie",{enumerable:!0,get:function(){return r.writeCurrencyCookie}});var i=s("gUuHZ");Object.defineProperty(e.exports,"DISPLAY_CURRENCIES",{enumerable:!0,get:function(){return i.DISPLAY_CURRENCIES}}),Object.defineProperty(e.exports,"SUPPORTED_FROM_CURRENCIES",{enumerable:!0,get:function(){return i.SUPPORTED_FROM_CURRENCIES}}),Object.defineProperty(e.exports,"SUPPORTED_TO_CURRENCIES",{enumerable:!0,get:function(){return i.SUPPORTED_TO_CURRENCIES}}),Object.defineProperty(e.exports,"toSupportedFromCurrency",{enumerable:!0,get:function(){return i.toSupportedFromCurrency}}),Object.defineProperty(e.exports,"toSupportedToCurrency",{enumerable:!0,get:function(){return i.toSupportedToCurrency}});var o=s("jCxYG");Object.defineProperty(e.exports,"fetchExchangeRates",{enumerable:!0,get:function(){return o.fetchExchangeRates}});var n=s("igUcG");Object.defineProperty(e.exports,"convertAmount",{enumerable:!0,get:function(){return n.convertAmount}}),Object.defineProperty(e.exports,"formatMoney",{enumerable:!0,get:function(){return n.formatMoney}})}),o("65bUu",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.readValidCurrencyCookie=e.exports.clearCurrencyCookie=e.exports.writeCurrencyCookie=e.exports.readCurrencyCookie=e.exports.CURRENCY_COOKIE_PATH=e.exports.CURRENCY_COOKIE_SAME_SITE=e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS=e.exports.CURRENCY_COOKIE_NAME=void 0;var r=s("gUuHZ");e.exports.CURRENCY_COOKIE_NAME="lp-currency",e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS=31536e3,e.exports.CURRENCY_COOKIE_SAME_SITE="Lax",e.exports.CURRENCY_COOKIE_PATH="/";let i=e=>e?.trim().toLowerCase().replace(/^\.+/,"")||void 0,o=e=>"undefined"!=typeof DOMException&&e instanceof DOMException,n=({document:t})=>{let r=`${e.exports.CURRENCY_COOKIE_NAME}=`;return t.cookie.split(";").map(e=>e.trim()).filter(e=>e.startsWith(r)).map(e=>e.slice(r.length))},a=e=>{try{return decodeURIComponent(e)}catch{return}};e.exports.readCurrencyCookie=e=>{let t=(e=>{try{return n(e)[0]}catch(e){if(!o(e))throw e;return}})(e);return void 0===t?void 0:a(t)};let l=(t,r,i,s)=>{var o;let n,a;t.document.cookie=`${e.exports.CURRENCY_COOKIE_NAME}=${r}${o=t.location,n="https:"===o.protocol?"; Secure":"",a=s?`; Domain=${s}`:"",`; Path=${e.exports.CURRENCY_COOKIE_PATH}; Max-Age=${i}; SameSite=${e.exports.CURRENCY_COOKIE_SAME_SITE}${n}${a}`}`};e.exports.writeCurrencyCookie=(t,s)=>{let a,d=(0,r.toSupportedToCurrency)(s);if(!d)return!1;let c=i(t.domain);try{if(a=n(t)[0],c&&l(t,"",0,void 0),l(t,encodeURIComponent(d),e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS,c),(0,e.exports.readCurrencyCookie)(t)===d)return!0}catch(e){if(!o(e))throw e}return c&&void 0!==a&&((t,r)=>{try{if(n(t).includes(r))return;l(t,r,e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS,void 0)}catch(e){if(!o(e))throw e}})(t,a),!1},e.exports.clearCurrencyCookie=e=>{let t=i(e.domain);try{t&&l(e,"",0,void 0),l(e,"",0,t)}catch(e){if(!o(e))throw e}},e.exports.readValidCurrencyCookie=(t,{enabled:s,enabledCurrencies:d})=>{if(!s)return;let c=(e=>{try{let t=n(e);if(!i(e.domain)||t.length<2)return t[0];return l(e,"",0,void 0),n(e)[0]}catch(e){if(!o(e))throw e;return}})(t);if(void 0===c)return;let u=new Set(d.map(r.toSupportedToCurrency).filter(e=>!!e)),h=(0,r.toSupportedToCurrency)(a(c));
3525if(h&&u.has(h))return h;(0,e.exports.clearCurrencyCookie)(t)}}),o("gUuHZ",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toSupportedToCurrency=e.exports.SUPPORTED_TO_CURRENCIES=e.exports.DISPLAY_CURRENCIES=e.exports.toSupportedFromCurrency=e.exports.SUPPORTED_FROM_CURRENCIES=void 0,e.exports.SUPPORTED_FROM_CURRENCIES=["usd","cad","eur","gbp"];let r=(e,t)=>{if("string"!=typeof e)return;let r=e.toLowerCase();return t.includes(r)?r:void 0};e.exports.toSupportedFromCurrency=t=>r(t,e.exports.SUPPORTED_FROM_CURRENCIES),e.exports.DISPLAY_CURRENCIES=[{code:"usd",name:"US dollar"},{code:"eur",name:"Euro"},{code:"gbp",name:"Pound sterling"},{code:"cad",name:"Canadian dollar"},{code:"chf",name:"Swiss franc"},{code:"brl",name:"Brazilian real"},{code:"mxn",name:"Mexican peso"},{code:"sek",name:"Swedish krona"},{code:"nok",name:"Norwegian krone"},{code:"dkk",name:"Danish krone"},{code:"ars",name:"Argentine peso"},{code:"cop",name:"Colombian peso"},{code:"clp",name:"Chilean peso"},{code:"pen",name:"Peruvian sol"},{code:"dop",name:"Dominican peso"},{code:"gtq",name:"Guatemalan quetzal"},{code:"crc",name:"Costa Rican colón"},{code:"bob",name:"Bolivian boliviano"},{code:"pyg",name:"Paraguayan guaraní"},{code:"kyd",name:"Cayman Islands dollar"}],e.exports.SUPPORTED_TO_CURRENCIES=e.exports.DISPLAY_CURRENCIES.map(e=>e.code),e.exports.toSupportedToCurrency=t=>r(t,e.exports.SUPPORTED_TO_CURRENCIES)}),o("jCxYG",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.fetchExchangeRates=void 0;var r=s("gUuHZ");let i=async(e,{baseUrl:t,signal:i,fetch:s,onError:o})=>{let n=(0,r.toSupportedFromCurrency)(e);if(!n)return{};let a=`${t.replace(/\/$/,"")}/api/v1/exchange-rates?from=${encodeURIComponent(n)}`;try{let e=await (s??fetch)(a,{credentials:"omit",signal:i});if(!e.ok)throw Error(`Exchange rates HTTP ${e.status}`);var l=await e.json();let t=l?.rates;if("object"!=typeof t||null===t)return{};let o={};return Object.entries(t).forEach(([e,t])=>{let i=(0,r.toSupportedToCurrency)(e);i&&"number"==typeof t&&Number.isFinite(t)&&t>0&&(o[i]=t)}),o}catch(e){try{o?.(e)}catch(e){console.warn("fetchExchangeRates: onError callback threw",e)}return{}}};e.exports.fetchExchangeRates=i}),o("igUcG",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.formatMoney=e.exports.convertAmount=void 0;var r=s("gUuHZ");e.exports.convertAmount=(e,t)=>{if(Number.isFinite(e)&&Number.isFinite(t)&&!(t<=0))return e*t},e.exports.formatMoney=(e,t,{precision:i=0}={})=>{let s=(0,r.toSupportedToCurrency)(t);if(!s||!Number.isFinite(e))return;let o=Number.isInteger(i)?i:0,n=Number.isInteger(e)?0:Math.min(Math.max(o,0),20);return new Intl.NumberFormat("en-US",{style:"currency",currency:s.toUpperCase(),minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}});var n={},a={};a={getVideoFirstFrame(e){let t="https://res.cloudinary.com/";if(!e||!e.startsWith(t))return null;let r=e.replace(t,"").replace("f_auto:video","f_auto").split("/");if(-1===r[1].toLowerCase().indexOf("video"))return null;let i=r[r.length-1];i.lastIndexOf(".")>-1?i=`${i.slice(0,i.lastIndexOf("."))}.jpg`:i+=".jpg",r[r.length-1]=i;let s=3;"videos"===r[1].toLowerCase()&&""!==r[2]&&(s=2);let o=/^(?:[a-z]{1,3}|\$\w+)_\S+$/;for(;s<r.length-1&&o.test(r[s]);)s++;return r.splice(s,0,"so_0,eo_0"),t+r.join("/")}};let l={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "},d=/&(?:amp|lt|gt|quot|apos|nbsp|#(?:[0-9]+|[xX][0-9a-fA-F]+));/y,c=/[<&]/g,u=/["'>]/g,h=/<\/p\s*>|<br\s*\/?>|[\r\n\u2028\u2029]/g;function p(e,t){let r="";for(let i=0;i<e.length;){c.lastIndex=i;let s=c.exec(e);if(!s){r+=e.slice(i);break}let o=s.index;r+=e.slice(i,o);let n="&"===e[o]?function(e,t){d.lastIndex=t;let r=d.exec(e);return{text:r?function(e){if("#"!==e[1])return l[e.slice(1,-1)];
3525let t="x"===e[2]||"X"===e[2],r=parseInt(e.slice(t?3:2,-1),t?16:10);return 0===r||r>1114111||r>=55296&&r<=57343?e:160===r?" ":String.fromCodePoint(r)}(r[0]):"&",end:r?d.lastIndex:t+1}}(e,o):function(e,t,r){let i=function(e,t){let r=null;u.lastIndex=t+1;let i=u.exec(e);for(;i;){let t=i[0];if(r)t===r&&(r=null);else if('"'===t||"'"===t)r=t;else if(">"===t)return u.lastIndex;i=u.exec(e)}return -1}(e,t);return{text:-1===i?"<":function(e,t,r,i){if(!i)return"";let s=e.slice(t,r);if(/^<br\s*\/?>$/.test(s))return"&#10;";if(/^<\/p\s*>$/.test(s)){h.lastIndex=r;let t=h.exec(e);if(t&&"<"===t[0][0])return"&#10;"}return""}(e,t,i,r),end:-1===i?t+1:i}}(e,o,t);r+=n.text,i=n.end}return r}n=function(e,{isEqual:t}){let r=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],i=function(e,t,r){let i="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 s="number"==typeof r?r:0,o=Number.isInteger(e)?0:s,n={minimumFractionDigits:o,maximumFractionDigits:o};return"USD"===t?`$${e.toLocaleString(i,n)}`:"CAD"===t?`$${e.toLocaleString(i,n)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(i,n)}`:"GBP"===t?`\xa3${e.toLocaleString(i,n)}`:"PERCENT"===t?`${e}%`:"number"==typeof r&&r>-1?e.toLocaleString(i,{maximumFractionDigits:r}):e.toLocaleString(i)},s=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 r,i,a=t||{};switch(a.mode){case"short":r=o(e),i=a.frequencySeparator||"/";break;case"standard":case"std":r=n(e),i=a.frequencySeparator||"/";break;default:r=s(e),i=a.frequencySeparator||" "}return r?a.frequencyTag||a.frequencyClass?`${i}<${a.frequencyTag||"span"}${a.frequencyClass?` class="${a.frequencyClass}"`:""}>${r}</${a.frequencyTag||"span"}>`:i+r:""};return{isEmpty(e,t){let r=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?r?t.fn(this):t.inverse(this):r},ifEquals(e,r,i){return t(e,r)?i.fn(this):i.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?p(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!1):"",striptagsLineBreaks:e=>e?p(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!0):"",truncate:(e,t,r)=>e?e.length>t?"string"==typeof r?e.slice(0,t-r.length)+r:e.slice(0,t):e:"",setSubArray(e=[],t,r,i,s){s.data.root[i]=e.slice(t,r)},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:s,formatFrequencyShort:o,lpFormatFrequency:(e,t)=>l(e,t&&t.hash),subArray(e,t,r,i){return e>=t&&e<r?i.fn(this):i.inverse(this)},formatPropertyStatus(e,t,r){let i="";switch(e){case"SOLD":i="Sold";break;case"FOR_SALE":i="For Sale";break;case"COMING_SOON":i="Coming Soon";break;case"INACTIVE":i="Inactive";break;case"POCKET_LISTING":i="Pocket Listing";break;case"PENDING":i="Pending";break;case"UNDER_CONTRACT":i="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":i="Active Under Contract";break;default:i=e}return("Sold"===i||"Leased"===i)&&t&&"string"==typeof r&&r&&(i+=` on ${r}`),i},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 r="current"===e?new Date:new Date(e);if(Number.isNaN(r.getTime()))return"";if("YYYY"===t||"year"===t)return`${r.getFullYear()}`;if("MM/DD/YY"===t){let e=r.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${r.getDate()}/${r.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][r.getMonth()]} ${r.getDate()}, ${r.getFullYear()}`},openHousesFormat(e,t,r){if(!e||!t)return"";let i=e=>{let t=e.getHours();t>12&&(t-=12);let r=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?r+="PM":r+="AM",r},s="",o=e,n=t;
3525r&&(o=new Date(e).toLocaleString("en-US",{timeZone:r}),n=new Date(t).toLocaleString("en-US",{timeZone:r}),[,,,s]=new Date(t).toLocaleString("en-US",{timeZone:r,timeZoneName:"short"}).split(" "));let a=new Date(o),l=a.toLocaleDateString("en-US"),d=i(a),c=i(new Date(n));return`${l} ${d} - ${c} ${s}`},math:(e,t,r)=>(e=parseFloat(e),({"+":e+(r=parseFloat(r)),"-":e-r,"*":e*r,"/":e/r,"%":e%r})[t]),findByKey(e,t,r,i){let s=(e||[]).find(e=>e[t]===r);return i.fn(s)},capitalize(e,t,r){let i;return"string"==typeof e&&e.length&&(i=e.toLowerCase().split(t).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").toString()),i},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,r,i){let s="",o=null;i.data&&(o=e.createFrame(i.data));let n=(r||[]).filter(Boolean);if(n&&n.length){let e=0;s=n.reduce((r,s,n)=>{let a=(t||[]).find(e=>e.id===s);return a?(o&&(o.index=n-e),r+i.fn(a,{data:o})):(e+=1,r)},"")}else for(let e=0,r=(t||[]).length;e<r;e++)o&&(o.index=e),s+=i.fn(t[e],{data:o});return s},ifIn(e,t,r){return t&&t.indexOf(e)>-1?r.fn(this):r.inverse(this)},partial:(t,r)=>(e.registerPartial(t,e.compile(r.fn())),`
3525<script type="text/x-handlebars-template" class="${t} pagination-script">${r.fn()}<\/script>`),numCompare(e,t,r,i){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}})[r](e,t)?!i.fn||i.fn(this):!!i.fn&&i.inverse(this)},lpFormatNumber:i,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,r)=>e&&e.join?e.join("string"==typeof t?t:", "):"",dedupe(t,r,i){let s=null,o=0,n=new Set;return i.data&&(s=e.createFrame(i.data)),(t||[]).reduce((e,t,a)=>{let l=r?t[r]:t;return!n.has(l)||r&&void 0===l?(n.add(l),s&&(s.index=a-o),e+i.fn(t,{data:s})):(o+=1,e)},"")},JSONstringify:(e,t)=>JSON.stringify(e),formatPropertyPrice(...t){let r=t[t.length-1].hash,s=t.length>1?t[0]:r.property,o=r.precision||0;t.length>2&&(r.mode=t[1]),r.mode||(r.mode="short");let n=t.length>3?t[2]:r.separator;if("string"!=typeof n&&(n=" | "),s.isPasswordProtected)return"Exclusive Listing";let a=t.length>4?t[3]:r.priceUponRequestText;if("string"!=typeof a&&(a="Price Upon Request"),s.priceUponRequest)return a;let d=s.salesPrice,c=null;"SOLD"!==s.status&&"Leased"!==s.status&&s.reducedPrice&&(r.reducedClass?c=s.reducedPrice:d=s.reducedPrice);let u="";c&&(u+=`<${r.reducedTag||"span"} class="${r.reducedClass}">${i(c,s.currency,o)}</${r.reducedTag||"span"}>`),d&&(d=i(d,s.currency,o),r.priceTag||r.priceClass?u+=`<${r.priceTag||"span"}${r.priceClass?` class="${r.priceClass}"`:""}>${d}</${r.priceTag||"span"}>`:u+=d);let h=s.leasePrice&&i(s.leasePrice,s.currency,o);if(h){u&&(u+=n);let e=`${h}${l(s.leasePeriod,r)}`;r.leaseTag||r.leaseClass?u+=`<${r.leaseTag||"span"}${r.leaseClass?` class="${r.leaseClass}"`:""}>${e}</${r.leaseTag||"span"}>`:u+=e}
3525return new e.SafeString(u)},mediaImage(t,i={}){if(!t)return;let{lazy:s,...o}=i.hash,n="",a="";if("string"==typeof t)n=t;else{let e={},{height:s,width:l,altTagText:d}=t;r.forEach(r=>{t[r.field]&&!e[t[r.field]]&&(e[t[r.field]]=r.w)});let c=Object.keys(e);if(!c.length)return;if(d&&(o.alt=d),s&&l&&(s>=l&&(o.class?o.class+=" portrait":o.class="portrait"),"setDims"in i.hash&&(o.width=l,o.height=s)),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&&(a=c.map(t=>`${t} ${e[t]}w`).join(", "),c.sort((t,r)=>Math.abs(e[t]-1280)-Math.abs(e[r]-1280))),n=c[0]}delete o.setDims,a||delete o.sizes,"alt"in o||(o.alt=""),!("loading"in o)&&(i?.data?.root?.sectionIndex>1||s)&&(o.loading="lazy");let l=Object.keys(o).map(t=>`${e.escapeExpression(t)}="${e.escapeExpression(o[t])}"`).join(" ");return new e.SafeString(`<img src="${n}"${a?` srcset="${a}"`:""}${l?` ${l}`:""}>`)},bgImage:e=>e?"string"==typeof e?e:e.largeUrl||e.url||"":"",concat(...e){let t="";for(let r in e)null!==e[r]&&void 0!==e[r]&&"object"!=typeof e[r]&&(t+=e[r]);return t},setVideoExtension(e,t){if(!e||!t)return"";let r=new URL(e);if("res.cloudinary.com"!==r.host)return r.pathname.endsWith(`.${t}`)?e:"";let i=r.pathname.lastIndexOf("."),s=r.pathname;return -1!==i&&(s=r.pathname.substr(0,i)),r.pathname=`${s}.${t}`,r.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 r=`${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="${r}" type="video/${e.format}${e.htmlCodecs}">`}).join("\n")},cloudinaryVideoFirstFrame:a.getVideoFirstFrame,initials(e,t){if(!e)return"";t?.hash?.endChar&&(e=e.split(t.hash.endChar)[0]);let r=+t?.hash?.maxChars||2,i=e.match(/\b\w/g)?.slice(0,r);return i?(t?.hash?.addText&&(i=i.map(e=>e+t.hash.addText)),i.join(t?.hash?.joinWith||"").toUpperCase()):""},normalizePhone(e){if(!e)return"";let t=String(e).trim();return(t.startsWith("+")?"+":"")+t.replace(/\D/g,"")}}};class m{constructor(e,t,r){if(this.config=e,this.window=t,this.document=r,!this.destroy)throw Error("Controllers must implement a deconstructor")}}let g="lp_lead_form_conversion_fired";function y(e,t){if(e&&t&&"function"==typeof t.sendGoogleTagManagerEvent&&!function(e){try{return"true"===e.sessionStorage.getItem(g)}catch{return!1}}(e))try{t.sendGoogleTagManagerEvent("event","generate_lead");try{e.sessionStorage.setItem(g,"true")}catch{}}catch{}}function f(e){return!!e&&(!!e.expired||Date.now()>=e.expiresAt)}let b="/api/v1/home-valuation";class v extends m{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 r=t.indexOf(", call time frame:");return -1!==r&&(t=t.substring(0,r).trim()),t}_transformAddressComponents(e){let t=t=>(e.find(e=>e.componentType===t)||{}).componentName?.text,r={},i=t("street_number"),s=t("route"),o=t("administrative_area_level_1"),n=t("postal_code"),a=t("subpremise"),l=t("locality")||t("sublocality_level_1")||t("neighborhood");return i&&(r.streetNumber=i),s&&(r.streetName=s),l&&(r.city=l),o&&(r.state=o),n&&(r.zipcode=n),a&&(r.addressLine2=a),r}_extractAddressAndCoordinates(e){let t=null,r=null;if(e?.result){let{result:i}=e;i.address?.addressComponents&&(t=this._transformAddressComponents(i.address.addressComponents)),i.geocode?.location&&(r={latitude:i.geocode.location.latitude,longitude:i.geocode.location.longitude})}return{structuredAddress:t,coordinates:r}}_filterEmptyStrings(e){let t={};for(let[r,i]of Object.entries(e))""!==i&&null!=i&&(t[r]=i);return t}_getRawAddress(e){let t=e.activity.content||{},r=e.activity.comments_attributes?.[0]?.text;return[t.address,t["property-address"],t.property_address,t.Property_Address,r,t.message,t.homeValuationAddress,t.propertyAddress].map(e=>e&&this._cleanAddressString(e)).find(Boolean)||""}_logLeadEvent(e,t,r=null){let i={event:e,companyId:this.config.companyId,websiteId:this.config.websiteId,timestamp:new Date().toISOString(),hasEmail:!!t.activity?.author_email,hasAddress:!!this._getRawAddress(t)};if(r&&(i.errorMessage=r.userMessage||(r.status?`Request failed with status ${r.status}`:"An error occurred"),i.errorName=r.name,i.errorStatus=r.status),console.error(`[HomeValuation] ${e}`,JSON.stringify(i)),this.window.posthog)try{this.window.posthog.capture(e,i)}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
3525ontact 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,r,i){let s=this._formatStructuredAddress(r)||this._getRawAddress(e);if(!s)throw Error("Unable to extract home valuation address from form data");let o={companyId:e.companyId,homeValuationAddress:s,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},n={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
3525ourceResource,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||{}},a=this._filterEmptyStrings(n);return{...o,...a,...r&&{address:r},...i&&{coordinates:i}}}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 r=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(r,e),r.status=t,r}_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,r){let i=new AbortController,s=setTimeout(()=>i.abort(),1e4);try{let o=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:i.signal});clearTimeout(s);let n=await o.text(),a=this._parseResponsePayload(n);if(!o.ok)throw this._createResponseError(a,o.status);if(a&&"success"===a.status&&a.redirectUrl){if(f(r))return a;if(!this._isSafeRedirectUrl(a.redirectUrl))return console.error("Home valuation: refusing redirect to unsupported protocol"),a;return this.window.location.href=a.redirectUrl,{redirected:!0,url:a.redirectUrl}}return a}catch(e){throw clearTimeout(s),e}}async _submitHomeValuationRequest(e){let t=this._resolveValuationApiBase();this._logLeadEvent("home_valuation_submission_started",e);try{let r=this._getRawAddress(e),i=null;try{i=await this._validateAddressSafely(r)}catch(t){throw this._logLeadEvent("home_valuation_address_validation_failed",e,t),t}let s=null;try{s=await this._getHomeValuationEstimateSafely(i)}catch(t){this._logLeadEvent("home_valuation_estimate_failed",e,t),s=null}let{structuredAddress:o,coordinates:n}=this._extractAddressAndCoordinates(i),a=`${t}${b}`,l=this._buildHomeValuationData(e,s,o,n),d=await this._submitLead(a,l,e.deadline);return this._logLeadEvent("home_valuation_submission_success",e),d}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:r}=this,i=t.googleMapsAPIKey;if(!i&&r.luxuryPresence?.mapApiLoader&&(i=await r.luxuryPresence.mapApiLoader.getMapApiKey()),!i)throw Error("Google Maps API key not configured");let s=new AbortController,o=setTimeout(()=>s.abort(),1e4);try{let t=await fetch(`https://addressvalidation.googleapis.com/v1:validateAddress?key=${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:{addressLines:[e]},enableUspsCass:!1}),signal:s.signal});if(clearTimeout(o),!t.ok){let e=Error(`Address validation failed: ${t.status}`);throw e.status=t.status,e}return t.json()}catch(e){throw clearTimeout(o),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()}${b}`;if(!e?.result?.address?.addressComponents)return null;let r=this._transformAddressComponents(e.result.address.addressComponents);if(!this._hasMandatoryAddressFields(r))return this._logMissingAddressFields(r),null;let i=this._buildAddressQueryString(r),s=`${t}?${i}`,o=new AbortController,n=setTimeout(()=>
3525o.abort(),1e4);try{let e=await fetch(s,{headers:{Accept:"application/json"},signal:o.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 w="middleName",E="redirect-pending",_=["name","firstName","lastName",w,"email","phone","phoneNumber","source","message","mlsId","sourceUrl"],S="lp_map_key_failed",C="oauthSuccess",I={cookieyes:{eventName:"cookieyes_consent_update",hasAnalyticsConsent:e=>(function(e){let t=e.cookie.match(/cookieyes-consent=([^;]+)/);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 A(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function x(e,t){t.forEach(t=>{let r=e[t];Array.isArray(r)&&0===r.length&&delete e[t]})}function R(e,t,r,i){let s=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])),o=i?.merge?s.flat():s.find(e=>e.length>0)??[];t.forEach(t=>{delete e[t]}),o.length>0&&(e[r]=[...new Set(o)])}function T(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 r=[...e.socialLinks].sort((e,t)=>{let r=e.type?.toLowerCase()||"",i=t.type?.toLowerCase()||"";return r.localeCompare(i)});t.socialLinks=r;let i={youtube:"urlYoutube",facebook:"urlFacebook",instagram:"urlInstagram",linkedin:"urlLinkedin",podcast:"urlPodcast",twitter:"urlTwitter"};r.forEach(e=>{let r=i[e.type?.toLowerCase()??""];r&&(t[r]=e.link)})}return t}function L(e){return e&&Array.isArray(e)?e.map(e=>T(e)):e}function k(e){let{region:t}=e;if(!A(t))return e;let{schools:r,pois:i,...s}=t,o={...s,schools:A(r)?r.data??[]:[],...Array.isArray(i)?{pois:i.map(e=>({...e,category:"string"==typeof e.category?e.category.toUpperCase():e.category}))}:{}};return{...e,region:o}}function M(e){return e&&Array.isArray(e)?e.map(e=>k(e)):e}function $(e){let t=e.featuresAndAmenities;if(!Array.isArray(t))return e;let r=t.map(e=>({featureIds:e.featureIds??[],features:e.features??[],description:e.description}));return{...e,featuresAndAmenities:r}}function U(e){return e&&Array.isArray(e)?e.map(e=>$(e)):e}function P(e,t){return A(e)?t(e):e}function O(e,t){return Array.isArray(e)?t(e):e}var N={};N=`
3526  query PropertyDisclaimers($input: PropertyDisclaimersInput!) {
3527    propertyDisclaimers(input: $input) {
3528      feedId
3529      listingId
3530      resolvedFromListing
3531      listingCardAttribution
3532      listingDetailCourtesy
3533      listingDetailFooter
3534      logo
3535    }
3536  }
3537`;let D={mlsAttribution:"listingCardAttribution",mlsLogo:"logo",listingDetailCourtesy:"listingDetailCourtesy",listingDetailFooter:"listingDetailFooter"};var F={};F=s("ikl6F");let B=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,this.currencyConversionEnabled=!1,this.enabledCurrencies=[]}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}setCurrencyConversion({enabled:e,enabledCurrencies:t}={}){this.currencyConversionEnabled=!0===e,this.enabledCurrencies=Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}setEventBus({enabled:e,apiKey:t,url:r}){this.eventBus={enabled:e,apiKey:t,url:r}}}({}),q=new class extends m{constructor(e,t,r){super(e,t,r),this.setLoginState=this.setLoginState.bind(this),this.pageId=null,this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}initialize(e){try{let{config:t,document:r}=this;this.pageId=t.pageId,this.modals=r.querySelectorAll("body > #modals >
3537 .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,r=new Date().getTime()+864e5,i=`modal-controller-${e}`;try{t.localStorage.setItem(i,JSON.stringify(r))}catch(e){}}setLoginState(){let{window:e}=this;try{e.localStorage.setItem("isSignedUp","true")}catch(e){}}getModalWithExpiry(e){let{window:t}=this,r=t.localStorage,i=r.getItem(`modal-controller-${e}`);if(!i)return!1;let s=JSON.parse(i);return!(new Date().getTime()>s)||(r.removeItem(`modal-controller-${e}`),!1)}show(e,t={}){let{window:r}=this,i=this.getModalWithExpiry(e);(e&&!i||!0===t.forced)&&(r.lpUI.showModal(`modal-${e}`,t),this.setModalWithExpiry(e))}_attachModalHandler(e){let{pageId:t}=this,{trigger:r,pageSpecific:i}=e;(!i||e.pages.map(e=>e.pageId).includes(t))&&("EXIT"===r?this._exitModalHandler(e):"TIMER"===r?this._timerModalHandler(e):"FORCED"===r&&this._forcedModalHandler(e))}_exitModalHandler(e){let t=this,{document:r,exitModalTriggered:i}=this,{modalId:s}=e;function o(e){!i[s]&&(e.toElement||e.relatedTarget||(t.show(s),i[s]=!0))}r.addEventListener("mouseout",o),this.exitModalEventListeners.push(o)}_timerModalHandler(e){let{modalId:t,timerDelay:r}=e;setTimeout(()=>{this.show(t)},r)}_forcedModalHandler(e){let{modalId:t}=e,{window:r,document:i}=this;if("true"!==r.localStorage.getItem("isSignedUp")){let e=i.querySelector(`#modal-${t}`),s=e?.querySelector("form"),o=s?.dataset.delay||2e3;s.addEventListener("formsubmitted",()=>{this.setLoginState()}),r.addEventListener("oauthSuccess",()=>{this.setLoginState(),s.classList.add("success"),setTimeout(()=>{r.lpUI.hideModal(`modal-${t}`),s.reset(),s.classList.remove("success")},o)}),this.show(t,{forced:!0})}}}(B,window,document),V=new class extends m{constructor(e,t,r){super(e,t,r),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:r}=this,i=e.target.closest("button, a");if(!i)return;let s=i.dataset.type||"",o=i.href||i.dataset.href||"",n=i.target||"",{submit:a}=i.dataset;if(a){try{await this._handleSubmit(i)}catch(e){console.error(e)}((e,t=!1)=>{if(e){if(t)return window.open(e);window.location.assign(e)}})(o,"_blank"===n)}if(this._trackConversion(i),"VIDEO"===s)return void this._handleVideoButton(i);if("CONTACT_US"===s)return void this._handleContactUsButton(i);if("SUBSCRIBE"===s)return void t.lpUI.showModal("modal-global-subscribe");if("MY_ACCOUNT"===s)return void t.lpUI.showModal("modal-global-my-account");if("SHARE_POPUP"===s){let t=i.querySelector(".share-popup");t&&(t.style.display="flex"),e.stopPropagation();return}if("MODAL_"===s.substring(0,6)){let e=s.substring(6);t.lpUI.showModal(`modal-${e}`);return}if(o?.startsWith("mailto:")){let e=o.substring(7);r.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Email",eventValue:e})}else if(o?.startsWith("tel:")){let e=o.substring(4);r.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Phone",eventValue:e})}}async _handleSubmit(e){let t=e.closest("form"),{window:r}=this;return t?await r.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[,r,i]=t,s=`https://player.vimeo.com/video/${r}?`;return i&&(s+=`h=${i}&`),s+="autoplay=1"}_handleVideoButton(e){let{document:t}=this,r=e.closest("section"),{src:i}=e.dataset,s="";if(i&&(i.includes("youtube.com")||i.includes("youtu.be"))&&!i.includes("youtube.com/embed")){let e=i.match(/(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=)
3537)|youtu.be\/)([a-zA-Z0-9_-]{6,11})/);e&&(s=e[1])}let o=this._getVimeoSrc(i);if(s?i=`https://youtube.com/embed/${s}?autoplay=1&controls=0`:o&&(i=o),!i||!r)return;let n=i.endsWith(".mp4")||i.endsWith(".webm")||i.includes("cloudinary.com"),a=`
3538      <div id="modal-${r.id}" class="modal visible">
3539        <div class="modal-content">
3540          <div class="lightbox-video">
3541            <div class="video-player">
3542              <div class="embed-container">
3543                ${n?`<video controls autoplay src="${i}"></video>`:`<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${i}"></iframe>`}
3544              </div>
3545            </div>
3546          </div>
3547        </div>
3548        <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button>
3549      </div>
3550    `;t.body.insertAdjacentHTML("beforeend",a);let l=t.getElementById(`modal-${r.id}`);l.querySelector(".close").addEventListener("click",()=>{l.remove()})}_handleContactUsButton(e){let{window:t,document:r}=this;r.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"contact"}),t.lpUI.showModal("modal-global-contact-us",{scrollLock:!0})}_trackConversion(e){let{window:t,document:r}=this,{gtagConversionId:i,gtagConversionLabel:s,fbEventName:o}=e.dataset;if(i&&s){t.dataLayer&&t.dataLayer.length&&(t.dataLayer.some(e=>e.length&&"config"===e[0]&&e[1]===i)||r.sendGoogleTagManagerEvent("config",i));let e=`${i}/${s}`;r.sendGoogleTagManagerEvent("event","conversion",{send_to:e})}t.fbq&&o&&t.fbq("track",o,{})}}(B,window,document),j=new class extends m{constructor(e,t,r){super(e,t,r),this.validatedForms=[]}initialize(e={}){try{let{window:t,document:r}=this,{selector:i}=e,s=[];if(s=i?r.querySelectorAll(`${i} form[data-type="contact-form"]`):r.querySelectorAll('form[data-type="contact-form"]'),r.querySelectorAll('input[type="tel"]').length&&!t.libphonenumber&&t?.luxuryPresence?.libs){let{loadJs:e,jsLibsMap:r}=t.luxuryPresence.libs,{libphonenumber:i}=r;e(i.jsSrc,this.attachValidation.bind(this,s))}else this.attachValidation(s);this.validatedForms=this.validatedForms.concat(s)}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 r=t.libphonenumber.isValidPhoneNumber;e.addEventListener("keyup",function(){if(this.hasAttribute("required")||this.value.replace(/\s/g,"").length)try{let e=this.value;r(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("")})}}}(B,window,document),H=new class extends m{constructor(e,t,r){super(e,t,r),this.forms=[],this.homeValuationService=new v(e,t,r)}initialize(e={}){try{let{document:t}=this,{selector:r}=e,i=[];(i=r?t.querySelectorAll(`${r} form[data-type="contact-form"]`):t.querySelectorAll('form[data-type="contact-form"]')).forEach(e=>{this._attachSubmitHandler(e)}),this.forms=this.forms.concat(i)}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),r={},i=[],s=/^name(?:-\d+)?$/;return t.forEach((e,t)=>{if("string"==typeof e){let o=e.trim();s.test(t)&&o&&i.push(o);let n=r[t];r[t]=n?`${n} ${o}`:o}else r[t]=e}),i.length?r.name=i.join(" ").trim():!r.name&&r.firstName&&(r.name=r.firstName,r.lastName&&(r.name+=` ${r.lastName}`)),this._deriveNameParts(r)}_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,r){let{window:i,config:s}=this,o=Object.keys(e).filter(e=>!_.includes(e)).reduce((t,r)=>(t[r]=e[r],t),{}),{pageId:n,companyId:a,websiteId:l,pageMeta:d}=s,c=i.localStorage.getItem("utm_vars")||"{}",u=i.localStorage.getItem("referrer")||"",h=this._getFormId(r);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:i.location.href,content:{...o,...JSON.parse(c)}},page:{pageId:n,companyId:a,websiteId:l,pageMeta:{...d,formId:h}},companyId:a,referrer:u,fields:t}}_handleSubmissionSuccess(e){let{window:t}=this,r=e.dataset.delay||2e3;e.classList.remove("loading"),e.classList.remove("error"),e.classList.add("success"),e.querySelectorAll(".success").forEach(e
3550=>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")},r)}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 r=this._getFields(t),i=this._buildSubmissionData(e,r,t);y(this.window,this.document);let s=await this._waitForLeadSubmit(e=>this._submitLeadRequest(i,e));if(this._sendGAEvent(i),s?.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,r={expired:!1,expiresAt:Date.now()+6e3},i=new Promise(e=>{t=setTimeout(()=>{r.expired=!0,e(null)},6e3)}),s=e(r).catch(e=>{if(f(r))return null;throw e});try{return await Promise.race([s,i])}finally{clearTimeout(t)}}_showRedirectPending(e){if(e.classList.add(E),e.querySelector(`.${E}__indicator`))return;let t=this.document.createElement("div");t.className=`${E}__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:r}=this.config;if(!t||!r)return void console.warn("[EventBus] Missing required data for user alias");let i=this.window.eventBusProvider.getDistinctId();if(!i)return void console.warn("[EventBus] No anonymous ID available for alias");let s=this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(r,t);this.window.eventBusProvider.alias({anonId:i,canonicalId:s}),console.log("[EventBus] User aliased with canonical ID")}catch(e){console.error("[EventBus] User alias failed:",e)}}async _submitLeadRequest(e,t){let{config:r}=this;return(this._aliasUserWithEventBus(e),r.myhomeDashboardEnabled&&(e.activity?.activity_source==="HOME_VALUATION"||e.activity?.activity_source==="HOME_VALUE"))?this.homeValuationService._submitHomeValuationRequest({...e,deadline:t}):fetch(`${r.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,r={hitType:"event",eventCategory:"button",eventAction:"click"};switch(e.activity.activity_source){case"NEWSLETTER_SIGNUP":r.eventLabel="Newsletter",t.sendGoogleTagManagerEvent("event","newsletter_signup");break;case"HOME_SEARCH":r.eventLabel="HomeSearch",t.sendGoogleTagManagerEvent("event","home_search");break;case"HOME_VALUE":case"HOME_VALUATION":r.eventLabel="HomeValue",t.sendGoogleTagManagerEvent("event","home_valuation");break;case"EBOOK":r.eventLabel="Ebook",t.sendGoogleTagManagerEvent("event","ebook_download");break;default:r={hitType:"pageview",page:"/thank-you"},t.sendGoogleTagManagerEvent("event","contact_inquiry")}t.sendGoogleAnalyticsEvent(r)}_getFields(e){let t=e.querySelectorAll("input, select, textarea"),r={};return t.forEach(t=>{let{id:i,name:s,type:o}=t;if(s===w)return!0;let n="";if(i){let r=e.querySelector(`label[for='${i}']`);r?n=r.textContent.trim():t.placeholder&&(n=t.placeholder.trim())}r[s]={label:n,type:t.tagName,inputType:"INPUT"===t.tagName?o:"text"}}),r}_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 r=e.querySelector(".submission-error-message");r||((r=this.document.createElement("div")).className="submission-error-message",r.setAttribute("role","alert"),e.appendChild(r)),r.textContent=t||"Something went wrong. Please try again.",r.style.display="block"}_hideSubmissionError(e){let t=e.querySelector(".submission-error-message");t&&(t.style.display="none")}}(B,window,document),G=new class extends m{constructor(e,t,r){super(e,t,r),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 r=1;r<=3;r+=1){let i=e&&!t;try{let e=await fetch(this._getMapKeyUrl(r,i));if(t=t||i,this._setFailureFlag(!1),!e.ok)throw Error(`Failed to fetch API key: ${e.status}`);let s=await e.text();if(!s)return"";return this.apiKey=s,this.apiKey}catch(e){console.error(e),r<3&&await this._delay(300*2**(r-1))}}return this._setFailureFlag(!0),""}_getMapKeyUrl(e,t){let r=[];e>1&&r.push(`attempt=${e}`),t&&r.push("recovered_after_failure=1");let i=r.length?`?${r.join("&")}`:"";return`${this._getBaseUrl()}/api/v1/map${i}`}_hadPreviousFailure(){try{return"1"===this.window.sessionStorage.getItem(S)}catch(e){return!1}}_setFailureFlag(e){try{e?this.window.sessionStorage.setItem(S,"1"):this.window.sessionStorage.removeItem(S)}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");
3550let 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(r=>{r?t(r):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 r=Math.min(1024/e,1024/t);return{width:parseInt(e*r),height:parseInt(t*r)}}convertThemeToStaticApiUrl(e){return e.map(e=>{let t=e.stylers.reduce((e,t)=>{let r=t.visibility?`visibility:${t.visibility}`:"",i=t.color?`color:${t.color.replace("#","0x")}`:"",s=t.lightness?`lightness:${t.lightness}`:"";return`${e}|${r}${i}${s}`},""),r=e.elementType?`|element:${e.elementType}`:"";return`feature:${e.featureType}${r}${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:r}=await t.json();return r}catch(e){return console.error(e),""}}generateStaticMapUrl(e,t,r,i,s,o){let{width:n,height:a}=this.resizeStaticMapDimensions(s,o),l={center:`${e},${t}`,zoom:r,scale:2,size:`${n}x${a}`,key:this.apiKey};i&&(l.style=this.convertThemeToStaticApiUrl(i));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:r,...i}){let{width:s,height:o}=this.resizeStaticMapDimensions(e,t),n={...i,size:`${s}x${o}`};r&&(n.style=this.convertThemeToStaticApiUrl(r));let a=new URLSearchParams;Object.entries(n).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>a.append(e,t.toString())):a.append(e,t.toString())});let l=a.toString();try{return await this.getMapApiSignedUrl(l)}catch(e){return console.error(e),""}}}(B,window,document),K=new class extends m{destroy(){}updateQueryString(e,t,r){r||(r=this.window.location.href);let i=RegExp(`([?&])${e}=.*?(&|#|$)`,"i"),s="";null!=t&&(Array.isArray(t)?t.length&&(s=this.serializeArray(e,t)):"object"==typeof t?(i=RegExp(`([?&])${e}\\[[^=]*\\]=.*?(&|#|$)`,"i"),s=this.serializeObj(t,"",e)):s=`${e}=${encodeURIComponent(t)}`);let o=r.split("#"),n=o[0];if(i.test(r)){let e=n;for(s=s?`$1${s}$2`:"$1";i.test(e);)n=e.replace(i,s),e=e.replace(i,"$1");n=n.replace(/(&|\?)$/,"")}else if(s){let e=-1!==n.indexOf("?")?"&":"?";n+=`${e}${s}`}return void 0!==o[1]&&null!==o[1]&&(n+=`#${o[1]}`),n}getParameterByName(e,t){t||(t=this.window.location.href),e=e.replace(/[[\]]/g,"\\$&");let r=RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`),i=Array.from(RegExp.prototype[Symbol.matchAll].call(r,t)).flat();if(!i.length){let r=RegExp(`[?&]${e}(\\[.*?\\])=(.*?)(?=&|#|$)`,"g");return i=Array.from(RegExp.prototype[Symbol.matchAll].call(r,t)).flat(),this._parseParamToObject(i,"advancedFilters"===e)}return i.length>3?i.reduce((e,t,r)=>((r+1)%3==0&&e.push(decodeURIComponent(t.replace(/\+/g," "))),e),[]):i[2]?decode
3550URIComponent(i[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 r={},i=this.makePageKey(t),s=this.getParameterByName(i);return s&&(r.page=parseInt(s)),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,i),s=this.getParameterByName(t);if("int"===e.type)isFinite(s=parseInt(s))||(s=null);else if("bool"===e.type||"boolean"===e.type)s="true"===s||"false"!==s&&null;else if("json"===e.type)try{s=JSON.parse(s)}catch(e){}r[e.formKey||e.param]=s}),r}serializeParams(e,t,r){let i=this.window.location.href,s=this.makePageKey(t);return i=this.updateQueryString(s,r.page,i),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,s),o=r[e.formKey||e.param];"json"===e.type&&null!=o&&(o=JSON.stringify(o)),i=this.updateQueryString(t,o,i)}),i}formatSliderAtom(e,t=""){return t+(Number.isInteger(e)?e:e.toFixed(2))}formatSliderValue(e,t="",r=""){return e<1e3?this.formatSliderAtom(e,t):e<1e6?`${this.formatSliderAtom(e/1e3,t)}${r}K`:`${this.formatSliderAtom(e/1e6,t)}${r}M`}formatSliderPriceRange(e,t,r,i){return t.min===e&&0!==e?`${i.lowPrefix}${this.formatSliderValue(e,r," ")}`:t.max===e?`${this.formatSliderValue(e,r," ")}${i.highSuffix}`:`${this.formatSliderValue(e,r," ")}`}formatSliderAreaRange(e,t,r,i){return t.min===e&&0!==e?`${i.lowPrefix}${this.formatSliderValue(e)} ${r}`:t.max===e?`${this.formatSliderValue(e)}${i.highSuffix} ${r}`:`${this.formatSliderValue(e)} ${r}`}getSearchFormValues(e){let{queryElement:t,priceSliderElement:r,areaSliderElement:i,neighborhoodSelect:s}=e,o={};if(t&&(o.search=t.value||null),r){let e=r.value.split(";"),t=parseInt(r.dataset.min),i=parseInt(r.dataset.max),s=parseInt(e[0]),n=parseInt(e[1]);o.priceMin=s!==t?s:null,o.priceMax=n!==i?n:null}if(i){let e=i.value.split(";"),t=parseInt(i.dataset.min),r=parseInt(i.dataset.max),s=parseInt(e[0]),n=parseInt(e[1]);o.areaMin=s!==t?s:null,o.areaMax=n!==r?n:null}return s&&(o.neighborhoodId=s.value||null),o}serializeObj(e,t="",r=""){let i=[];for(let s in e)if(e.hasOwnProperty(s)){let o,n=e[s];if(r){let e=t?`[${t}][${s}]`:`[${s}]`;o=`${r}${e}`}else o=t?`${t}[${s}]`:s;null!==n&&Array.isArray(n)?n.length&&i.push(this.serializeArray(o,n)):null!==n&&"object"==typeof n?i.push(this.serializeObj(n,o)):i.push(`${o}=${encodeURIComponent(n)}`)}return i.join("&")}serializeArray(e,t,r=""){let i=[];return t.forEach(t=>{let s=r?`${r}${e}`:e;i.push(`${s}=${encodeURIComponent(t)}`)}),i.join("&")}_parseParamToObject(e,t=!1){if(!e.length)return null;let r={};for(let i=0;i<e.length;i++)if((i+1)%3==0){let s=decodeURIComponent(e[i].replace(/\+/g," ")),o=e[i-1];Object.assign(r,this._setObjectPath(o,s,r,t))}return r}_setObjectPath(e,t,r,i=!1){let s=e.split(/[\[\]]/).filter(Boolean),o=["in","nin","btw","ciin","cinin"],n={},a=n,l=((e,t,r)=>{if(!t)return;let i=(Array.isArray(t)?t:t.match(/([^[.\]])+/g)).reduce((e,t)=>e&&e[t],e);return void 0===i?r:i})(r,s.join("."));return s.forEach((e,n)=>{n===s.length-1?l?a[e]=Array.isArray(l)?[...l,t]:[l,t]:a[e]=i&&o.includes(e)?[t]:t:(a[e]=r[e]?r[e]:{},a=a[e])}),n}}(B,window,document),Y=new class extends m{constructor(e,t,r){super(e,t,r),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,r=e.closest("section[id]"),i=e.dataset.append,s=r.querySelector(".lp-expand-btn");if(!s)if((s=t.createElement("button")).className="lp-expand-btn",s.setAttribute("aria-label","Open a lightbox"),s.innerHTML='<span class="lp-i lp-i--expand-alt" aria-hidden="true"></span>',i){let e=r.querySelector(i);e&&e.appendChild(s)}else{let r=t.createElement("div");r.className="lp-expand-btn-wrapper",r.style.position="relative",r.appendChild(s),e.parentNode.insertBefore(r,e.nextSibling)}s.addEventListener("click",()=>{this._createLightbox({slider:e,section:r})})}_createLightbox({slider:e,section:t,initialIndex:r}){let{window:i,document:s}=this,o=`lightbox-for-${t?.id}`,n=i.$&&i.$.fn.slick,a=n&&e.slick,l="function"==typeof i.Splide,d=e.classList.contains("is-initialized")&&e.classList.contains("splide");function c(){let t=s.createElement("div");t.id=o,t.className="lp-lightbox",t.setAttribute("tabindex","-1"),t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.innerHTML=`
3551      <button class="lp-lightbox__close" aria-label="close modal"></button>
3552      <div class="lp-lightbox__content">
3553        <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery">
3554          <div class="splide__arrows">
3555            <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button>
3556            <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button>
3557          </div>
3558          <div class="splide__track">
3559            <ul class="splide__list"></ul>
3560          </div>
3561        </div>
3562      </div>
3563    `,"function"==typeof i.lpUI.requestScrollLock?i.lpUI.requestScrollLock(o):s.body.style.overflow="hidden",s.body.appendChild(t);let n=t.querySelector(".lp-lightbox__carousel"),a=n.querySelector(".splide__list");t.classList.add("show"),(d?e.querySelectorAll(".splide__slide:not(.splide__slide--clone) img"):e.querySelectorAll("img")).forEac
3563h(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let r=s.createElement("li");r.className="lp-lightbox__slide splide__slide",r.appendChild(t),a.appendChild(r)});let l=new i.Splide(n,{rewind:!0,arrows:!0,arrowPath:"",type:"loop",clones:1,pagination:!1,perPage:1,perMove:1});l.mount(),void 0!==r&&r>=0&&l.go(r),setTimeout(()=>{t.focus()},100);let c=e=>{if(!t.classList.contains("show"))return;let r=t.querySelector(".splide__arrow--prev"),i=t.querySelector(".splide__arrow--next"),s=t.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&r?(e.preventDefault(),r.click()):"ArrowRight"===e.key&&i?(e.preventDefault(),i.click()):"Escape"===e.key&&s&&(e.preventDefault(),s.click())};s.addEventListener("keydown",c),t.querySelector(".lp-lightbox__close").addEventListener("click",()=>{s.removeEventListener("keydown",c),t.classList.remove("show"),l&&l.destroy(),"function"==typeof i.lpUI.releaseScrollLock?i.lpUI.releaseScrollLock(o):s.body.style.overflow="",t.remove()})}if("function"==typeof i.lpUI.requestScrollLock?i.lpUI.requestScrollLock(o):s.body.style.overflow="hidden",n&&!d){let t,r,n,l,d;r={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>'},(n=s.createElement("div")).id=o,n.className="lp-lightbox",n.setAttribute("tabindex","-1"),n.setAttribute("role","dialog"),n.setAttribute("aria-modal","true"),n.innerHTML=`
3564        <button class="lp-lightbox__close" aria-label="close modal"></button>
3565        <div class="lp-lightbox__content">
3566          <div class="lp-lightbox__carousel"></div>
3567        </div>
3568      `,s.body.appendChild(n),l=n.querySelector(".lp-lightbox__carousel"),n.classList.add("show"),a?(t=e.slick.$slides.find("img"),r.initialSlide=e.slick?.currentSlide||0,t.each(function(){i.$(".lp-lightbox__carousel").append(i.$(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 r=s.createElement("div");r.className="lp-lightbox__slide",r.appendChild(t),l.appendChild(r)}),i.$(l).slick(r),setTimeout(()=>{n.focus()},100),d=e=>{if(!n.classList.contains("show"))return;let t=n.querySelector(".lp-lightbox-arrow--prev"),r=n.querySelector(".lp-lightbox-arrow--next"),i=n.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&t?(e.preventDefault(),t.click()):"ArrowRight"===e.key&&r?(e.preventDefault(),r.click()):"Escape"===e.key&&i&&(e.preventDefault(),i.click())},s.addEventListener("keydown",d),n.querySelector(".lp-lightbox__close").addEventListener("click",()=>{s.removeEventListener("keydown",d),n.classList.remove("show");let t=l?.slick?i.$(l).slick("slickCurrentSlide"):0;l?.slick&&i.$(l).slick("unslick"),a&&i.$(e).slick("slickGoTo",t),"function"==typeof i.lpUI.releaseScrollLock?i.lpUI.releaseScrollLock(o):s.body.style.overflow="",n.remove()})}else l?c():(i.luxuryPresence.libs.loadCss(i.luxuryPresence.libs.jsLibsMap.splide.cssSrc),i.luxuryPresence.libs.loadJs(i.luxuryPresence.libs.jsLibsMap.splide.jsSrc,()=>{c(),i.luxuryPresence.libs.jsLibsMap.splide.isLoaded=!0}))}}(B,window,document),z=new class extends m{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:r,templateId:i,websiteId:s,pageId:o,shareId:n,pageMeta:a}=this.config;this.window.divolte.signal(e,Object.assign({companyId:r,templateId:i,websiteId:s,pageId:o,shareId:n,pageMeta:a},t))}sendLpPageView(){this.sendLpEvent("pageView",{})}}(B,window,document),W=new class extends m{constructor(e,t,r){super(e,t,r)}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"}
3568)),(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:r}=this.config;try{this.window.eventBusProvider.capture(e,{company:r,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",{})}}(B,window,document),Q=new class extends m{constructor(e,t,r){super(e,t,r),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(C,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:r}=this.config,{data:i,origin:s}=e,{type:o,height:n,event:a,source:l,token:d}=i;if(o===t||"hide_intermediate_iframe"===o){let e=this.document.getElementById("onetap_google_intermediate_iframe");e&&(e.style.height=n,e.style.display=o===t?"unset":"none")}s===r&&"GOOGLE_SIGN_ON"===l&&("success"===a?(this._setExpirationLsItem(864e5),this._handleQualifyingQuestionsModal(d)):"cancel"===a&&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 r=this.document.createElement("iframe");r.src=this._buildUrlAndCopyAttributes(t,r,e),r.dataset.isSocialOauthButton=!0,t.replaceWith(r)}_listenToMessages(e){let{buyerSellerServiceUrl:t}=this.config;if(e.origin===t&&"success"===e.data.event){let e=new Event(C);this.window.dispatchEvent(e),y(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,r){let{buyerSellerServiceUrl:i,companyId:s,websiteId:o,pageId:n,pageMeta:a}=this.config,{location:l}=this.window,d=l.origin+l.pathname,c=new URL(`${i}/buttons/${r}`),u=this.window.localStorage.getItem("utm_vars"),h=this.window.localStorage.getItem("referrer");c.searchParams.append("companyId",s),c.searchParams.append("websiteId",o),c.searchParams.append("pageId",n),c.searchParams.append("sourceUrl",d),c.searchParams.append("pageMeta",JSON.stringify(a)),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"];
3568return 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,"/"),r=4-t.length%4,i=4===r?t:t+"=".repeat(r);return JSON.parse(atob(i))}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")}}}(B,window,document),J=new class extends m{constructor(e,t,r){super(e,t,r),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:r})=>{e&&e.removeEventListener&&e.removeEventListener(t,r)}),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 r=t.querySelector('input[name="email"]');r&&"string"==typeof e&&(r.value=e)}updateTriggerSourceValue(e){let t=this.getModalElement();if(!t)return;let r=t.querySelector(`#${this.modalId}-triggerSource`);r&&"string"==typeof e&&(r.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,r){let i="";if(r){let e=new Date;e.setTime(e.getTime()+864e5*r),i=`; expires=${e.toUTCString()}`}let s="; path=/; SameSite=Lax";this.window&&this.window.location&&"https:"===this.window.location.protocol&&(s+="; Secure"),this.document.cookie=`${e}=${encodeURIComponent(t||"")}${i}${s}`}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 r=()=>{this.setModalSubmittedCookie();let t=setTimeout(()=>{e.style.display="none",this.restoreBodyScroll()},100);this.timeouts.push(t)};t.addEventListener("formsubmitted",r),this.eventListeners.push({element:t,event:"formsubmitted",handler:r})}let r=e.querySelector('[data-dismiss="modal"]');if(r){let t=()=>{e.style.display="none",this.restoreBodyScroll()};r.addEventListener("click",t),this.eventListeners.push({element:r,event:"click",handler:t})}let i=t=>{(t.target===e||t.target.id===this.modalId)&&(e.style.display="none",this.restoreBodyScroll())};e.addEventListener("click",i),this.eventListeners.push({element:e,event:"click",handler:i})}}(B,window,document),X=new class extends m{constructor(e,t,r){super(e,t,r),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 r=`
3569      query {
3570        validSession {
3571          success
3572        }
3573      }
3574    `;try{let e=await this.window.fetch("/graphql",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({query:r})});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 i=t.data?.validSession?.success===!0;return this.lastValidationResult=i,this.lastValidationTime=Date.now(),i}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}}(B,window,document),Z=new class extends m{constructor(e,t,r){super(e,t,r),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=I[e.provider];if(!t)return;this.eventName=t.eventName;let r=await this.window.luxuryPresence.session.validateSession();(t.hasAnalyticsConsent(this.document,this.window)||r)&&this.loadScript(),this.consentListener||(this.consentListener=e=>{t.isAnalyticsAccepted(e.detail)?this.loadScript():this.removeScripts()},this.document.addEventListener(t.eventName,this.consentListener))}}(B,window,document),ee=new class extends m{destroy(){}transformVariables(e,t){let r;return x(r={...t},["testimonialId"]),R(r,["testimonialId"],"testimonialIds"),0===r.limit&&delete r.limit,(void 0===r.limit||null===r.limit)&&(("testimonials"===e||"testimonialsCount"===e)&&(r.limit=50),("agents"===e||"agentsCount"===e||"developments"===e||"developmentsCount"===e||"neighborhoods"===e||"neighborhoodsCount"===e||"posts"===e||"postsCount"===e||"pressReleases"===e||"pressReleasesCount"===e)&&(r.limit=100)),!function(e){let{sortDir:t}=e;"string"==typeof t&&t.includes("_")&&(e.sortDir=t.replace(/_/g," "))}(r),!function(e,t){switch(t){case"agent":break;case"testimonials":case"testimonialsCount":x(e,["testimonialIds"]);break;case"agents":case"agentsCount":x(e,["officeId","teamId","developmentId","agentIds","tags"]),R(e,["officeId"],"officeIds"),R(e,["teamId"],"teamIds"),R(e,["developmentId"],"developmentIds");break;case"neighborhoods":case"neighborhoodsCount":x(e,["neighborhoodIds","neighborhoodId"]),R(e,["neighborhoodIds","neighborhoodId"],"neighborhoodId");break;case"developments":case"developmentsCount":x(e,["agentId","neighborhoodIds","neighborhoodId","developmentIds","tag"]),e.agentId&&Array.isArray(e.agentId)&&([e.agentId]=e.agentId),R(e,["neighborhoodIds","neighborhoodId"],"neighborhoodIds"),R(e,["developmentIds","developmentId"],"developmentIds");break;case"properties":case"propertiesCount":x(e,["statusIds","statusId","propertyTypeIds","propertyTypeId","propertyId","networkId","propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","
3574spaceTypeIds","addressState","addressCity","backfillProviders","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"]),["propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","spaceTypeIds","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"].forEach(t=>R(e,[t],t)),R(e,["statusIds","statusId"],"propertyStatusId"),e.excludeStatusId&&(e.excludePropertyStatusId=e.excludeStatusId,delete e.excludeStatusId),R(e,["propertyTypeIds","propertyTypeId"],"propertyTypeId"),R(e,["networkId"],"networkId"),R(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":x(e,["categoryIds","categoryId","neighborhoodId"]),void 0!==e.order&&(e.sort=e.order,delete e.order),R(e,["categoryIds","categoryId"],"categoryId");break;case"postCategories":x(e,["categoryId","categoryIds"]),void 0!==e.order&&(e.sort=e.order,delete e.order),R(e,["categoryIds","categoryId"],"categoryId");break;case"pressReleases":case"pressReleasesCount":x(e,["pressReleaseId","categories","propertyId","developmentId","agentId","teamId"]),R(e,["pressReleaseId"],"pressReleaseIds");break;case"offices":case"officesCount":x(e,["officeId","officeIds","tags"]),R(e,["officeId"],"officeIds");break;case"teams":case"teamsCount":x(e,["teamId","teamIds"]),R(e,["teamId"],"teamIds");break;case"pois":x(e,["categories"]),Array.isArray(e.categories)&&(e.categories=e.categories.map(e=>e.toLowerCase())),"string"==typeof e.sortBy&&(e.sortBy=e.sortBy.toLowerCase())}}(r,e),r}transformResponse(e,t){return"agent"===e?P(t,T):"agents"===e||"agentsCount"===e?O(t,L):"neighborhood"===e?P(t,k):"neighborhoods"===e||"neighborhoodsCount"===e?O(t,M):"development"===e?P(t,$):"developments"===e||"developmentsCount"===e?O(t,U):t}transformPage(e){return{items:e&&e.items||[],count:e&&e.total||0}}applyPropertyDisclaimers(t,r){if(!Array.isArray(t)||!t.length||!r||!r.length)return Promise.resolve(t);let i=t.filter(e=>e&&e.vendorId&&e.mlsId).map(e=>({feedId:e.vendorId,listingId:e.mlsId,officeName:e.officeName??null,agentMlsId:e.mlsAgentId??null,officeMlsId:e.mlsOfficeId??null,attributionContact:e.attributionContact??null,status:e.status??null,syncedAt:e.syncedAt??null})),s=e=>{let i={};return(e||[]).forEach(e=>{i[`${e.feedId}:${e.listingId}`]=e}),t.map(e=>{let t=e&&i[`${e.vendorId}:${e.mlsId}`],s={};return r.forEach(e=>{let r=t?t[D[e]]:void 0;s[e]=r??null}),{...e,...s}})};if(!i.length)return Promise.resolve(s([]));let{websiteId:o}=this.config;return this.window.superagent?this.window.superagent.post(`${this.window.luxuryPresence.defaults.routerUrl}/graphql`).withCredentials().send({query:e(N),variables:{input:{websiteId:"string"==typeof o?o:void 0,properties:i}}}).then(e=>s(e.body&&e.body.data&&e.body.data.propertyDisclaimers),e=>(console.warn("[RouterApiController] propertyDisclaimers lookup failed:",e),s([]))):Promise.resolve(s([]))}}(B,window,document),et=new class extends m{constructor(e,t,r){super(e,t,r),this.natives=new WeakMap,this.rates=new Map,this.pending=new Map,this.target=void 0,this.generation=0,this.initialized=!1,this.observer=null,this.abortController=null}get currentCurrency(){return this.target}get cookieOptions(){return{document:this.document,location:this.window.location}}get enabledCurrencies(){return(this.config.enabledCurrencies??[]).map(F.toSupportedToCurrency).filter(Boolean)}initialize(){return this.initialized||!this.config.currencyConversionEnabled?Promise.resolve():(this.initialized=!0,this.generation=0,this.abortController=new this.window.AbortController,this.target=(0,F.readValidCurrencyCookie)(this.cookieOptions,{enabled:!0,enabledCurrencies:this.enabledCurrencies}),this.observer=new this.window.MutationObserver(()=>this.ensureRates(this.apply())),this.observer.observe(this.document.body,{childList:!0,subtree:!0}),this.ensureRates(this.apply()))}setCurrency(e){if(!this.config.currencyConversionEnabled)return!1;let t=(0,F.toSupportedToCurrency)(e);return!!t&&!!this.enabledCurrencies.includes(t)&&(this.target=t,this.generation+=1,(0,F.writeCurrencyCookie)(this.cookieOptions,t)||console.warn("[CurrencyConversionController] could not persist currency preference:",t),this.apply(),!0)}reset(){this.config.currencyConversionEnabled&&(this.target=void 0,this.generation+=1,(0,F.clearCurrencyCookie)(this.cookieOptions),this.apply())}destroy(){this.observer?.disconnect(),this.observer=null,this.abortController?.abort(),this.abortController=null,this.pending.clear(),this.rates.clear(),this.generation=null,this.initialized=!1}apply(){let e=new Set;return this.document.querySelectorAll("[data-lp-price]").forEach(t=>{let r=this.natives.get(t);if(!r){if(!(r=(e=>{let t=e.getAttribute("data-lp-native-amount"),r=null===t||""===t.trim()?NaN:Number(t),i=(0,F.toSupportedFromCurrency)(e.getAttribute("data-lp-native-currency"));if(!Number.isFinite(r)||r<0||!i)return;let s=Number(e.getAttribute("data-lp-precision"));return{amount:r,currency:i,precision:Number.isInteger(s)&&s>=0?s:0,originalHTML:e.innerHTML}})(t)))return;this.natives.set(t,r)}this.rates.has(r.currency)||e.add(r.currency),this.render(t,r)}),[...e]}render(e,t){let r=this.convertedText(t);if(void 0===r){e.innerHTML!==t.originalHTML&&(e.innerHTML=t.originalHTML);return}e.textContent!==r&&(e.textContent=r)}convertedText(e){if(!this.target||this.target===e.currency)return;let t=this.rates.get(e.currency)?.[this.target];
3574if("number"!=typeof t||!Number.isFinite(t))return;let r=(0,F.convertAmount)(e.amount,t);if(void 0!==r)return(0,F.formatMoney)(r,this.target,{precision:e.precision})}ensureRates(e){return e.length?Promise.all(e.map(e=>this.requestRates(e))).then(()=>{null!==this.generation&&this.apply()}):Promise.resolve()}requestRates(e){let t=this.pending.get(e);if(t)return t;let r=this.abortController?.signal,i=(0,F.fetchExchangeRates)(e,{baseUrl:this.config.valuationApiBase,signal:r,onError:t=>console.warn(`[CurrencyConversionController] exchange rate fetch failed for ${e}:`,t)}).then(t=>{r?.aborted||this.rates.set(e,t??{})});return this.pending.set(e,i),i}}(B,window,document);function er(e,t){if(window.luxuryPresence[e])try{window.luxuryPresence[e].destroy()}catch(e){console.log(e)}window.luxuryPresence[e]=t}er("config",B),er("modals",q),er("buttons",V),er("validation",j),er("contactForms",H),er("mapApiLoader",G),er("pagination",K),er("expandSliders",Y),er("divolte",z),er("eventBus",W),er("oauth",Q),er("qualifyingQuestionsModal",J),er("session",X),er("consent",Z),er("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(){}}),er("routerApi",ee),er("currencyConversion",et),window.luxuryPresence.formatSliderPriceRange=K.formatSliderPriceRange.bind(K),window.luxuryPresence.formatSliderAreaRange=K.formatSliderAreaRange.bind(K),window.luxuryPresence.getSearchFormValues=K.getSearchFormValues.bind(K),window.luxuryPresence.handlebarsHelpersFactory=function(t){return e(n)(t,{isEqual:(e,t)=>e==t})}})();
3575//# sourceMappingURL=lp-sdk.js.map
3576
3577    </script>
3577
3578
3579    
3579<script>
3580        var lpGlobalInitialized = false;
3581
3582        function lpGlobalInit () {
3583          if (lpGlobalInitialized) {
3584            return;
3585          }
3586            lpGlobalInitialized = true;
3587            // Initialize wow animation plugin only according to turbolinks
3588            var wow;
3589            if (window.WOW) {
3590                wow = new WOW({
3591                    animateClass: 'animated',
3592                    offset: wowOffset,
3593                    live: false,
3594                    callback: function(box) {}
3595                });
3596            }
3597            // Initialize handlebar helpers only once
3598            function handlebarsInit() {
3599              if (!window.Handlebars) {
3600                return;
3601              }
3602              HandlebarsIntl.registerWith(Handlebars);
3603              Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars));
3604            }
3605
3606            handlebarsInit();
3607
3608              var modalContentUrl = "/modals.html";
3609                const modalsContainer = document.getElementById('modals');
3610                if (modalsContainer) {
3611                  fetch(modalContentUrl).then(function(res) {
3612                    if (!res.ok) {
3613                      throw new Error(`HTTP error! Status: ${res.status}`);
3614                    }
3615                    return res.text();
3616                  }).then(function(resultText) {
3617                    modalsContainer.innerHTML = resultText;
3618
3619                    // now we need to execute all script elements
3620                    Array.from(modalsContainer.getElementsByTagName('script')).forEach(function (s) {
3621                      const script  = document.createElement("script");
3622                      script.text = s.innerHTML;
3623                      Array.from(s.attributes).forEach(function (a) {
3624                        script.setAttribute(a.name, a.value);
3625                      })
3626                      s.parentNode.replaceChild(script, s);
3627                    });
3628
3629                    try {
3630                      window.luxuryPresence.modals.initialize(window.luxuryPresence._modalIncludes);
3631                      window.luxuryPresence.contactForms.initialize({ selector: '#modals' });
3632                      window.luxuryPresence.validation.initialize({ selector: '#modals' });
3633                      window.luxuryPresence.oauth.initialize({
3634                        googleSignOnEnabled: true,
3635                        iframe: false });
3636                    } catch (e) {
3637                      console.log(e);
3638                    }
3639                    document.querySelectorAll('.modals > .modal .close').forEach(closeModalBtn => {
3640                      closeModalBtn.addEventListener('click', function() {
3641                        window.lpUI.hideClosestModal(closeModalBtn);
3642                      });
3643                    });
3644                  }).catch((e) => console.log(e));
3645                }
3646            /* Initialize Luxury Presence SDK */
3647            try {
3648                window.luxuryPresence.config.setCompany("6382308c-8bfc-4993-9f82-aceab30cdb9f", {});
3649                window.luxuryPresence.config.setWebsite("0ff2944e-bf8d-436a-8339-bb2d94158f4a", {
3650                    myhomeDashboardEnabled: true,
3651                    mlsEnabled: true,
3652                    hstValuationRedirectEnabled: true,
3653                    hvStepTwoCaptureEnabled: false
3654                });
3655                const url = new URL(window.location.href);
3656                const shareId = url.searchParams.get('shareId');
3657                window.luxuryPresence.config.setPage("d4c5a123-ba97-4e26-a4db-895ff5fd88b5", {
3658                    sourceResource: "",
3659                    pageElementId: "",
3660                    pageQueryVariables: {},
3661                    shareId: "",
3662                });
3663                window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {});
3664                window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {});
3665                    window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {});
3666                  window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {});
3667                  window.luxuryPresence.config.setEventBus({
3668                    enabled: true,
3669                    apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr",
3670                    url: "https://p.luxurypresence.com",
3671                  });
3672                window.luxuryPresence.config.setTemplateId("1d3967df-14f2-449d-87b7-bd68bf93906f", {});
3673                window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {});
3674                window.luxuryPresence.buttons.initialize({});
3675                    window.luxuryPresence.consent.initialize({ provider: 'lp-consent' });
3676                window.luxuryPresence.contactForms.initialize({});
3677                window.luxuryPresence.validation.initialize({});
3678                window.luxuryPresence.expandSliders.initialize({});
3679                window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false });
3680                window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true });
3681                /* Optional: cached pages / older SDKs may not carry this controller */
3682                window.luxuryPresence.currencyConversion?.initialize();
3683            } catch (e) {
3684                console.log(e);
3685            }
3686
3687            /* Inject Section Specific Javascript */
3688                try {
3689(function init(sectionDomId) {
3690  const section = document.getElementById(sectionDomId);
3691  const contactTitle = section.querySelector('.js-contact-title');
3692  const emailInput = section.querySelector('.js-email-input');
3693  const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/;
3694  emailInput.addEventListener('input', function () {
3695    if (emailRegex.test(this.value)) {
3696      this.setCustomValidity('');
3697    } else {
3698      this.setCustomValidity('Please enter a valid email address.');
3699    }
3700    this.reportValidity();
3701  });
3702  const inputName = section.querySelector('.js-input-name');
3703  inputName.addEventListener('keyup', function () {
3704    if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") {
3705      this.setCustomValidity("Please input your first name and last name.");
3706    } else {
3707      this.setCustomValidity("");
3708    }
3709  });
3710  function setHttp(link) {
3711    if (link.search(/^http[s]?\:\/\/|\//) == -1) {
3712      link = 'https://' + link;
3713    }
3714    return link;
3715  }
3716  const socialLinks = section.querySelectorAll('.lp-socials__link, .contact-form-modal-details__socials-l
3716ink');
3717  socialLinks.forEach(linkElement => {
3718    const href = linkElement.getAttribute('href');
3719    if (href) {
3720      linkElement.setAttribute('href', setHttp(href));
3721    }
3722  });
3723  if (contactTitle.length < 1) return;
3724  let words = contactTitle.textContent.split(" ");
3725  if (words.length > 1) {
3726    contactTitle.innerHTML = `<span class="contact__title-top">${words[0]} </span><span class="contact__title-bottom">${words.splice(1).join(" ")}</span>`;
3727  }
3728  const addRedirectToForm = () => {
3729    const redirectLink = document.getElementById(`${sectionDomId}`).querySelector('.js-redirect-link');
3730    const form = document.getElementById(`${sectionDomId}`).querySelector('.js-form');
3731    function redirectPage(link) {
3732      if (link) {
3733        const rawHref = link.getAttribute('href');
3734        link.setAttribute('href', setHttp(rawHref));
3735        link.click();
3736      }
3737    }
3738    function setHttp(link) {
3739      if (link.search(/^http[s]?\:\/\/|\//) == -1) {
3740        link = 'http://' + link;
3741      }
3742      return link;
3743    }
3744    form.addEventListener("reset", function () {
3745      redirectPage(redirectLink);
3746    });
3747  };
3748  addRedirectToForm();
3749})('modal-global-contact-us');
3750} catch(e) {
3751console.log(e);
3752}
3753                
3754                try {
3755(function init(sectionDomId) {
3756  (function () {
3757    const observer = new IntersectionObserver(entries => {
3758      entries.forEach(entry => {
3759        if (entry.isIntersecting) entry.target.classList.add('is-in-viewport');
3760      });
3761    }, {
3762      threshold: 0.5
3763    });
3764    const initialElements = document.querySelectorAll('[data-animate="true"]');
3765    initialElements.forEach(element => observer.observe(element));
3766    const container = document.querySelector('.data-container');
3767    if (container) {
3768      const mutationObserver = new MutationObserver(mutations => {
3769        mutations.forEach(mutation => {
3770          if (mutation.type === 'childList') {
3771            mutation.addedNodes.forEach(node => {
3772              if (node.nodeType === 1 && node.getAttribute('data-animate') === 'true') observer.observe(node);
3773            });
3774          }
3775        });
3776      });
3777      mutationObserver.observe(container, {
3778        childList: true,
3779        subtree: true
3780      });
3781    }
3782  })();
3783  const sectionSelector = document.getElementById(sectionDomId);
3784  const searchToggleSelector = sectionSelector.querySelector('.js-search-toggle-btn');
3785  const searchWrapperSelector = sectionSelector.querySelector('.js-header-search');
3786  const header = sectionSelector.querySelector('.js-header');
3787  let lastScrollTop = 0;
3788  (function (stickyAnchorRoot) {
3789    if (!stickyAnchorRoot) return;
3790    function getInFlowTop(target) {
3791      var inlineValue = target.style.getPropertyValue('position');
3792      var inlinePriority = target.style.getPropertyPriority('position');
3793      target.style.setProperty('position', 'relative', 'important');
3794      var top = target.getBoundingClientRect().top + window.pageYOffset;
3795      if (inlineValue) target.style.setProperty('position', inlineValue, inlinePriority);else target.style.removeProperty('position');
3796      var scrollMarginTop = parseFloat(window.getComputedStyle(target).scrollMarginTop) || 0;
3797      return Math.max(0, top - scrollMarginTop);
3798    }
3799    stickyAnchorRoot.addEventListener('click', function (event) {
3800      if (event.defaultPrevented || event.button !== 0) return;
3801      if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
3802      if (document.body.hasAttribute('data-scroll-container')) return;
3803      var link = event.target.closest('a[href]');
3804      if (!link || !stickyAnchorRoot.contains(link) || link.target === '_blank') return;
3805      var href = link.getAttribute('href');
3806      if (!/^#[^#]/.test(href)) return;
3807      var targetId;
3808      try {
3809        targetId = decodeURIComponent(href.slice(1));
3810      } catch (e) {
3811        return;
3812      }
3813      var target = document.getElementById(targetId);
3814      if (!target || window.getComputedStyle(target).position !== 'sticky') return;
3815      event.preventDefault();
3816      if (window.location.hash !== href) window.history.pushState(null, '', href);
3817      window.requestAnimationFrame(function () {
3818        window.scrollTo({
3819          top: getInFlowTop(target)
3820        });
3821      });
3822    });
3823  })(document.getElementById(sectionDomId));
3824  const subNavOpeners = sectionSelector.querySelectorAll('.js-subnav-opener');
3825  subNavOpeners.forEach(opener => {
3826    opener.addEventListener('click', function (e) {
3827      e.preventDefault();
3828      e.stopPropagation();
3829      const parent = opener.parentElement;
3830      subNavOpeners.forEach(otherOpener => {
3831        if (otherOpener !== opener) {
3832          otherOpener.parentElement.classList.remove('header-navigation__item--sub-nav--opened');
3833        }
3834      });
3835      parent.classList.toggle('header-navigation__item--sub-nav--opened');
3836    });
3837  });
3838  document.addEventListener('click', function (e) {
3839    if (!e.target.closest('.js-subnav-opener') && !e.target.closest('.header-navigation__item--sub-nav--opened')) {
3840      subNavOpeners.forEach(opener => {
3841        opener.parentElement.classList.remove('header-navigation__item--sub-nav--opened');
3842      });
3843    }
3844  });
3845  function initHeaderColors() {
3846    try {
3847      var colorStr = window.getComputedStyle(header).getPropertyValue("--backgroundColor");
3848      var bgColor = makeColor(colorStr);
3849      var isDark = (bgColor.rgba.r * 299 + bgColor.rgba.g * 587 + bgColor.rgba.b * 114) / 1000 < 128;
3850      sectionSelector.classList.add('is-background-color-' + (isDark ? 'dark' : 'light'));
3851    } catch (e) {}
3852  }
3853  function makeColor(str) {
3854    var color = {
3855      rgba: {
3856        r: 0,
3857        g: 0,
3858        b: 0,
3859        a: 0
3860      }
3861    };
3862    if (str && str.match) {
3863      var m = str.match(/rgba?\s*\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\.0-9]+))?\)/);
3864      if (m) {
3865        color.rgba.r = parseInt(m[1]);
3866        color.rgba.g = parseInt(m[2]);
3867        color.rgba.b = parseInt(m[3]);
3868        color.rgba.a = parseFloat(m[4]);
3869        if (isNaN(color.rgba.a)) {
3870          color.rgba.a = 1;
3871        }
3872      }
3873    }
3874    return color;
3875  }
3876  initHeaderColors();
3877  var navEl = document.querySelector('nav > header') || document.querySelector('nav');
3878  var navbarHeight = navEl ? navEl.offsetHeight : 0;
3879  if (navEl) {
3880    if (window.ResizeObserver) {
3881      new ResizeObserver(function (entries) {
3882        if (!entries.length) return;
3883        navbarHeight = entries[0].target.offsetHeight;
3884      }).observe(navEl);
3885    } else {
3886      window.addEventListener('resize', function () {
3887        navbarHeight = navEl.offsetHeight;
3888      });
3889    }
3890  }
3891  function isLocomotiveActive() {
3892    return document.body.hasAttribute('data-scroll-container');
3893  }
3894  function updateHeaderVisibility(currentScrollTop) {
3895    if (!searchWrapperSelector || searchWrapperSelector.style.display !== 'block') {
3896      if (currentScrollTop === 0) header.classList.remove('header--hide');else if (currentScrollTop > lastScrollTop) header.classList.add('header--hide');else header.classList.remove('header--hide');
3897    }
3898    lastScrollTop = currentScrollTop;
3899  }
3900  function customHeaderHideShow(currentScrollTop) {
3901    if (!navEl) return;
3902    if (currentScrollTop > 0) {
3903      navEl.classList.add('scroll');
3904    } else {
3905      navEl.classList.remove('scroll');
3906    }
3907    if (currentScrollTop > lastScrollTop && currentScrollTop > navbarHeight) {
3908      document.documentElement.style.setProperty('--global-header-height', '0px');
3909    } else {
3910      document.documentElement.style.setProperty('--global-header-height', navbarHeight + 'px');
3911    }
3912  }
3913  window.addEventListener('scroll', function () {
3914    if (isLocomotiveActive()) return;
3915    var currentScrollTop = window.scrollY || document.documentElement.scrollTop;
3916    updateHeaderVisibility(currentScrollTop);
3917  });
3918  var isTicking = false;
3919  var latestLocoScrollY = 0;
3920  window.addEventListener('locomotive-scroll', function (e) {
3921    latestLocoScrollY = e.detail.scrollY;
3922    if (!isTicking) {
3923      window.requestAnimationFrame(function () {
3924        customHeaderHideShow(latestLocoScrollY);
3925        updateHeaderVisibility(latestLocoScrollY);
3926        isTicking = false;
3927      });
3928      isTicking = true;
3929    }
3930  });
3931  if (searchToggleSelector !== null) {
3932    searchToggleSelector.addEventListener('click', function () {
3933      if (searchWrapperSelector.style.display === 'block') {
3934        searchWrapperSelector.style.display = 'none';
3935      } else {
3936        searchWrapperSelector.style.display = 'block';
3937        header.classList.remove('header--hide');
3938      }
3939    });
3940    document.addEventListener('click', function (evt) {
3941      if (!searchToggleSelector.contains(evt.target) && !searchWrapperSelector.contains(evt.target)) searchWrapperSelector.style.display = 'none';
3942    });
3943  }
3944  window.luxuryPresence.mapApiLoader.load().then(() => {
3945    if (!searchWrapperSelector) return;
3946    const templateHTML = sectionSelector.querySelector('.js-card-template')?.innerHTML;
3947    const itemTemplate = templateHTML && Handlebars.compile(templateHTML);
3948    const searchMls = searchWrapperSelector.dataset.searchMls === 'true';
3949    const searchProperties = searchWrapperSelector.dataset.searchProperties === 'true';
3950    const selectedCountries = searchWrapperSelector.dataset.locations;
3951    const searchInputSelector = sectionSelector.querySelector('.js-header-search-input');
3952    const searchIconSelector = sectionSelector.querySelector('.js-header-btn-search');
3953    const closeIconSelector = sectionSelector.querySelector('.js-header-btn-close');
3954    const searchResultsSelector = sectionSelector.querySelector('.js-header-search-results-holder');
3955    const resultsContainerSelector = sectionSelector.querySelector('.js-header-results-container');
3956    const loaderSelector = sectionSelector.querySelector('.js-header-spinner');
3957    const predefinedSelector = sectionSelector.querySelector('.js-header-search-results-predefined');
3958    const nothingFoundSelector = sectionSelector.querySelector('.js-header-spinner-nothing-found');
3959    const service = new google.maps.places.AutocompleteService();
3960    const geocoder = new google.maps.Geocoder();
3961    var keyword;
3962    var leasePropertyState = false;
3963    var leasePropertySearched;
3964    var isLoading = false;
3965    var newSearchTimer;
3966    var placesResult = {};
3967    function updateSearchDisplay() {
3968      var hasResults = !!resultsContainerSelector.innerHTML;
3969      var hasPredefined = predefinedSelector.querySelectorAll('a:not(.not-processed)').length > 0;
3970      nothingFoundSelector.style.display = 'none';
3971      if (hasResults) {
3972        predefinedSelector.style.display = 'none';
3973        loaderSelector.style.display = 'none';
3974        resultsContainerSelector.style.display = 'block';
3975      } else if (isLoading) {
3976        resultsContainerSelector.style.display = 'none';
3977        predefinedSelector.style.display = 'none';
3978        loaderSelector.style.display = 'block';
3979      } else if (hasPredefined) {
3980        resultsContainerSelector.style.display = 'none';
3981        loaderSelector.style.display = 'none';
3982        predefinedSelector.style.display = 'block';
3983      } else {
3984        resultsContainerSelector.style.display = 'none';
3985        loaderSelector.style.display = 'none';
3986        predefinedSelector.style.display = 'none';
3987        if (keyword) nothingFoundSelector.style.display = 'block';
3988      }
3989    }
3990    function moveSelection(up) {
3991      var count = resultsContainerSelector.innerHTML ? resultsContainerSelector : predefinedSelector;
3992      var links = count.querySelectorAll('.results-link');
3993      if (!links.length) return;
3994      var idx = -1;
3995      links.forEach((link, i) => {
3996        if (idx === -1 && link.classList.contains('header-search-results__link--selected')) idx = i;
3997      });
3998      var newIdx;
3999      if (up) {
4000        newIdx = idx - 1;
4001        if (newIdx < 0) newIdx = links.length - 1;
4002      } else {
4003        newIdx = idx + 1;
4004        if (newIdx > links.length - 1) newIdx = 0;
4005      }
4006      if (newIdx !== idx) {
4007        searchResultsSelector.querySelector('.header-search-results__link--selected')?.classList.remove('header-search-results__link--selected');
4008        links[newIdx].classList.add('header-search-results__link--selected');
4009      }
4010    }
4011    function startSearch() {
4012      const term = searchInputSelector.value;
4013      if (term === keyword && leasePropertySearched === leasePropertyState) return;
4014      leasePropertySearched = leasePropertyState;
4015      keyword = term;
4016      if (term) doSearch(term, leasePropertySearched);else setResults(null);
4017    }
4018    function mlsSearch(term) {
4019      var query = {
4020        omnibox: term,
4021        limit: 5
4022      };
4023      return superagent.get(window.location.protocol + '//' + window.location.host + '/home-search/listings.json').query(query).then(function (res) {
4024        if (!Array.isArray(res.body)) return [];
4025        return res.body.map(function (item) {
4026          return {
4027            id: item.id,
4028            display_address: [item.address_1, item.city, [item.state, item.postal_code].filter(function (i) {
4029              return i;
4030            }).join(' ')].filter(function (i) {
4031              return i;
4032            }).join(', ')
4033          };
4034        });
4035      }, function (e) {
4036        console.log(e);
4037        return [];
4038      });
4039    }
4040    function resolveGeoBounds(placeId, description) {
4041      return new Promise(function (resolve, reject) {
4042        geocoder.geocode({
4043          'placeId': placeId
4044        }, function (results, status) {
4045          if (status != 'OK') return resolve(null);
4046          var result = results[0];
4047          var bounds = new google.maps.LatLngBounds();
4048          bounds.extend(result.geometry.viewport.getSouthWest());
4049          bounds.extend(result.geometry.viewport.getNorthEast());
4050          result.geometry.bounds = bounds.toJSON();
4051          var placeUrl = window.luxuryPresence.makeMlsLink(result);
4052          return resolve({
4053            placeUrl: placeUrl,
4054            description: description
4055          });
4056        });
4057      });
4058    }
4059    function addRestrictions(request) {
4060      switch (selectedCountries) {
4061        case 'Worldwide':
4062          return request;
4063        case 'US & Canada':
4064          request.componentRestrictions = {
4065            country: ['us', 'ca']
4066          };
4067          return request;
4068        default:
4069          request.componentRestrictions = {
4070            country: 'us'
4071          };
4072          return request;
4073      }
4074    }
4075    function resolveAutocomplete(term, deeper) {
4076      var request = addRestrictions({
4077        input: term,
4078        types: deeper ? ['geocode'] : ['(regions)'],
4079        limit: 1
4080      });
4081      return new Promise(function (resolve, reject) {
4082        service.getPlacePredictions(request, function (results, status) {
4083          if (status !== google.maps.places.PlacesServiceStatus.OK) {
4084            resolve(null);
4085            return;
4086          }
4087          if (!Array.isArray(results)) {
4088            resolve(null);
4089            return;
4090          }
4091          if (deeper) {
4092            var allowedTypes = {
4093              'neighborhood': true,
4094              'administrative_area_level_3': true,
4095              'administrative_area_level_4': true,
4096              'administrative_area_level_5': true,
4097              'sublocality_level_1': true,
4098              'sublocality_level_2': true,
4099              'sublocality_level_3': true
4100            };
4101            results = results.filter(function (res) {
4102              return res.types.find(t => allowedTypes[t]);
4103            });
4104          }
4105          if (!results.length) {
4106            resolve(null);
4107            return;
4108          }
4109          resolve(results);
4110        });
4111      });
4112    }
4113    function placesSearch(term, ignoreInput) {
4114      if (placesResult.term !== term) {
4115        placesResult = {
4116          term: term,
4117          result: resolveAutocomplete(term).then(function (results) {
4118            if (!ignoreInput && term !== keyword) return null;
4119            if (ignoreInput && !results) return resolveAutocomplete(term, true);
4120            return results;
4121          }).then(function (results) {
4122            if (!ignoreInput && term !== keyword || !results) return [];
4123            var geoResultPromises = results.map(function (result) {
4124              return resolveGeoBounds(result.place_id, result.description);
4125            });
4126            return Promise.all(geoResultPromises).then(function (geoLinks) {
4127              return geoLinks.filter(function (i) {
4128                return i;
4129              }).slice(0, 3);
4130            });
4131          })
4132        };
4133      }
4134      return placesResult.result;
4135    }
4136    function propertiesSearch(term) {
4137      var payload = {
4138        companyId: window.luxuryPresence.defaults.companyId,
4139        search: term,
4140        offset: 0,
4141        limit: 4,
4142        statusIds: ["5f528253-abb7-484e-95c3-330269ac1105", "959c11cf-8655-4f91-874c-292b0ab7ea6b", "a0012964-4f51-4430-abf8-6547c5ab6441", "df04ccbe-4621-4140-a504-ee1a17430bb7", "88b4ace6-f39b-4b25-a051-8f6dba976833", "96031d77-bbe5-4de3-90d8-1e4e70de8ca8"]
4143      };
4144      var gqlQuery = 'query ($companyId: String, $search: String, $offset: Int, $limit: Int, $propertyStatusId: [String!]) {properties (companyId: $companyId, search: $search, offset: $offset, limit: $limit, propertyStatusId: $propertyStatusId) {items {id name slug fullAddress privateAddress status isPasswordProtected priceUponRequest salesPrice reducedPrice leasePrice currency media {smallUrl mediumUrl largeUrl xLargeUrl xxLargeUrl height width altTagText}}}}';
4145      return superagent.post(window.luxuryPresence.defaults.routerUrl + '/graphql').send({
4146        query: gqlQuery,
4147        variables: window.luxuryPresence.routerApi.transformVariables('properties', payload)
4148      }).then(function (res) {
4149        var page = (res.body.data || {}).properties;
4150        return page && page.items || [];
4151      }, function (err) {
4152        return [];
4153      });
4154    }
4155    function doSearch(term, leaseProperty) {
4156      isLoading = true;
4157      updateSearchDisplay();
4158      Promise.all([searchMls ? mlsSearch(term, leaseProperty) : [], searchMls ? placesSearch(term) : [], searchProperties ? propertiesSearch(term, leaseProperty) : []]).then(function (res) {
4159        if (term !== keyword) return;
4160        setResults(res[0], res[1], res[2], leaseProperty);
4161      });
4162    }
4163    function makeResultsBlockHtml(title, elementClass, links) {
4164      if (!links || !links.length) return '';else return '<div class="header-search-results__block"><div class="header-search-results__title">' + title + '</div><div class="' + elementClass + '">' + links.join('') + '</div></div>';
4165    }
4166    function setResults(mlsResults, placesResults, propertiesResults, leaseProperty) {
4167      searchResultsSelector.querySelector('.header-search-results__link--selected')?.classList.remove('header-search-results__link--selected');
4168      isLoading = false;
4169      updateSearchDisplay();
4170      if (!mlsResults) {
4171        resultsContainerSelector.innerHTML = '';
4172        updateSearchDisplay();
4173        return;
4174      }
4175      if (!mlsResults.length && !placesResults.length && !propertiesResults.length) {
4176        updateSearchDisplay();
4177        return;
4178      }
4179      var propertiesHtml = makeResultsBlockHtml('Featured Properties', 'header-properties', propertiesResults.map(function (result) {
4180        return itemTemplate(result);
4181      }));
4182      var placesHtml = makeResultsBlockHtml('Locations', '', placesResults.map(function (result) {
4183        return `<a class="header-search-results__link lp-icon" href="${result.placeUrl}${leaseProperty ? '&lease_property=true' : ''}">${result.description}</a>`;
4184      }));
4185      var mlsHtml = makeResultsBlockHtml('Address', '', mlsResults.map(function (result) {
4186        return `<a href="/home-search/listings/${result.id}" class="header-search-results__link lp-icon">${result.display_address}</a>`;
4187      }));
4188      resultsContainerSelector.innerHTML = propertiesHtml + placesHtml + mlsHtml;
4189      updateSearchDisplay();
4190    }
4191    var neighborhoods = null;
4192    function fetchNeighborhoods() {
4193      var url = window.luxuryPresence.defaults.routerUrl;
4194      var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {neighborhoods (companyId: $companyId, offset: $offset, limit: $limit) {items {id, name, mlsLink, googlePlaceData}}}';
4195      var payload = {};
4196      payload.offset = 0;
4197      payload.limit = 100;
4198      payload.companyId = window.luxuryPresence.defaults.companyId;
4199      return superagent.post(url + '/graphql').withCredentials().send({
4200        query: gqlQuery,
4201        variables: payload
4202      }).then(function (res) {
4203        var data = res.body.data && res.body.data.neighborhoods;
4204        neighborhoods = data && data.items || null;
4205        if (neighborhoods && !neighborhoods.length) {
4206          neighborhoods = null;
4207        }
4208      });
4209    }
4210    function setPredefinedNeighborhoods() {
4211      return fetchNeighborhoods().then(function () {
4212        if (!neighborhoods) return;
4213        var placesHtml = makeResultsBlockHtml('Locations', neighborhoods.map(function (item) {
4214          return `<a class="header-search-results__link lp-icon" href="${item.mlsLink}${leasePropertyState ? '&lease_property=true' : ''}">${item.googlePlaceData && item.googlePlaceData.formatted_address || item.name}</a>`;
4215        }));
4216        predefinedSelector.innerHTML = placesHtml;
4217        updateSearchDisplay();
4218      });
4219    }
4220    if (searchMls) setPredefinedNeighborhoods();
4221    closeIconSelector.style.opacity = '0';
4222    closeIconSelector.style.pointerEvents = 'none';
4223    searchInputSelector.setAttribute('inputmode', 'search');
4224    searchInputSelector.addEventListener('input', function () {
4225      if (this.value === '') {
4226        closeIconSelector.style.opacity = '0';
4227        closeIconSelector.style.pointerEvents = 'none';
4228        searchIconSelector.style.opacity = '1';
4229        searchIconSelector.style.pointerEvents = 'auto';
4230      } else {
4231        closeIconSelector.style.opacity = '1';
4232        closeIconSelector.style.pointerEvents = 'auto';
4233        searchIconSelector.style.opacity = '0';
4234        searchIconSelector.style.pointerEvents = 'none';
4235      }
4236      window.clearTimeout(newSearchTimer);
4237      newSearchTimer = window.setTimeout(startSearch, 300);
4238    });
4239    searchInputSelector.addEventListener('keydown', function (ev) {
4240      if (ev.which === 38) {
4241        ev.preventDefault();
4242        moveSelection(true);
4243        return false;
4244      }
4245      if (ev.which === 40) {
4246        ev.preventDefault();
4247        moveSelection();
4248        return false;
4249      }
4250      if (ev.which === 13) {
4251        let $lnk = searchResultsSelector.querySelector('.header-search-results__link--selected');
4252        if ($lnk) {
4253          $lnk.click();
4254          searchActive = false;
4255          updateSearchDisplay();
4256        } else {
4257          $searchBtn.click();
4258        }
4259      }
4260    });
4261    closeIconSelector.addEventListener('click', function () {
4262      searchInputSelector.value = '';
4263      searchInputSelector.dispatchEvent(new Event('input'));
4264      searchActive = false;
4265      updateSearchDisplay();
4266    });
4267    searchResultsSelector.addEventListener('mouseenter', function (ev) {
4268      searchResultsSelector.querySelector('.header-search-results__link--selected')?.classList.remove('header-search-results__link--selected');
4269    });
4270    function outsideClickHandler(e) {
4271      if (searchWrapperSelector.contains(e.target)) return;
4272      searchActive = false;
4273      updateSearchDisplay();
4274    }
4275    document.addEventListener('click', outsideClickHandler);
4276  });
4277})('global-navbar');
4278} catch(e) {
4279console.log(e);
4280}
4281                try {
4282(function init(sectionDomId, options) {
4283  var elementSelector = options.elementSelector || 'nav';
4284  var element = document.querySelector(elementSelector);
4285  var sections = document.querySelectorAll('body > section');
4286  var subNavContainers = element.querySelectorAll('.sub-nav');
4287  var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor;
4288  var backgroundColorScroll = options.backgroundColorScroll || '#191919';
4289  var fontColor = options.fontColor || '#fff';
4290  var fontColorScroll = options.fontColorScroll || '#000';
4291  var didScroll = false;
4292  var lastScrollTop = 0;
4293  var delta = 5;
4294
4295  // eslint-disable-next-line sonarjs/no-collapsible-if
4296  if (wow) {
4297    // Wowjs might not trigger for position fixed elements
4298    if (window.scrollY > 0) {
4299      element.querySelectorAll('.wow').forEach(el => wow.show(el));
4300    }
4301  }
4302  function adjustNavPinState() {
4303    // Remove 'visible' class from all subNavContainers
4304    for (let i = 0; i < subNavContainers.length; i++) {
4305      subNavContainers[i].classList.remove('visible');
4306    }
4307    if (window.scrollY > 0) {
4308      element.style.backgroundColor = backgroundColorScroll;
4309      element.style.color = fontColorScroll;
4310      element.classList.add('scroll');
4311    } else {
4312      element.style.backgroundColor = initialBackgroundColor;
4313      element.style.color = fontColor;
4314      element.classList.remove('scroll');
4315    }
4316  }
4317  adjustNavPinState();
4318  function onScroll() {
4319    didScroll = true;
4320  }
4321  window.addEventListener('scroll', onScroll);
4322
4323  // eslint-disable-next-line
4324  var debounceInterval = setInterval(() => {
4325    if (didScroll) {
4326      // eslint-disable-next-line
4327      hasScrolled();
4328      didScroll = false;
4329    }
4330  }, 250);
4331  function hasScrolled() {
4332    adjustNavPinState();
4333    // eslint-disable-next-line
4334    var navbarHeight = element.offsetHeight;
4335    // eslint-disable-next-line
4336    var st = window.scrollY;
4337
4338    // Make sure they scroll more than delta
4339    if (Math.abs(lastScrollTop - st) <= delta) {
4340      return;
4341    }
4342    if (st > lastScrollTop && st > navbarHeight) {
4343      // Scroll Down
4344      element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`;
4345      document.documentElement.style.setProperty('--global-header-height', '0px');
4346
4347      // Some sections "follow" the navbar with class sticky (i.e. Producer search)
4348      sections.forEach(section => {
4349        if (section.classList.contains('sticky')) {
4350          section.style.top = '0px';
4351        }
4352      });
4353    } else {
4354      // Scroll Up
4355      // eslint-disable-next-line
4356      if (st + window.innerHeight < document.documentElement.scrollHeight) {
4357        element.style.transform = `translateY(0) scaleY(1)`;
4358        document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`);
4359        sections.forEach(section => {
4360          if (section.classList.contains('sticky')) {
4361            section.style.top = `${navbarHeight}px`;
4362          }
4363        });
4364      }
4365    }
4366    lastScrollTop = st;
4367  }
4368})('NAVBAR', JSON.parse("{\"fontColor\":\"#161515\",\"elementSelector\":\".header\",\"fontColorScroll\":\"#fff\",\"backgroundColorScroll\":\"rgba(26,26,26, .8)\",\"initialBackgroundColor\":\"#fff\"}"));
4369} catch(e) {
4370console.log(e);
4371}
4372                try {
4373(function init(sectionDomId) {
4374  if (sectionDomId === "main-section") sectionDomId = "global-sidemenu";
4375  (function (stickyAnchorRoot) {
4376    if (!stickyAnchorRoot) return;
4377    function getInFlowTop(target) {
4378      var inlineValue = target.style.getPropertyValue('position');
4379      var inlinePriority = target.style.getPropertyPriority('position');
4380      target.style.setProperty('position', 'relative', 'important');
4381      var top = target.getBoundingClientRect().top + window.pageYOffset;
4382      if (inlineValue) target.style.setProperty('position', inlineValue, inlinePriority);else target.style.removeProperty('position');
4383      var scrollMarginTop = parseFloat(window.getComputedStyle(target).scrollMarginTop) || 0;
4384      return Math.max(0, top - scrollMarginTop);
4385    }
4386    stickyAnchorRoot.addEventListener('click', function (event) {
4387      if (event.defaultPrevented || event.button !== 0) return;
4388      if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
4389      if (document.body.hasAttribute('data-scroll-container')) return;
4390      var link = event.target.closest('a[href]');
4391      if (!link || !stickyAnchorRoot.contains(link) || link.target === '_blank') return;
4392      var href = link.getAttribute('href');
4393      if (!/^#[^#]/.test(href)) return;
4394      var targetId;
4395      try {
4396        targetId = decodeURIComponent(href.slice(1));
4397      } catch (e) {
4398        return;
4399      }
4400      var target = document.getElementById(targetId);
4401      if (!target || window.getComputedStyle(target).position !== 'sticky') return;
4402      event.preventDefault();
4403      if (window.location.hash !== href) window.history.pushState(null, '', href);
4404      window.requestAnimationFrame(function () {
4405        window.scrollTo({
4406          top: getInFlowTop(target)
4407        });
4408      });
4409    });
4410  })(document.getElementById(sectionDomId));
4411  var sidemenu = document.getElementById(sectionDomId);
4412  var openers = sidemenu.querySelectorAll('.js-sub-nav-opener');
4413  var items = sidemenu.querySelectorAll('.js-idemenu-navigation-item');
4414  var watermark = document.querySelector('.js-sidemenu-watermark');
4415  var onShow = function () {
4416    window.lpUI.requestScrollLock(sectionDomId);
4417  };
4418  var onHide = function () {
4419    window.lpUI.releaseScrollLock(sectionDomId);
4420  };
4421  sidemenu.addEventListener('lpui-show', onShow);
4422  sidemenu.addEventListener('lpui-hide', onHide);
4423  openers.forEach(function (opener) {
4424    opener.addEventListener('click', function (event) {
4425      event.preventDefault();
4426      this.classList.toggle('sidemenu-navigation__link--active');
4427      this.classList.toggle('sidemenu-navigation__link--sub-nav-active');
4428    });
4429  });
4430  document.body.addEventListener('click', function (evt) {
4431    if (!evt.target.closest('.sidemenu') && !evt.target.closest('.js-sidemenu-opener')) {
4432      window.lpUI.sideMenuHide();
4433    }
4434  });
4435  const handleLinkClick = function (href) {
4436    if (href && href.match(/^#[^#].*$/)) {
4437      window.lpUI.sideMenuHide();
4438    }
4439  };
4440  const mainNavLinks = sidemenu.querySelectorAll('.sidemenu-navigation__link');
4441  mainNavLinks.forEach(function (link) {
4442    link.addEventListener('click', function (event) {
4443      const href = this.getAttribute('href');
4444      handleLinkClick(href);
4445    });
4446  });
4447  const subNavLinks = sidemenu.querySelectorAll('.sidemenu-navigation-sub-nav__link');
4448  subNavLinks.forEach(function (link) {
4449    link.addEventListener('click', function (event) {
4450      const href = this.getAttribute('href');
4451      handleLinkClick(href);
4452    });
4453  });
4454  if (watermark) {
4455    items.forEach(function (item, index) {
4456      item.setAttribute("data-id", index <= 9 ? "0" + (index + 1) : index + 1);
4457    });
4458    items.forEach(function (item) {
4459      item.addEventListener('mouseenter', function () {
4460        watermark.setAttribute("data-id", item.getAttribute("data-id"));
4461        watermark.style.opacity = 1;
4462      });
4463      item.addEventListener('mouseleave', function () {
4464        watermark.style.opacity = 0;
4465      });
4466    });
4467  }
4468})('global-sidemenu');
4469} catch(e) {
4470console.log(e);
4471}
4472                
4473                try {
4474(function init(sectionDomId) {
4475  const sectionDom = document.getElementById(sectionDomId);
4476  const backToTopBtn = sectionDom.querySelector('.js-back-to-top');
4477  backToTopBtn?.addEventListener('click', () => {
4478    window.scrollTo({
4479      top: 0,
4480      behavior: 'smooth'
4481    });
4482  });
4483})('global-footer');
4484} catch(e) {
4485console.log(e);
4486}
4487                
4488                try {
4489(function init(sectionDomId) {
4490  const customDropdownHTML = `
4491  <div class="custom-select" role="presentation">
4492    <button class="custom-select-toggle" type="button" aria-haspopup="true" aria-expanded="false" role="combobox"></button>
4493    <div class="custom-select-menu"><div class="custom-select-content"></div></div>
4494  </div>`;
4495  const hideOriginalSelect = originalSelect => {
4496    originalSelect.classList.remove(...originalSelect.classList);
4497    originalSelect.classList.add("sr-only");
4498  };
4499  const openCustomSelect = customSelectToggle => {
4500    let customSelectMenu = customSelectToggle.nextElementSibling;
4501    customSelectMenu.classList.add("open");
4502    customSelectToggle.classList.add("open");
4503    customSelectToggle.ariaExpanded = true;
4504  };
4505  const closeCustomSelect = customSelectToggle => {
4506    let customSelectMenu = customSelectToggle.nextElementSibling;
4507    customSelectMenu.classList.remove("open");
4508    customSelectToggle.classList.remove("open");
4509    customSelectToggle.ariaExpanded = false;
4510  };
4511  const inheritAttributes = (originalSelect, customSelectToggle, customSelectMenu) => {
4512    customSelectToggle.className = customSelectToggle.className.concat(' ', originalSelect.className);
4513    customSelectToggle.id = originalSelect.getAttribute("id") + "custom";
4514    customSelectToggle.dataset.name = originalSelect.getAttribute("name");
4515    customSelectMenu.setAttribute("aria-labelledby", customSelectToggle.id);
4516  };
4517  const initiateQuerySelectors = customSelect => {
4518    let customSelectToggle = customSelect.querySelector('.custom-select-toggle'),
4519      customSelectMenu = customSelect.querySelector('.custom-select-menu'),
4520      customSelectContent = customSelect.querySelector('.custom-select-content');
4521    return {
4522      customSelectToggle,
4523      customSelectMenu,
4524      customSelectContent
4525    };
4526  };
4527  const initiateToggleText = (originalSelect, customSelectToggle) => {
4528    const dataLabelOption = originalSelect.querySelector("[data-label]");
4529    const isMultiple = originalSelect?.multiple;
4530    if (!isMultiple) {
4531      const toggleText = dataLabelOption && dataLabelOption.dataset.label || originalSelect.querySelector(":checked")?.textContent || originalSelect.querySelector("option")?.textContent;
4532      customSelectToggle.classList.add("is-placeholder");
4533      customSelectToggle.innerHTML = toggleText;
4534    } else {
4535      const placeholderText = dataLabelOption && dataLabelOption.dataset.label || originalSelect.querySelector("option")?.textContent || "Select";
4536      const selectedOptions = Array.from(originalSelect.querySelectorAll("option:checked")).filter(opt => opt.value !== "");
4537      if (selectedOptions.length === 0) {
4538        customSelectToggle.innerHTML = placeholderText;
4539        customSelectToggle.classList.add("is-placeholder");
4540      } else if (selectedOptions.length === 1) {
4541        customSelectToggle.innerHTML = selectedOptions[0].textContent;
4542        customSelectToggle.classList.remove("is-placeholder");
4543      } else {
4544        customSelectToggle.innerHTML = `${selectedOptions[0].textContent} +${selectedOptions.length - 1}`;
4545        customSelectToggle.classList.remove("is-placeholder");
4546      }
4547    }
4548  };
4549  const convertOptionsToButtons = (originalSelect, customSelectContent) => {
4550    originalSelect.querySelectorAll('option').forEach(option => {
4551      const button = createButtonFromOption(option);
4552      customSelectContent.appendChild(button);
4553    });
4554  };
4555  const createButtonFromOption = option => {
4556    let button = document.createElement('button');
4557    button.className = "custom-select-item";
4558    button.setAttribute("role", "option");
4559    button.setAttribute("type", "button");
4560    button.textContent = option.textContent;
4561    button.setAttribute('value', option.value);
4562    if (option.disabled) {
4563      button.setAttribute("disabled", "true");
4564    }
4565    if (option.selected && option.value !== "") {
4566      button.classList.add("is-selected");
4567      button.setAttribute("aria-selected", "true");
4568    }
4569    return button;
4570  };
4571  const initiateEventListeners = (originalSelect, customSelectToggle, customSelectMenu) => {
4572    const isMultiple = originalSelect?.multiple;
4573    originalSelect.addEventListener("focus", function () {
4574      openCustomSelect(customSelectToggle);
4575      customSelectToggle.focus();
4576    });
4577    customSelectToggle.addEventListener("click", function () {
4578      if (customSelectToggle.getAttribute("aria-expanded") === "true") {
4579        closeCustomSelect(customSelectToggle);
4580      } else {
4581        openCustomSelect(customSelectToggle);
4582      }
4583    });
4584    customSelectMenu.addEventListener("click", function (event) {
4585      if (event.target.classList.contains('custom-select-item')) {
4586        const clickedValue = event.target.value;
4587        const clickedOption = originalSelect.querySelector(`option[value="${clickedValue}"]`);
4588        const placeholderOption = originalSelect.querySelector("[data-label]");
4589        const placeholderText = placeholderOption?.dataset.label || originalSelect.querySelector("option")?.textContent || "Select";
4590        if (!isMultiple) {
4591          let opts = customSelectMenu.querySelectorAll(".is-selected");
4592          [].forEach.call(opts, function (el) {
4593            el.classList.remove("is-selected");
4594          });
4595          event.target.classList.add("is-selected");
4596          clickedOption.selected = true;
4597          customSelectToggle.innerHTML = clickedOption.textContent;
4598          if (clickedValue === "" || event.target.classList.contains("is-placeholder")) {
4599            customSelectToggle.classList.add("is-placeholder");
4600          } else {
4601            customSelectToggle.classList.remove("is-placeholder");
4602          }
4603          let changeEvent = new Event('change', {
4604            bubbles: true
4605          });
4606          originalSelect.dispatchEvent(changeEvent);
4607          closeCustomSelect(customSelectToggle);
4608        } else {
4609          if (clickedValue === "") {
4610            customSelectMenu.querySelectorAll(".is-selected").forEach(el => {
4611              el.classList.remove("is-selected");
4612              el.setAttribute("aria-selected", "false");
4613            });
4614            originalSelect.querySelectorAll("option").forEach(opt => opt.selected = false);
4615            customSelectToggle.innerHTML = placeholderText;
4616            customSelectToggle.classList.add("is-placeholder");
4617          } else {
4618            const isCurrentlySelected = event.target.classList.contains("is-selected");
4619            event.target.classList.toggle("is-selected");
4620            event.target.setAttribute("aria-selected", (!isCurrentlySelected).toString());
4621            clickedOption.selected = !isCurrentlySelected;
4622            const allItem = customSelectMenu.querySelector('.custom-select-item[value=""]');
4623            if (allItem) {
4624              allItem.classList.remove("is-selected");
4625              allItem.setAttribute("aria-selected", "false");
4626            }
4627            const allOption = originalSelect.querySelector('option[value=""]');
4628            if (allOption) allOption.selected = false;
4629            const selectedItems = customSelectMenu.querySelectorAll(".custom-select-item.is-selected");
4630            if (selectedItems.length === 0) {
4631              customSelectToggle.innerHTML = placeholderText;
4632              customSelectToggle.classList.add("is-placeholder");
4633            } else if (selectedItems.length === 1) {
4634              customSelectToggle.innerHTML = selectedItems[0].textContent;
4635              customSelectToggle.classList.remove("is-placeholder");
4636            } else {
4637              customSelectToggle.innerHTML = `${selectedItems[0].textContent} +${selectedItems.length - 1}`;
4638              customSelectToggle.classList.remove("is-placeholder");
4639            }
4640          }
4641          let changeEvent = new Event('change', {
4642            bubbles: true
4643          });
4644          originalSelect.dispatchEvent(changeEvent);
4645        }
4646      }
4647    });
4648    document.addEventListener("click", function (event) {
4649      if (!customSelectMenu.contains(event.target) && !customSelectToggle.contains(event.target)) {
4650        closeCustomSelect(customSelectToggle);
4651      }
4652    });
4653  };
4654  const createCustomSelect = originalSelect => {
4655    const customSelect = document.createElement('div');
4656    customSelect.innerHTML = customDropdownHTML;
4657    const {
4658      customSelectToggle,
4659      customSelectMenu,
4660      customSelectContent
4661    } = initiateQuerySelectors(customSelect);
4662    inheritAttributes(originalSelect, customSelectToggle, customSelectMenu);
4663    hideOriginalSelect(originalSelect);
4664    initiateToggleText(originalSelect, customSelectToggle);
4665    convertOptionsToButtons(originalSelect, customSelectContent);
4666    initiateEventListeners(originalSelect, customSelectToggle, customSelectMenu);
4667    return customSelect;
4668  };
4669  const setCustomSelectValue = (originalSelect, value) => {
4670    let customSelect = originalSelect.nextElementSibling;
4671    let customSelectToggle = customSelect.querySelector(".custom-select-toggle");
4672    let customSelectContent = customSelect.querySelector(".custom-select-content");
4673    if (!customSelectContent) return;
4674    let selectedOption = value ? Array.from(customSelectContent.children).find(function (b) {
4675      return b.value === value;
4676    }) : customSelectContent.firstChild;
4677    if (!selectedOption) {
4678      return;
4679    }
4680    if (selectedOption.classList.contains("is-disabled")) return;
4681    let elementNumber = Array.from(selectedOption.parentNode.children).indexOf(selectedOption);
4682    let linkedOption = originalSelect.querySelectorAll("option")[elementNumber];
4683    linkedOption.selected = true;
4684    selectedOption.classList.add("is-selected");
4685    selectedOption.parentNode.querySelectorAll(".custom-select-item").forEach(el => {
4686      if (el !== selectedOption) {
4687        el.classList.remove("is-selected");
4688      }
4689    });
4690    closeCustomSelect(customSelectToggle);
4691    customSelectToggle.innerHTML = linkedOption.innerHTML;
4692    if (linkedOption.value) {
4693      customSelectToggle.classList.remove("is-placeholder");
4694      if (linkedOption.value !== "") {
4695        customSelect.classList.add("has-selection");
4696      } else {
4697        customSelect.classList.remove("has-selection");
4698      }
4699    } else {
4700      customSelect.classList.remove("has-selection");
4701      customSelectToggle.classList.add("is-placeholder");
4702    }
4703  };
4704  const customSelect = originalSelect => {
4705    const customSelect = createCustomSelect(originalSelect);
4706    originalSelect.insertAdjacentElement('afterend', customSelect);
4707    return customSelect;
4708  };
4709  const resetCustomSelect = originalSelect => {
4710    const customSelectEl = originalSelect.nextElementSibling;
4711    const customSelectToggle = customSelectEl?.querySelector('.custom-select-toggle');
4712    const customSelectContent = customSelectEl?.querySelector('.custom-select-content');
4713    if (!customSelectToggle || !customSelectContent) return;
4714    const placeholderOption = originalSelect.querySelector("[data-label]");
4715    const placeholderText = placeholderOption?.dataset.label || originalSelect.querySelector("option")?.textContent || "Select";
4716    customSelectContent.querySelectorAll('.custom-select-item').forEach(item => {
4717      item.classList.remove('is-selected');
4718      item.setAttribute('aria-selected', 'false');
4719    });
4720    originalSelect.querySelectorAll('option').forEach(opt => opt.selected = false);
4721    customSelectToggle.innerHTML = placeholderText;
4722    customSelectToggle.classList.add('is-placeholder');
4723    const customSelectWrapper = customSelectEl.querySelector('.custom-select');
4724    if (customSelectWrapper) {
4725      customSelectWrapper.classList.remove('has-selection');
4726    }
4727  };
4728  const section = document.getElementById(sectionDomId);
4729  const closeBtn = section.querySelector(".js-close-btn");
4730  const connectBtn = section.querySelector(".js-btn-connect");
4731  const popUp = section.querySelector(".js-pop-up");
4732  const btnHolder = section.querySelector(".js-btn-holder");
4733  const form = section.querySelector(".js-form");
4734  const successMessage = section.querySelector(".js-success");
4735  const redirectLink = section.querySelector(".js-redirect-link");
4736  function setHttp(link) {
4737    if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) {
4738      link = "https://" + link;
4739    }
4740    return link;
4741  }
4742  function redirectPage(link) {
4743    if (link) {
4744      window.location.href = setHttp(link.getAttribute("href"));
4745    }
4746  }
4747  const selects = document.querySelectorAll(".floating-contact-button select.js-select");
4748  selects.forEach(function (el) {
4749    customSelect(el);
4750  });
4751  const inputName = form.querySelector('.js-input-name');
4752  inputName.addEventListener('keyup', function () {
4753    if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") {
4754      this.setCustomValidity("Please input your first name and last name.");
4755    } else {
4756      this.setCustomValidity("");
4757    }
4758  });
4759  function showSuccessMessage() {
4760    successMessage.style.display = "block";
4761    form.style.display = "none";
4762  }
4763  form.addEventListener("formsubmitted", showSuccessMessage);
4764  form.addEventListener("reset", function () {
4765    showSuccessMessage();
4766    redirectPage(redirectLink);
4767  });
4768  window.addEventListener("scroll", function () {
4769    if (window.scrollY >= 150 && window.getComputedStyle(popUp).display !== "block") btnHolder.classList.add("floating-contact-button__btn-holder--visible");else btnHolder.classList.remove("floating-contact-button__btn-holder--visible");
4770  });
4771  closeBtn.addEventListener("click", function () {
4772    popUp.style.display = "none";
4773    btnHolder.classList.add("floating-contact-button__btn-holder--visible");
4774  });
4775  connectBtn.addEventListener("click", function () {
4776    popUp.style.display = "block";
4777    btnHolder.classList.remove("floating-contact-button__btn-holder--visible");
4778  });
4779})('global-mobile-contact');
4780} catch(e) {
4781console.log(e);
4782}
4783                
4784                try {
4785(function init(sectionDomId) {
4786  const section = document.getElementById(sectionDomId);
4787  const slider = section.querySelector('.js-slider');
4788  const slides = section.querySelectorAll('.js-item');
4789  const sliderNav = section.querySelector('.js-slider-nav');
4790  const arrowBtnNext = section.querySelector('.js-arrow--next');
4791  const arrowBtnPrev = section.querySelector('.js-arrow--prev');
4792  const currentSlideNum = section.querySelector('.js-number');
4793  const video = section.querySelectorAll('video');
4794  const videoWrap = section.querySelector('.full-screen-video-component > .video-wrapper');
4795  if (videoWrap) {
4796    video.forEach(function (v) {
4797      if (v.readyState > 0) {
4798        videoWrap.classList.add('playing');
4799      } else {
4800        v.addEventListener('canplay', function () {
4801          videoWrap.classList.add('playing');
4802        }, {
4803          once: true
4804        });
4805      }
4806    });
4807  }
4808  if (video.length) {
4809    section.querySelector('.js-sound').style.display = 'block';
4810    section.querySelector('.js-sound').addEventListener('click', function (evt) {
4811      event.preventDefault();
4812      const isMuted = Array.from(video).every(v => v.muted);
4813      if (isMuted) {
4814        section.querySelector('.js-sound-icon').style.display = 'inline';
4815        section.querySelector('.js-mute-icon').style.display = 'none';
4816      } else {
4817        section.querySelector('.js-sound-icon').style.display = 'none';
4818        section.querySelector('.js-mute-icon').style.display = 'inline';
4819      }
4820      video.forEach(function (v) {
4821        v.muted = !v.muted;
4822      });
4823    });
4824    function muteUponHide() {
4825      const videoDisplay = window.getComputedStyle(section.querySelector('.video-wrapper .hidable')).display;
4826      if (videoDisplay === 'none') {
4827        video.forEach(function (v) {
4828          v.muted = true;
4829        });
4830        section.querySelector('.muted').style.display = 'inline';
4831        section.querySelector('.unmuted').style.display = 'none';
4832      }
4833    }
4834    const debouncedMute = window.luxuryPresence.debounce(muteUponHide, 200);
4835    window.addEventListener('resize', debouncedMute);
4836  }
4837  var splide1 = new Splide(slider, {
4838    rewind: true,
4839    arrows: false,
4840    type: 'fade',
4841    clones: 1,
4842    speed: 1000,
4843    pagination: false,
4844    breakpoints: {
4845      560: {
4846        arrows: false
4847      }
4848    }
4849  });
4850  var splide = new Splide(sliderNav, {
4851    rewind: true,
4852    arrows: false,
4853    pagination: false,
4854    type: 'fade',
4855    speed: 1000,
4856    breakpoints: {
4857      560: {
4858        arrows: false
4859      }
4860    }
4861  });
4862  splide1.mount();
4863  splide.mount();
4864  var autoAdvanceTimer = null;
4865  function getSlideDuration(index) {
4866    var slide = slides[index];
4867    if (!slide) return 6000;
4868    var val = parseFloat(slide.dataset.duration);
4869    return (val > 0 ? val : 6) * 1000;
4870  }
4871  function startAutoAdvance() {
4872    clearTimeout(autoAdvanceTimer);
4873    if (slides.length <= 1) return;
4874    autoAdvanceTimer = setTimeout(function () {
4875      splide1.go('+1');
4876      splide.go('+1');
4877      currentSlideNum.innerHTML = splide.index + 1;
4878      startAutoAdvance();
4879    }, getSlideDuration(splide1.index));
4880  }
4881  startAutoAdvance();
4882  if (slides.length > 1) {
4883    arrowBtnNext.addEventListener('click', e => {
4884      splide.go('+1');
4885      splide1.go('+1');
4886      currentSlideNum.innerHTML = splide.index + 1;
4887      startAutoAdvance();
4888    });
4889    arrowBtnPrev.addEventListener('click', e => {
4890      splide.go('-1');
4891      splide1.go('-1');
4892      currentSlideNum.innerHTML = splide.index + 1;
4893      startAutoAdvance();
4894    });
4895  }
4896  window.luxuryPresence.mapApiLoader.load().then(() => {
4897    const searchWrapper = section.querySelector('.js-search-wrapper');
4898    if (!searchWrapper) {
4899      return;
4900    }
4901    const searchMls = searchWrapper.dataset.searchMls === 'true';
4902    const searchProperties = searchWrapper.dataset.searchProperties === 'true';
4903    const selectedCountries = searchWrapper.dataset.locations;
4904    const showNeighborhoodNames = searchWrapper.dataset.showNeighborhoodNames === 'true';
4905    const searchPlaces = searchMls;
4906    const showNeighborhoods = searchMls;
4907    const searchNearEnabled = searchMls;
4908    const searchInput = section.querySelector('.js-search-input');
4909    const searchResults = section.querySelector('.js-search-results');
4910    const resultsContainer = section.querySelector('.js-results-container');
4911    const loader = section.querySelector('.js-search-in-progress');
4912    const predefined = section.querySelector('.js-predefined-links');
4913    const searchBtn = section.querySelector('.js-search-button');
4914    const leaseFalseButton = section.querySelector('.jsLeaseFalse');
4915    const leaseTrueButton = section.querySelector('.jsLeaseTrue');
4916    const nextSection = section.nextElementSibling;
4917    const fixZIndex = nextSection && nextSection.style && parseInt(nextSection.style.zIndex) || 1;
4918    const searchDelay = 300;
4919    const maxPlaces = 3;
4920    const maxMls = 5;
4921    const leaseFilter = leaseFalseButton && leaseTrueButton;
4922    const service = new google.maps.places.AutocompleteService();
4923    const geocoder = new google.maps.Geocoder();
4924    var keyword;
4925    var leasePropertyState = false;
4926    var leasePropertySearched;
4927    var searchActive = false;
4928    var isLoading = false;
4929    function showSearchResults() {
4930      searchActive = true;
4931      updateSearchDisplay();
4932    }
4933    function hideSearchResults() {
4934      searchActive = false;
4935      updateSearchDisplay();
4936    }
4937    function showLoading() {
4938      isLoading = true;
4939      updateSearchDisplay();
4940    }
4941    function hideLoading() {
4942      isLoading = false;
4943      updateSearchDisplay();
4944    }
4945    function updateSearchDisplay() {
4946      if (leaseFilter) {
4947        if (leasePropertyState) {
4948          leaseTrueButton.classList.add('active');
4949          leaseFalseButton.classList.remove('active');
4950        } else {
4951          leaseFalseButton.classList.add('active');
4952          leaseTrueButton.classList.remove('active');
4953        }
4954      }
4955      if (!searchActive) {
4956        searchResults.classList.remove('show');
4957        searchResults.style.height = '0';
4958        if (fixZIndex) {
4959          section.style.zIndex = '';
4960        }
4961        return;
4962      }
4963      var hasResults = !!resultsContainer.innerHTML.trim();
4964      var hasPredefined = predefined.querySelectorAll('a:not(.not-processed)').length > 0;
4965      if (hasResults) {
4966        predefined.classList.add('hide');
4967        loader.classList.add('hide');
4968        resultsContainer.classList.remove('hide');
4969      } else if (isLoading) {
4970        resultsContainer.classList.add('hide');
4971        predefined.classList.add('hide');
4972        loader.classList.remove('hide');
4973      } else if (hasPredefined) {
4974        resultsContainer.classList.add('hide');
4975        loader.classList.add('hide');
4976        predefined.classList.remove('hide');
4977      } else {
4978        resultsContainer.classList.add('hide');
4979        loader.classList.add('hide');
4980        predefined.classList.add('hide');
4981      }
4982      var height = 0;
4983      height += predefined.getBoundingClientRect().height;
4984      height += resultsContainer.getBoundingClientRect().height;
4985      height += loader.getBoundingClientRect().height;
4986      if (height > 0) {
4987        if (fixZIndex) {
4988          section.style.zIndex = `${fixZIndex + 1}`;
4989        }
4990        searchResults.classList.add('show');
4991      } else {
4992        if (fixZIndex) {
4993          section.style.zIndex = '';
4994        }
4995        searchResults.classList.remove('show');
4996      }
4997      searchResults.style.height = height + 'px';
4998    }
4999    function clearSelection() {
5000      document.querySelectorAll('.selected-link').forEach(el => el.classList.remove('selected-link'));
5001    }
5002    function moveSelection(up) {
5003      const cont = resultsContainer.innerHTML.trim() ? resultsContainer : predefined;
5004      var links = cont.querySelectorAll('.js-results-link');
5005      if (!links.length) {
5006        return;
5007      }
5008      var idx = -1;
5009      var idx = -1;
5010      links.forEach((link, i) => {
5011        if (idx === -1 && this.classList.contains('.selected-link')) {
5012          idx = i;
5013        }
5014      });
5015      var newIdx;
5016      if (up) {
5017        newIdx = idx - 1;
5018        if (newIdx < 0) {
5019          newIdx = links.length - 1;
5020        }
5021      } else {
5022        newIdx = idx + 1;
5023        if (newIdx > links.length - 1) {
5024          newIdx = 0;
5025        }
5026      }
5027      if (newIdx !== idx) {
5028        document.querySelectorAll('.selected-link').forEach(el => el.classList.remove('selected-link'));
5029        links[newIdx].classList.add('selected-link');
5030      }
5031    }
5032    var newSearchTimer;
5033    function inputChanged(ev) {
5034      if (ev.which === 38) {
5035        ev.preventDefault();
5036        moveSelection(true);
5037        return false;
5038      }
5039      if (ev.which === 40) {
5040        ev.preventDefault();
5041        moveSelection();
5042        return false;
5043      }
5044      if (ev.which === 13) {
5045        lnk = searchResults.querySelectorAll('.selected-link');
5046        if (lnk.length) {
5047          lnk[0].click();
5048          hideSearchResults();
5049        } else {
5050          searchBtn.click();
5051        }
5052      }
5053      window.clearTimeout(newSearchTimer);
5054      newSearchTimer = window.setTimeout(startSearch, searchDelay);
5055    }
5056    function startSearch() {
5057      const term = searchInput.value;
5058      if (term === keyword && leasePropertySearched === leasePropertyState) {
5059        return;
5060      }
5061      leasePropertySearched = leasePropertyState;
5062      keyword = term;
5063      if (term) {
5064        doSearch(term, leasePropertySearched);
5065      } else {
5066        setResults(null);
5067      }
5068    }
5069    function mlsSearch(term, leaseProperty) {
5070      if (!leaseFilter) {
5071        return window.luxuryPresence.getMLSAutocomplete(term);
5072      }
5073      var query = {
5074        omnibox: term,
5075        limit: maxMls
5076      };
5077      if (leaseFilter && leaseProperty) {
5078        query.lease_property = true;
5079      }
5080      return superagent.get(window.location.protocol + '//' + window.location.host + '/home-search/listings.json').query(query).then(function (res) {
5081        if (!Array.isArray(res.body)) {
5082          return [];
5083        }
5084        return res.body.map(function (item) {
5085          return {
5086            id: item.id,
5087            display_address: [item.address_1, item.city, [item.state, item.postal_code].filter(function (i) {
5088              return i;
5089            }).join(' ')].filter(function (i) {
5090              return i;
5091            }).join(', ')
5092          };
5093        });
5094      }, function (e) {
5095        console.log(e);
5096        return [];
5097      });
5098    }
5099    function resolveGeoBounds(placeId, description, terms) {
5100      return new Promise(function (resolve, reject) {
5101        geocoder.geocode({
5102          'placeId': placeId
5103        }, function (results, status) {
5104          if (status != 'OK') {
5105            return resolve(null);
5106          }
5107          var result = results[0];
5108          var bounds = new google.maps.LatLngBounds();
5109          bounds.extend(result.geometry.viewport.getSouthWest());
5110          bounds.extend(result.geometry.viewport.getNorthEast());
5111          result.geometry.bounds = bounds.toJSON();
5112          var placeUrl = window.luxuryPresence.makeMlsLink(result);
5113          return resolve({
5114            placeUrl: placeUrl,
5115            description: description,
5116            cityName: terms[0].value,
5117            stateName: terms[1].value
5118          });
5119        });
5120      });
5121    }
5122    function addRestrictions(request) {
5123      if (selectedCountries === 'Worldwide') {
5124        return request;
5125      }
5126      if (selectedCountries === 'US & Canada') {
5127        request.componentRestrictions = {
5128          country: ['us', 'ca']
5129        };
5130        return request;
5131      }
5132      request.componentRestrictions = {
5133        country: 'us'
5134      };
5135      return request;
5136    }
5137    function resolveAutocomplete(term, deeper) {
5138      var request = addRestrictions({
5139        input: term,
5140        types: deeper ? ['geocode'] : ['(regions)'],
5141        limit: 1
5142      });
5143      return new Promise(function (resolve, reject) {
5144        service.getPlacePredictions(request, function (results, status) {
5145          if (status !== google.maps.places.PlacesServiceStatus.OK) {
5146            resolve(null);
5147            return;
5148          }
5149          if (!Array.isArray(results)) {
5150            resolve(null);
5151            return;
5152          }
5153          if (deeper) {
5154            var allowedTypes = {
5155              'neighborhood': true,
5156              'administrative_area_level_3': true,
5157              'administrative_area_level_4': true,
5158              'administrative_area_level_5': true,
5159              'sublocality_level_1': true,
5160              'sublocality_level_2': true,
5161              'sublocality_level_3': true
5162            };
5163            results = results.filter(function (res) {
5164              return res.types.find(t => allowedTypes[t]);
5165            });
5166          }
5167          if (!results.length) {
5168            resolve(null);
5169            return;
5170          }
5171          resolve(results);
5172        });
5173      });
5174    }
5175    var placesResult = {};
5176    function placesSearch(term, ignoreInput) {
5177      if (placesResult.term !== term) {
5178        placesResult = {
5179          term: term,
5180          result: resolveAutocomplete(term).then(function (results) {
5181            if (!ignoreInput && term !== keyword) {
5182              return null;
5183            }
5184            if (ignoreInput && !results) {
5185              return resolveAutocomplete(term, true);
5186            }
5187            return results;
5188          }).then(function (results) {
5189            if (!ignoreInput && term !== keyword) {
5190              return [];
5191            }
5192            if (!results) {
5193              return [];
5194            }
5195            var geoResultPromises = results.map(function (result) {
5196              return resolveGeoBounds(result.place_id, result.description, result.terms);
5197            });
5198            return Promise.all(geoResultPromises).then(function (geoLinks) {
5199              return geoLinks.filter(function (i) {
5200                return i;
5201              }).slice(0, maxPlaces);
5202            });
5203          })
5204        };
5205      }
5206      return placesResult.result;
5207    }
5208    function propertiesSearch(term, leaseProperty) {
5209      var payload = {
5210        companyId: window.luxuryPresence.defaults.companyId,
5211        search: term,
5212        offset: 0,
5213        limit: 6,
5214        statusIds: ["5f528253-abb7-484e-95c3-330269ac1105", "959c11cf-8655-4f91-874c-292b0ab7ea6b", "a0012964-4f51-4430-abf8-6547c5ab6441", "df04ccbe-4621-4140-a504-ee1a17430bb7", "88b4ace6-f39b-4b25-a051-8f6dba976833", "96031d77-bbe5-4de3-90d8-1e4e70de8ca8"]
5215      };
5216      if (leaseFilter) {
5217        payload.leaseProperty = !!leaseProperty;
5218      }
5219      var gqlQuery = 'query ($companyId: String, $search: String, $offset: Int, $limit: Int, $propertyStatusId: [String!], $leaseProperty: Boolean) {properties (companyId: $companyId, search: $search, offset: $offset, limit: $limit, propertyStatusId: $propertyStatusId, leaseProperty: $leaseProperty) {items {id name slug fullAddress privateAddress}}}';
5220      return superagent.post(window.luxuryPresence.defaults.routerUrl + '/graphql').send({
5221        query: gqlQuery,
5222        variables: window.luxuryPresence.routerApi.transformVariables('properties', payload)
5223      }).then(function (res) {
5224        var data = res.body.data || {};
5225        var page = data.properties || {};
5226        return page.items || [];
5227      }, function (err) {
5228        return [];
5229      });
5230    }
5231    function doSearch(term, leaseProperty) {
5232      showLoading();
5233      Promise.all([searchMls ? mlsSearch(term, leaseProperty) : [], searchPlaces ? placesSearch(term) : [], searchProperties ? propertiesSearch(term, leaseProperty) : []]).then(function (res) {
5234        if (term !== keyword) {
5235          return;
5236        }
5237        setResults(res[0], res[1], res[2], leaseProperty);
5238      });
5239    }
5240    function makeResultsBlockHtml(title, links) {
5241      if (!links || !links.length) {
5242        return '';
5243      }
5244      var html = '<div class="opening-search__results-block js-results-block">';
5245      html += '<div class="opening-search__results-block-title">';
5246      if (searchNearEnabled) {
5247        html += '<div class="opening-search__search-near-container"><a class="opening-search__search-near lp-link lp-link--light">Search Near Me</a></div>';
5248      }
5249      html += '<div class="opening-search__results-title-label">' + title + '</div></div>';
5250      html += links.join('') + '</div>';
5251      return html;
5252    }
5253    function setResults(mlsResults, placesResults, propertiesResults, leaseProperty) {
5254      clearSelection();
5255      hideLoading();
5256      if (!mlsResults) {
5257        resultsContainer.innerHTML = '';
5258        updateSearchDisplay();
5259        return;
5260      }
5261      if (!mlsResults.length && !placesResults.length && !propertiesResults.length) {
5262        resultsContainer.innerHTML = '<div class="nothing-found">No results found</div>';
5263        updateSearchDisplay();
5264        return;
5265      }
5266      var propertiesHtml = makeResultsBlockHtml('Featured Properties', propertiesResults.map(function (result) {
5267        return `<a href="/properties/${result.slug}" class="opening-search__results-link js-results-link">${result.privateAddress ? result.name : result.fullAddress}</a>`;
5268      }));
5269      var placesHtml = makeResultsBlockHtml('Locations', placesResults.map(function (result) {
5270        return `<a class="opening-search__results-link js-results-link" href="${result.placeUrl}${leaseProperty ? '&lease_property=true' : ''}&cityName=${result.cityName}&stateName=${result.stateName}">${result.description}</a>`;
5271      }));
5272      var mlsHtml = makeResultsBlockHtml('Address', mlsResults.map(function (result) {
5273        return `<a href="/home-search/listings/${result.id}" class="opening-search__results-link js-results-link">${result.display_address}</a>`;
5274      }));
5275      resultsContainer.innerHTML = propertiesHtml + placesHtml + mlsHtml;
5276      updateSearchDisplay();
5277    }
5278    function searchBtnClicked() {
5279      var resultsBlockHref = section.querySelector(".js-results-block .js-results-link").getAttribute("href");
5280      const term = searchInput.value;
5281      if (!term) {
5282        return;
5283      }
5284      if (searchMls) {
5285        try {
5286          var trimmed = term.trim();
5287          if (/^\d{5}$/.test(trimmed)) {
5288            window.location.href = "/home-search/listings?postalcode=" + trimmed + '&search_type=zip';
5289            return;
5290          }
5291        } catch (e) {
5292          console.log(e);
5293        }
5294        window.location.href = resultsBlockHref;
5295        return;
5296      }
5297      if (searchProperties) {
5298        window.location.href = "/properties/sale";
5299      }
5300    }
5301    var neighborhoods = null;
5302    function fetchNeighborhoods() {
5303      var url = window.luxuryPresence.defaults.routerUrl;
5304      var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'neighborhoods (companyId: $companyId, offset: $offset, limit: $limit) {items {id, name, mlsLink, googlePlaceData}}}';
5305      var payload = {};
5306      payload.offset = 0;
5307      payload.limit = 100;
5308      payload.companyId = window.luxuryPresence.defaults.companyId;
5309      return superagent.post(url + '/graphql').withCredentials().send({
5310        query: gqlQuery,
5311        variables: payload
5312      }).then(function (res) {
5313        var data = res.body.data && res.body.data.neighborhoods;
5314        neighborhoods = data && data.items || null;
5315        if (neighborhoods && !neighborhoods.length) {
5316          neighborhoods = null;
5317        }
5318      });
5319    }
5320    function setPredefinedNeighborhoods() {
5321      return fetchNeighborhoods().then(function () {
5322        if (!neighborhoods) {
5323          return;
5324        }
5325        var leaseProperty = leaseFilter && leasePropertyState;
5326        var placesHtml = makeResultsBlockHtml('Locations', neighborhoods.map(function (item) {
5327          return `<a class="opening-search__results-link js-results-link" href="${item.mlsLink}${leaseProperty ? '&lease_property=true' : ''}">${showNeighborhoodNames ? item.name : item.googlePlaceData && item.googlePlaceData.formatted_address || item.name}</a>`;
5328        }));
5329        predefined.innerHTML = placesHtml;
5330        updateSearchDisplay();
5331      });
5332    }
5333    if (showNeighborhoods) {
5334      setPredefinedNeighborhoods();
5335    }
5336    searchInput.addEventListener('focus', showSearchResults);
5337    searchInput.addEventListener('keyup', inputChanged);
5338    searchInput.addEventListener('focus', inputChanged);
5339    searchResults.addEventListener('mouseenter', function (ev) {
5340      if (ev.target.classList.contains('js-results-link')) {
5341        clearSelection();
5342      }
5343    }, true);
5344    searchBtn.addEventListener('click', searchBtnClicked);
5345    if (leaseFalseButton) leaseFalseButton.addEventListener('click', function () {
5346      if (leasePropertyState) {
5347        leasePropertyState = false;
5348        if (showNeighborhoods) {
5349          setPredefinedNeighborhoods();
5350        }
5351        updateSearchDisplay();
5352        setResults(null);
5353        startSearch();
5354      }
5355    });
5356    if (leaseTrueButton) leaseTrueButton.addEventListener('click', function () {
5357      if (!leasePropertyState) {
5358        leasePropertyState = true;
5359        if (showNeighborhoods) {
5360          setPredefinedNeighborhoods();
5361        }
5362        updateSearchDisplay();
5363        setResults(null);
5364        startSearch();
5365      }
5366    });
5367    function outsideClickHandler(e) {
5368      if (searchWrapper.contains(e.target)) {
5369        return;
5370      }
5371      hideSearchResults();
5372    }
5373    document.addEventListener('click', outsideClickHandler);
5374    updateSearchDisplay();
5375  });
5376})('section-c1234c57-c7ef-4bf5-a255-f88b98dbc080', 'undefined');
5377} catch(e) {
5378console.log(e);
5379}
5380                try {
5381(function init(sectionDomId) {
5382  const section = document.getElementById(sectionDomId);
5383  const statsGrid = section.querySelector('.js-stats-list');
5384  const statsItemLength = section.querySelectorAll('.js-stats-list-item').length;
5385  const values = section.querySelectorAll(".js-value");
5386  const arrowsStyle = statsGrid.dataset.arrowsStyle || '';
5387  new Splide(statsGrid, {
5388    type: statsItemLength > 4 ? 'loop' : 'slide',
5389    cloning: statsItemLength > 4 ? true : false,
5390    gap: statsItemLength > 1 ? '16px' : '0px',
5391    perPage: 4,
5392    perMove: 1,
5393    arrows: statsItemLength > 4 ? true : false,
5394    pagination: false,
5395    classes: {
5396      arrow: 'lp-arrow arrow-box',
5397      prev: `lp-arrow--prev lp-arrow--light ${arrowsStyle}`,
5398      next: `lp-arrow--next lp-arrow--light ${arrowsStyle}`
5399    },
5400    breakpoints: {
5401      1025: {
5402        type: statsItemLength > 2 ? 'loop' : 'slide',
5403        arrows: statsItemLength > 2 ? true : false,
5404        cloning: statsItemLength > 2 ? true : false,
5405        perPage: 2
5406      },
5407      769: {
5408        type: statsItemLength > 1 ? 'loop' : 'slide',
5409        arrows: statsItemLength > 1 ? true : false,
5410        cloning: statsItemLength > 1 ? true : false,
5411        perPage: 1
5412      }
5413    }
5414  }).mount();
5415  if (values.length === 0) return;
5416  const duration = 3000;
5417  const step = 50;
5418  const items = [];
5419  let started = false;
5420  let pos = 0;
5421  function analyze() {
5422    values.forEach(function (el) {
5423      const match = el.textContent.match(/^(\D*)(\d(.*\d)?)(.*)$/);
5424      if (match) {
5425        const str = match[2];
5426        let frac = 0;
5427        let fSep = "";
5428        let nmb;
5429        if (!/\..*\./.test(str)) {
5430          const m = str.match(/\.(\d+)$/);
5431          if (m) {
5432            frac = m[1].length;
5433            fSep = ".";
5434            nmb = parseFloat(str.replace(/[^\d\.]/g, ""));
5435          }
5436        }
5437        if (!frac) {
5438          if (!/,.*,/.test(str)) {
5439            const m = str.match(/,(\d+)$/);
5440            if (m) {
5441              frac = m[1].length;
5442              fSep = ",";
5443              nmb = parseFloat(str.replace(",", ".").replace(/[^\d\.]/g, ""));
5444            }
5445          }
5446        }
5447        if (!frac) {
5448          nmb = parseInt(str.replace(/\D/g, ""));
5449        }
5450        items.push({
5451          el: el,
5452          prefix: match[1] || "",
5453          suffix: match[4] || "",
5454          str: match[2],
5455          nmb,
5456          frac,
5457          fSep
5458        });
5459      }
5460    });
5461    if (!items.length) {
5462      started = true;
5463      return;
5464    }
5465  }
5466  function animate() {
5467    if (started) {
5468      return;
5469    }
5470    started = true;
5471    setTimeout(iterate, step);
5472  }
5473  function iterate() {
5474    if (pos >= duration) {
5475      items.forEach(function (item) {
5476        item.el.textContent = item.prefix + item.str + item.suffix;
5477      });
5478    } else {
5479      items.forEach(function (item) {
5480        const valStr = formatValue(item, pos / duration);
5481        item.el.textContent = item.prefix + valStr + item.suffix;
5482      });
5483      pos += step;
5484      setTimeout(iterate, step);
5485    }
5486  }
5487  function formatValue(item, val) {
5488    const str = (item.nmb * val).toFixed(item.frac).replace(/\D/, "");
5489    let i = 0;
5490    let j = 0;
5491    let res = "";
5492    while (i < item.str.length && j < str.length) {
5493      const c = item.str[item.str.length - i - 1];
5494      const code = c.charCodeAt(0);
5495      if (code >= 48 && code <= 57) {
5496        res = str[str.length - j - 1] + res;
5497        j++;
5498      } else {
5499        res = c + res;
5500      }
5501      i++;
5502    }
5503    return res;
5504  }
5505  function calculateVisibility() {
5506    const windowHeight = window.innerHeight;
5507    const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
5508    const sectionOffsetTop = section.offsetTop;
5509    if (windowHeight + scrollTop >= sectionOffsetTop) {
5510      window.removeEventListener("scroll", calculateVisibility);
5511      animate();
5512    }
5513  }
5514  analyze();
5515  if (items.length) {
5516    window.addEventListener("scroll", calculateVisibility);
5517    calculateVisibility();
5518  }
5519})('section-4e9be597-0c57-4cc1-ad9e-26698df89dc9', 'undefined');
5520} catch(e) {
5521console.log(e);
5522}
5523                try {
5524(function init(sectionDomId) {})('section-fba75ce4-28b8-44ae-9e59-29052c7ca6c7', 'undefined');
5525} catch(e) {
5526console.log(e);
5527}
5528                try {
5529(function init(sectionDomId) {})('section-57e3def3-0b54-4364-ba92-3c2da73df25a', 'undefined');
5530} catch(e) {
5531console.log(e);
5532}
5533                try {
5534(function init(sectionDomId) {})('section-94299c24-639b-4cf2-a15f-710c04b9b187', 'undefined');
5535} catch(e) {
5536console.log(e);
5537}
5538                try {
5539(function init(sectionDomId) {
5540  const section = document.getElementById(sectionDomId);
5541  const slider = section.querySelector(".js-slider");
5542  const arrowBtnNext = section.querySelector('.js-arrow--next');
5543  const arrowBtnPrev = section.querySelector('.js-arrow--prev');
5544  const collapsibleText = section.querySelectorAll('.js-collapsible-text');
5545  if (!slider) return;
5546  let itemsAmount;
5547  let timeoutAddAnimation;
5548  let timeoutRemoveAnimation;
5549  let sliderItemsLength = parseInt(slider.dataset.itemsLength) || 0;
5550  const autoplayInterval = Math.max(parseInt(slider.dataset.autoplayInterval) || 5, 1) * 1000;
5551  if (slider.classList.contains('js-two-columns')) {
5552    itemsAmount = 2;
5553  } else if (slider.classList.contains('js-three-columns')) {
5554    itemsAmount = 3;
5555  } else {
5556    itemsAmount = 1;
5557  }
5558  const addCardAnimation = () => {
5559    const notActiveCards = Array.from(slider.querySelectorAll('.splide__slide:not(.is-active)'));
5560    clearTimeout(timeoutAddAnimation);
5561    timeoutAddAnimation = setTimeout(function () {
5562      notActiveCards.forEach(card => {
5563        card.classList.add('not-active');
5564      });
5565    }, 0);
5566  };
5567  const removeCardAnimation = () => {
5568    const allCards = Array.from(slider.querySelectorAll('.splide__slide'));
5569    clearTimeout(timeoutRemoveAnimation);
5570    timeoutRemoveAnimation = setTimeout(function () {
5571      allCards.forEach(card => {
5572        card.classList.remove('not-active');
5573      });
5574    }, 0);
5575  };
5576  var splide = new Splide(slider, {
5577    type: sliderItemsLength > 3 ? 'loop' : 'slide',
5578    perPage: itemsAmount,
5579    perMove: 1,
5580    autoplay: sliderItemsLength > 3 ? true : false,
5581    interval: autoplayInterval,
5582    pauseOnHover: true,
5583    speed: 1000,
5584    arrows: false,
5585    pagination: false,
5586    gap: "16px",
5587    breakpoints: {
5588      1024: {
5589        perPage: 1,
5590        gap: "24px"
5591      }
5592    }
5593  });
5594  if (arrowBtnNext && arrowBtnPrev) {
5595    arrowBtnNext.addEventListener('click', e => {
5596      splide.go('+1');
5597    });
5598    arrowBtnPrev.addEventListener('click', e => {
5599      splide.go('-1');
5600    });
5601  }
5602  splide.on('ready', () => {
5603    addCardAnimation();
5604  });
5605  splide.mount();
5606  splide.on('move', () => {
5607    removeCardAnimation();
5608    const expandedText = section.querySelectorAll('.js-collapsible-text:not(.collapsed)');
5609    Array.from(expandedText).forEach(el => {
5610      const readMore = el.querySelector('.read-more');
5611      if (readMore) readMore.click();
5612    });
5613  });
5614  splide.on('moved', () => {
5615    addCardAnimation();
5616  });
5617  const collapsibleTexts = document.getElementById(`${sectionDomId}`).getElementsByClassName('js-collapsible-text');
5618  const createCollapsibleText = node => {
5619    const minCharacters = node.dataset.minCharacters;
5620    const maxCharacters = node.dataset.maxCharacters;
5621    const linkStyle = node.dataset.linkStyle;
5622    node.classList.add("visible");
5623    const getParagraph = (paragraph, currentLength) => {
5624      let newParagraph = document.createTextNode("");
5625      const paragraphText = paragraph.textContent;
5626      const start = minCharacters - currentLength;
5627      const end = paragraphText.substring(start).search(/[.!?]/);
5628      newParagraph.textContent = paragraphText.substring(0, start + end + 1);
5629      return newParagraph;
5630    };
5631    const visibleLength = n => (n.textContent || '').replace(/\s+/g, ' ').trim().length;
5632    const getCollapsedNode = (node, currentLength) => {
5633      let textLen = visibleLength(node);
5634      let newNode;
5635      if (currentLength + textLen < maxCharacters) {
5636        newNode = node.cloneNode(true);
5637        currentLength += textLen;
5638      } else {
5639        newNode = node.cloneNode(false);
5640        let i = 0;
5641        while (currentLength < minCharacters && i < node.childNodes.length) {
5642          let childNode = node.childNodes[i];
5643          if (childNode.nodeType !== Node.TEXT_NODE) {
5644            const result = getCollapsedNode(childNode, currentLength);
5645            newNode.appendChild(result.node);
5646            currentLength = result.length;
5647          } else {
5648            if (currentLength + childNode.textContent.length > minCharacters) {
5649              let newText;
5650              if (currentLength + childNode.textContent.length < maxCharacters) {
5651                newText = childNode.cloneNode();
5652              } else {
5653                newText = getParagraph(childNode, currentLength);
5654              }
5655              newNode.appendChild(newText);
5656              currentLength += newText.length;
5657            } else {
5658              let str = childNode.textContent;
5659              if (str.replace(/\s/g, '').length) {
5660                newNode.appendChild(childNode.cloneNode());
5661                currentLength += childNode.length;
5662              }
5663            }
5664          }
5665          i++;
5666        }
5667      }
5668      return {
5669        node: newNode,
5670        length: currentLength
5671      };
5672    };
5673    const createButton = (node, linkStyle) => {
5674      const expandBtn = document.createElement('a');
5675      expandBtn.classList.add("link");
5676      expandBtn.classList.add("lp-link");
5677      expandBtn.classList.add("read-more");
5678      if (linkStyle) expandBtn.classList.add(linkStyle);
5679      expandBtn.innerHTML = "<span class='read-more__more'>Read More</span><span class='read-more__less'>Read Less</span>";
5680      expandBtn.addEventListener("click", () => {
5681        const isExpanded = !node.classList.contains('collapsed');
5682        node.classList.toggle('collapsed');
5683        if (isExpanded) {
5684          node.scrollIntoView({
5685            behavior: 'smooth',
5686            block: 'start'
5687          });
5688        }
5689      });
5690      return expandBtn;
5691    };
5692    if (visibleLength(node) > maxCharacters) {
5693      const {
5694        node: collapsedNode
5695      }
5695 = getCollapsedNode(node, 0);
5696      const fullText = document.createElement('div');
5697      fullText.innerHTML = node.innerHTML;
5698      const shortText = document.createElement('div');
5699      shortText.innerHTML = collapsedNode.innerHTML;
5700      node.innerHTML = "";
5701      const textWrap = document.createElement('div');
5702      textWrap.classList.add("text-wrap");
5703      textWrap.append(fullText);
5704      textWrap.append(shortText);
5705      node.append(textWrap);
5706      fullText.classList.add("full");
5707      shortText.classList.add("short");
5708      node.append(createButton(node, linkStyle));
5709      node.classList.add("collapsible");
5710      node.classList.add("collapsed");
5711      const updateHeights = () => {
5712        node.style.setProperty('--fullHeight', fullText.offsetHeight + "px");
5713        node.style.setProperty('--shortHeight', shortText.offsetHeight + "px");
5714      };
5715      updateHeights();
5716      window.addEventListener('resize', updateHeights);
5717      if (document.fonts && document.fonts.ready) {
5718        document.fonts.ready.then(updateHeights);
5719      }
5720      if (document.readyState === 'complete') {
5721        updateHeights();
5722      } else {
5723        window.addEventListener('load', updateHeights, {
5724          once: true
5725        });
5726      }
5727      textWrap.querySelectorAll('img').forEach(img => {
5728        if (!img.complete) {
5729          img.addEventListener('load', updateHeights, {
5730            once: true
5731          });
5732          img.addEventListener('error', updateHeights, {
5733            once: true
5734          });
5735        }
5736      });
5737    }
5738  };
5739  [].forEach.call(collapsibleTexts, createCollapsibleText);
5740  ;
5741})('section-c8a0ad1c-794d-403e-bb62-eb33fbb26159', JSON.parse("{\"resource\":\"testimonials\",\"useRouterApi\":true,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"6382308c-8bfc-4993-9f82-aceab30cdb9f\",\"usePageResource\":false,\"sectionIndex\":6}"));
5742} catch(e) {
5743console.log(e);
5744}
5745                try {
5746(function init(sectionDomId) {
5747  const section = document.getElementById(sectionDomId);
5748  const cardDetails = section.querySelectorAll('.js-card__details');
5749  const slider = section.querySelector('.js-slider');
5750  const cards = section.querySelectorAll('.js-card');
5751  const arrowBtnNext = section.querySelector('.js-arrow--next');
5752  const arrowBtnPrev = section.querySelector('.js-arrow--prev');
5753  const updateFeaturesHeight = () => {
5754    cardDetails.forEach(element => {
5755      const cardFeatures = element.querySelector('.js-card__features');
5756      if (element && cardFeatures) element.style.setProperty('--features-height', `${cardFeatures.offsetHeight}px`);
5757    });
5758  };
5759  if (cardDetails.length > 0) updateFeaturesHeight();
5760  const splide = new Splide(slider, {
5761    rewind: true,
5762    autoHeight: true,
5763    arrows: false,
5764    type: 'fade',
5765    clones: 1,
5766    pagination: false,
5767    grid: {
5768      rows: 3,
5769      cols: 1
5770    },
5771    breakpoints: {
5772      560: {
5773        grid: false
5774      }
5775    }
5776  });
5777  if (cards.length > 3) {
5778    arrowBtnNext.addEventListener('click', e => {
5779      splide.go('+1');
5780    });
5781    arrowBtnPrev.addEventListener('click', e => {
5782      splide.go('-1');
5783    });
5784  }
5785  splide.mount({
5786    Grid: window.splide.Extensions.Grid
5787  });
5788})('section-9e23a9b4-f0cc-44ed-89e4-471e9a166f0f', JSON.parse("{\"resource\":\"properties\",\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"6382308c-8bfc-4993-9f82-aceab30cdb9f\",\"usePageResource\":false,\"sectionIndex\":7}"));
5789} catch(e) {
5790console.log(e);
5791}
5792                try {
5793(function init(sectionDomId) {
5794  const section = document.getElementById(sectionDomId);
5795  const showCats = section.querySelector('.js-main-container').dataset.showCats === 'true';
5796  const cardLayout = section.querySelector('.js-main-container').dataset.cardLayout;
5797  const fullWidthSlider = section.querySelector('.js-main-container').dataset.fullWidthSlider === 'true';
5798  const imagesSlider = section.querySelector('.js-images-slider');
5799  const listSlider = section.querySelector('.js-list-slider');
5800  const prevArrow = section.querySelector('.lp-arrow--prev');
5801  const nextArrow = section.querySelector('.lp-arrow--next');
5802  const tabsSlider = section.querySelector('.js-tabs-slider');
5803  const tabs = section.querySelector('.js-tabs');
5804  const listItems = listSlider.querySelectorAll('.js-list-item');
5805  const cardItems = imagesSlider.querySelectorAll('.js-card');
5806  const arrows = section.querySelector('.js-arrows');
5807  const cards = cardLayout === "Multiple" ? fullWidthSlider ? 3 : 2.3 : 1;
5808  var mainSlider = new Splide(imagesSlider, {
5809    type: cardLayout === "Multiple" ? 'loop' : 'fade',
5810    clones: 2,
5811    perPage: cards,
5812    perMove: 1,
5813    rewind: true,
5814    autoHeight: true,
5815    height: 'auto',
5816    pagination: false,
5817    arrows: false,
5818    breakpoints: {
5819      1024: {
5820        perPage: cardLayout === "Multiple" ? 2.3 : 1
5821      },
5822      560: {
5823        perPage: cardLayout === "Multiple" ? 1.3 : 1
5824      }
5825    }
5826  }).mount();
5827  prevArrow.addEventListener('click', function () {
5828    mainSlider.go('<');
5829  });
5830  nextArrow.addEventListener('click', function () {
5831    mainSlider.go('>');
5832  });
5833  var thumbnailSlider = new Splide(listSlider, {
5834    fixedHeight: 65,
5835    height: 455,
5836    rewind: true,
5837    pagination: false,
5838    cover: true,
5839    isNavigation: true,
5840    direction: 'ttb',
5841    arrows: false,
5842    perPage: 7,
5843    breakpoints: {
5844      1025: {
5845        perPage: 5,
5846        perMove: 1,
5847        height: 'auto',
5848        direction: 'ltr',
5849        autoWidth: true,
5850        fixedHeight: 'auto'
5851      }
5852    }
5853  }).mount();
5854  mainSlider.sync(thumbnailSlider);
5855  if (!showCats) return;
5856  const categories = new Set();
5857  Array.from(listSlider.querySelectorAll('.js-list-item')).forEac
5857h(item => {
5858    if (item.dataset.tags.length > 0) {
5859      item.dataset.tags.split(',').forEach(cat => categories.add(cat));
5860    }
5861  });
5862  let cats = '';
5863  Array.from(categories).forEach(cat => {
5864    cats += `<li class="neighborhoods-slider__tab splide__slide js-tab" data-category="${cat}">${cat}</li>`;
5865  });
5866  tabs.innerHTML = cats;
5867  if (categories.size > 0) {
5868    var catsSlider = new Splide(tabsSlider, {
5869      pagination: false,
5870      arrows: false,
5871      perPage: 5,
5872      perMove: 1,
5873      autoWidth: true,
5874      fixedHeight: 'auto',
5875      breakpoints: {
5876        561: {
5877          perPage: 3,
5878          perMove: 1
5879        }
5880      }
5881    }).mount();
5882    const {
5883      Slides: thumbnailSlides
5884    } = thumbnailSlider.Components;
5885    const {
5886      Slides: mainSlides
5887    } = mainSlider.Components;
5888    tabs.addEventListener('click', function (e) {
5889      let filteredSlides = [];
5890      let filteredCards = [];
5891      Array.from(section.querySelectorAll('.js-tab')).forEach(tab => {
5892        tab.classList.remove('neighborhoods-slider__tab--active');
5893      });
5894      if (e.target.classList.contains('js-tab')) {
5895        e.target.classList.add('neighborhoods-slider__tab--active');
5896        const cat = e.target.dataset.category;
5897        filteredSlides = Array.from(listItems).filter(item => {
5898          if (item.dataset.tags.includes(cat)) return item;
5899        });
5900        filteredCards = Array.from(cardItems).filter(item => {
5901          if (item.dataset.tags.includes(cat)) return item;
5902        });
5903        thumbnailSlides.remove('.js-list-item');
5904        mainSlides.remove('.js-card');
5905        mainSlides.add(filteredCards);
5906        if (filteredCards.length < 2) {
5907          mainSlider.options = {
5908            clones: 0
5909          };
5910          imagesSlider.querySelector('.js-card')?.classList.add('neighborhoods-slider__card--single');
5911        } else {
5912          mainSlider.options = {
5913            clones: 2
5914          };
5915        }
5916        thumbnailSlides.add(filteredSlides);
5917        if (filteredSlides.length < 2) {
5918          arrows.setAttribute('hidden', true);
5919        } else {
5920          arrows.removeAttribute('hidden', false);
5921        }
5922      }
5923    });
5924    section.querySelector('.js-tab').click();
5925  }
5926})('section-fb7349af-e14f-467a-9daf-07d33ead2bb9', JSON.parse("{\"resource\":\"neighborhoods\",\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"6382308c-8bfc-4993-9f82-aceab30cdb9f\",\"usePageResource\":false,\"sectionIndex\":8}"));
5927} catch(e) {
5928console.log(e);
5929}
5930                try {
5931(function init(sectionDomId) {
5932  const _section = document.getElementById(sectionDomId);
5933  const homeValuation = _section.querySelector('.js-home-valuation');
5934  const titleColor = getComputedStyle(homeValuation).getPropertyValue('--titleColor');
5935  const mapSelector = _section.querySelector('.js-home-valuation-map');
5936  const inputAddress = _section.querySelector('.js-address');
5937  const btnContinue = _section.querySelector('.js-btn');
5938  const form = _section.querySelector('.js-form');
5939  const message = _section.querySelector('.js-message');
5940  const timeFrameSelect = _section.querySelector('.js-time-frame');
5941  const redirectLink = _section.querySelector('.js-redirect-link');
5942  const defaultMapCenter = {
5943    lat: 34.030909,
5944    lng: -118.463927
5945  };
5946  const addRedirectToForm = () => {
5947    const redirectLink = document.getElementById(`${sectionDomId}`).querySelector('.js-redirect-link');
5948    const form = document.getElementById(`${sectionDomId}`).querySelector('.js-form');
5949    function redirectPage(link) {
5950      if (link) {
5951        const rawHref = link.getAttribute('href');
5952        link.setAttribute('href', setHttp(rawHref));
5953        link.click();
5954      }
5955    }
5956    function setHttp(link) {
5957      if (link.search(/^http[s]?\:\/\/|\//) == -1) {
5958        link = 'http://' + link;
5959      }
5960      return link;
5961    }
5962    form.addEventListener("reset", function () {
5963      redirectPage(redirectLink);
5964    });
5965  };
5966  addRedirectToForm();
5967  ;
5968  const customDropdownHTML = `
5969  <div class="custom-select" role="presentation">
5970    <button class="custom-select-toggle" type="button" aria-haspopup="true" aria-expanded="false" role="combobox"></button>
5971    <div class="custom-select-menu"><div class="custom-select-content"></div></div>
5972  </div>`;
5973  const hideOriginalSelect = originalSelect => {
5974    originalSelect.classList.remove(...originalSelect.classList);
5975    originalSelect.classList.add("sr-only");
5976  };
5977  const openCustomSelect = customSelectToggle => {
5978    let customSelectMenu = customSelectToggle.nextElementSibling;
5979    customSelectMenu.classList.add("open");
5980    customSelectToggle.classList.add("open");
5981    customSelectToggle.ariaExpanded = true;
5982  };
5983  const closeCustomSelect = customSelectToggle => {
5984    let customSelectMenu = customSelectToggle.nextElementSibling;
5985    customSelectMenu.classList.remove("open");
5986    customSelectToggle.classList.remove("open");
5987    customSelectToggle.ariaExpanded = false;
5988  };
5989  const inheritAttributes = (originalSelect, customSelectToggle, customSelectMenu) => {
5990    customSelectToggle.className = customSelectToggle.className.concat(' ', originalSelect.className);
5991    customSelectToggle.id = originalSelect.getAttribute("id") + "custom";
5992    customSelectToggle.dataset.name = originalSelect.getAttribute("name");
5993    customSelectMenu.setAttribute("aria-labelledby", customSelectToggle.id);
5994  };
5995  const initiateQuerySelectors = customSelect => {
5996    let customSelectToggle = customSelect.querySelector('.custom-select-toggle'),
5997      customSelectMenu = customSelect.querySelector('.custom-select-menu'),
5998      customSelectContent = customSelect.querySelector('.custom-select-content');
5999    return {
6000      customSelectToggle,
6001      customSelectMenu,
6002      customSelectContent
6003    };
6004  };
6005  const initiateToggleText = (originalSelect, customSelectToggle) => {
6006    const dataLabelOption = originalSelect.querySelector("[data-label]");
6007    const isMultiple = originalSelect?.multiple;
6008    if (!isMultiple) {
6009      const toggleText = dataLabelOption && dataLabelOption.dataset.label || originalSelect.querySelector(":checked")?.textContent || originalSelect.querySelector("option")?.textContent;
6010      customSelectToggle.classList.add("is-placeholder");
6011      customSelectToggle.innerHTML = toggleText;
6012    } else {
6013      const placeholderText = dataLabelOption && dataLabelOption.dataset.label || originalSelect.querySelector("option")?.textContent || "Select";
6014      const selectedOptions = Array.from(originalSelect.querySelectorAll("option:checked")).filter(opt => opt.value !== "");
6015      if (selectedOptions.length === 0) {
6016        customSelectToggle.innerHTML = placeholderText;
6017        customSelectToggle.classList.add("is-placeholder");
6018      } else if (selectedOptions.length === 1) {
6019        customSelectToggle.innerHTML = selectedOptions[0].textContent;
6020        customSelectToggle.classList.remove("is-placeholder");
6021      } else {
6022        customSelectToggle.innerHTML = `${selectedOptions[0].textContent} +${selectedOptions.length - 1}`;
6023        customSelectToggle.classList.remove("is-placeholder");
6024      }
6025    }
6026  };
6027  const convertOptionsToButtons = (originalSelect, customSelectContent) => {
6028    originalSelect.querySelectorAll('option').forEach(option => {
6029      const button = createButtonFromOption(option);
6030      customSelectContent.appendChild(button);
6031    });
6032  };
6033  const createButtonFromOption = option => {
6034    let button = document.createElement('button');
6035    button.className = "custom-select-item";
6036    button.setAttribute("role", "option");
6037    button.setAttribute("type", "button");
6038    button.textContent = option.textContent;
6039    button.setAttribute('value', option.value);
6040    if (option.disabled) {
6041      button.setAttribute("disabled", "true");
6042    }
6043    if (option.selected && option.value !== "") {
6044      button.classList.add("is-selected");
6045      button.setAttribute("aria-selected", "true");
6046    }
6047    return button;
6048  };
6049  const initiateEventListeners = (originalSelect, customSelectToggle, customSelectMenu) => {
6050    const isMultiple = originalSelect?.multiple;
6051    originalSelect.addEventListener("focus", function () {
6052      openCustomSelect(customSelectToggle);
6053      customSelectToggle.focus();
6054    });
6055    customSelectToggle.addEventListener("click", function () {
6056      if (customSelectToggle.getAttribute("aria-expanded") === "true") {
6057        closeCustomSelect(customSelectToggle);
6058      } else {
6059        openCustomSelect(customSelectToggle);
6060      }
6061    });
6062    customSelectMenu.addEventListener("click", function (event) {
6063      if (event.target.classList.contains('custom-select-item')) {
6064        const clickedValue = event.target.value;
6065        const clickedOption = originalSelect.querySelector(`option[value="${clickedValue}"]`);
6066        const placeholderOption = originalSelect.querySelector("[data-label]");
6067        const placeholderText = placeholderOption?.dataset.label || originalSelect.querySelector("option")?.textContent || "Select";
6068        if (!isMultiple) {
6069          let opts = customSelectMenu.querySelectorAll(".is-selected");
6070          [].forEach.call(opts, function (el) {
6071            el.classList.remove("is-selected");
6072          });
6073          event.target.classList.add("is-selected");
6074          clickedOption.selected = true;
6075          customSelectToggle.innerHTML = clickedOption.textContent;
6076          if (clickedValue === "" || event.target.classList.contains("is-placeholder")) {
6077            customSelectToggle.classList.add("is-placeholder");
6078          } else {
6079            customSelectToggle.classList.remove("is-placeholder");
6080          }
6081          let changeEvent = new Event('change', {
6082            bubbles: true
6083          });
6084          originalSelect.dispatchEvent(changeEvent);
6085          closeCustomSelect(customSelectToggle);
6086        } else {
6087          if (clickedValue === "") {
6088            customSelectMenu.querySelectorAll(".is-selected").forEach(el => {
6089              el.classList.remove("is-selected");
6090              el.setAttribute("aria-selected", "false");
6091            });
6092            originalSelect.querySelectorAll("option").forEach(opt => opt.selected = false);
6093            customSelectToggle.innerHTML = placeholderText;
6094            customSelectToggle.classList.add("is-placeholder");
6095          } else {
6096            const isCurrentlySelected = event.target.classList.contains("is-selected");
6097            event.target.classList.toggle("is-selected");
6098            event.target.setAttribute("aria-selected", (!isCurrentlySelected).toString());
6099            clickedOption.selected = !isCurrentlySelected;
6100            const allItem = customSelectMenu.querySelector('.custom-select-item[value=""]');
6101            if (allItem) {
6102              allItem.classList.remove("is-selected");
6103              allItem.setAttribute("aria-selected", "false");
6104            }
6105            const allOption = originalSelect.querySelector('option[value=""]');
6106            if (allOption) allOption.selected = false;
6107            const selectedItems = customSelectMenu.querySelectorAll(".custom-select-item.is-selected");
6108            if (selectedItems.length === 0) {
6109              customSelectToggle.innerHTML = placeholderText;
6110              customSelectToggle.classList.add("is-placeholder");
6111            } else if (selectedItems.length === 1) {
6112              customSelectToggle.innerHTML = selectedItems[0].textContent;
6113              customSelectToggle.classList.remove("is-placeholder");
6114            } else {
6115              customSelectToggle.innerHTML = `${selectedItems[0].textContent} +${selectedItems.length - 1}`;
6116              customSelectToggle.classList.remove("is-placeholder");
6117            }
6118          }
6119          let changeEvent = new Event('change', {
6120            bubbles: true
6121          });
6122          originalSelect.dispatchEvent(changeEvent);
6123        }
6124      }
6125    });
6126    document.addEventListener("click", function (event) {
6127      if (!customSelectMenu.contains(event.target) && !customSelectToggle.contains(event.target)) {
6128        closeCustomSelect(customSelectToggle);
6129      }
6130    });
6131  };
6132  const createCustomSelect = originalSelect => {
6133    const customSelect = document.createElement('div');
6134    customSelect.innerHTML = customDropdownHTML;
6135    const {
6136      customSelectToggle,
6137      customSelectMenu,
6138      customSelectContent
6139    } = initiateQuerySelectors(customSelect);
6140    inheritAttributes(originalSelect, customSelectToggle, customSelectMenu);
6141    hideOriginalSelect(originalSelect);
6142    initiateToggleText(originalSelect, customSelectToggle);
6143    convertOptionsToButtons(originalSelect, customSelectContent);
6144    initiateEventListeners(originalSelect, customSelectToggle, customSelectMenu);
6145    return customSelect;
6146  };
6147  const setCustomSelectValue = (originalSelect, value) => {
6148    let customSelect = originalSelect.nextElementSibling;
6149    let customSelectToggle = customSelect.querySelector(".custom-select-toggle");
6150    let customSelectContent = customSelect.querySelector(".custom-select-content");
6151    if (!customSelectContent) return;
6152    let selectedOption = value ? Array.from(customSelectContent.children).find(function (b) {
6153      return b.value === value;
6154    }) : customSelectContent.firstChild;
6155    if (!selectedOption) {
6156      return;
6157    }
6158    if (selectedOption.classList.contains("is-disabled")) return;
6159    let elementNumber = Array.from(selectedOption.parentNode.children).indexOf(selectedOption);
6160    let linkedOption = originalSelect.querySelectorAll("option")[elementNumber];
6161    linkedOption.selected = true;
6162    selectedOption.classList.add("is-selected");
6163    selectedOption.parentNode.querySelectorAll(".custom-select-item").forEach(el => {
6164      if (el !== selectedOption) {
6165        el.classList.remove("is-selected");
6166      }
6167    });
6168    closeCustomSelect(customSelectToggle);
6169    customSelectToggle.innerHTML = linkedOption.innerHTML;
6170    if (linkedOption.value) {
6171      customSelectToggle.classList.remove("is-placeholder");
6172      if (linkedOption.value !== "") {
6173        customSelect.classList.add("has-selection");
6174      } else {
6175        customSelect.classList.remove("has-selection");
6176      }
6177    } else {
6178      customSelect.classList.remove("has-selection");
6179      customSelectToggle.classList.add("is-placeholder");
6180    }
6181  };
6182  const customSelect = originalSelect => {
6183    const customSelect = createCustomSelect(originalSelect);
6184    originalSelect.insertAdjacentElement('afterend', customSelect);
6185    return customSelect;
6186  };
6187  const resetCustomSelect = originalSelect => {
6188    const customSelectEl = originalSelect.nextElementSibling;
6189    const customSelectToggle = customSelectEl?.querySelector('.custom-select-toggle');
6190    const customSelectContent = customSelectEl?.querySelector('.custom-select-content');
6191    if (!customSelectToggle || !customSelectContent) return;
6192    const placeholderOption = originalSelect.querySelector("[data-label]");
6193    const placeholderText = placeholderOption?.dataset.label || originalSelect.querySelector("option")?.textContent || "Select";
6194    customSelectContent.querySelectorAll('.custom-select-item').forEach(item => {
6195      item.classList.remove('is-selected');
6196      item.setAttribute('aria-selected', 'false');
6197    });
6198    originalSelect.querySelectorAll('option').forEach(opt => opt.selected = false);
6199    customSelectToggle.innerHTML = placeholderText;
6200    customSelectToggle.classList.add('is-placeholder');
6201    const customSelectWrapper = customSelectEl.querySelector('.custom-select');
6202    if (customSelectWrapper) {
6203      customSelectWrapper.classList.remove('has-selection');
6204    }
6205  };
6206  var dropdownCss = `
6207    .pac-container {
6208      padding: 24px 32px;
6209      background-color: #fff;
6210      border-radius: 4px;
6211    }
6212    .pac-item {
6213      border: 0;
6214      padding-bottom: 4px;
6215      font-family: var(--lp-body-font-family);
6216      font-size: 1rem;
6217      color: var(--lp-color-gray-300);
6218    }
6219    .pac-item:hover, 
6220    .pac-item:hover .pac-item-query,
6221    .pac-item:hover .pac-matched {
6222      color: #D2A984 };
6223    }
6224    .pac-item .pac-item-query {
6225      font-size: 1rem;
6226      color: var(--lp-color-gray-700);
6227    }
6228    .pac-item .pac-matched {
6229      color: var(--lp-color-gray-700);
6230      font-weight: 700;
6231    }
6232    .pac-icon {
6233      display: none;
6234    }
6235  `;
6236  var head = document.head || document.getElementsByTagName('head')[0];
6237  var style = document.createElement('style');
6238  head.appendChild(style);
6239  style.appendChild(document.createTextNode(dropdownCss));
6240  function handleDisplayMap() {
6241    if (inputAddress.value === '') {
6242      mapSelector.style.display = 'none';
6243      return;
6244    }
6245    mapSelector.style.display = 'block';
6246  }
6247  inputAddress.addEventListener('input', window.luxuryPresence.debounce(handleDisplayMap, 200));
6248  let addressValidated = false;
6249  const errorMessage = document.createElement('div');
6250  errorMessage.className = 'address-error-message';
6251  errorMessage.style.cssText = 'color: #dc3545; font-size: 12px; display: none; text-align: start; margin-top: 4px;';
6252  errorMessage.textContent = 'Please enter a valid home address';
6253  const comboInput = inputAddress.closest('.lp-combo-input');
6254  if (comboInput) {
6255    comboInput.appendChild(errorMessage);
6256  } else {
6257    inputAddress.parentNode.insertBefore(errorMessage, inputAddress.nextSibling);
6258  }
6259  inputAddress.addEventListener('input', function () {
6260    addressValidated = false;
6261    btnContinue.disabled = true;
6262    errorMessage.style.display = 'none';
6263  });
6264  window.luxuryPresence.mapApiLoader.load().then(() => {
6265    const map = new google.maps.Map(mapSelector, {
6266      center: defaultMapCenter,
6267      zoom: 14
6268    });
6269    const marker = new google.maps.Marker({
6270      position: defaultMapCenter,
6271      map: map
6272    });
6273    const autocompleteOptions = {
6274      types: ["geocode"],
6275      fields: ["geometry", "address_components", "formatted_address"]
6276    };
6277    const autocomplete = new google.maps.places.Autocomplete(inputAddress, autocompleteOptions);
6278    function onPlaceChanged() {
6279      const place = autocomplete.getPlace();
6280      if (!place || !place.address_components) {
6281        addressValidated = false;
6282        btnContinue.disabled = true;
6283        errorMessage.style.display = 'block';
6284        return;
6285      }
6286      const geometry = place.geometry;
6287      const inputAddressVal = inputAddress.value;
6288      const addressComponents = place.address_components || [];
6289      const hasStreetNumber = addressComponents.some(function (comp) {
6290        return comp.types && comp.types.includes('street_number');
6291      });
6292      if (!hasStreetNumber) {
6293        addressValidated = false;
6294        btnContinue.disabled = true;
6295        errorMessage.style.display = 'block';
6296        return;
6297      }
6298      errorMessage.style.display = 'none';
6299      addressValidated = true;
6300      btnContinue.disabled = false;
6301      if (geometry) {
6302        map.panTo(geometry.location);
6303        map.setZoom(14);
6304        marker.setPosition(geometry.location);
6305        return;
6306      }
6307      inputAddress.placeholder = "Enter an address";
6308    }
6309    autocomplete.addListener('place_changed', onPlaceChanged);
6310  });
6311  timeFrameSelect.addEventListener('change', () => {
6312    message.value = inputAddress.value;
6313  });
6314  function showStep(nextStep) {
6315    const tabs = _section.querySelectorAll('.js-home-valuation-tabs');
6316    const stepContents = _section.querySelectorAll('.home-valuation-step');
6317    tabs.forEach((tab, index) => {
6318      if (index === nextStep - 1) {
6319        tab.classList.add('home-valuation__tab--active');
6320      } else {
6321        tab.classList.remove('home-valuation__tab--active');
6322      }
6323    });
6324    stepContents.forEach(stepContent => {
6325      if (stepContent.classList.contains('js-home-valuation-step--' + nextStep)) {
6326        stepContent.classList.add('home-valuation-step--active');
6327      } else {
6328        stepContent.classList.remove('home-valuation-step--active');
6329      }
6330    });
6331  }
6332  btnContinue.addEventListener('click', function (e) {
6333    if (!addressValidated) {
6334      e.preventDefault();
6335      errorMessage.style.display = 'block';
6336      return;
6337    }
6338    if (window.luxuryPresence.redirects.checkHstRedirect(inputAddress.value)) return;
6339    showStep(2);
6340  });
6341  const submitBtn = form.querySelector('button[type="submit"]');
6342  const originalBtnText = submitBtn ? submitBtn.textContent : '';
6343  form.addEventListener('submit', function () {
6344    if (submitBtn) {
6345      submitBtn.disabled = true;
6346      submitBtn.textContent = 'Loading...';
6347    }
6348  });
6349  form.addEventListener('formsubmitted', () => {
6350    if (submitBtn) {
6351      submitBtn.disabled = false;
6352      submitBtn.textContent = originalBtnText;
6353    }
6354    if (redirectLink) showStep(1);else showStep(3);
6355  });
6356  form.addEventListener('formsubmiterror', function () {
6357    if (submitBtn) {
6358      submitBtn.disabled = false;
6359      submitBtn.textContent = originalBtnText;
6360    }
6361  });
6362  form.addEventListener("reset", function () {
6363    addressValidated = false;
6364    errorMessage.style.display = 'none';
6365    btnContinue.disabled = true;
6366  });
6367  var presetAddress = window.luxuryPresence.pagination.getParameterByName('address');
6368  if (presetAddress) {
6369    inputAddress.value = presetAddress;
6370  }
6371  _section.querySelectorAll('select').forEach(function (selectElement) {
6372    customSelect(selectElement);
6373  });
6374})('section-0cae3508-3cc4-48dc-9582-6f81a06f07fb', JSON.parse("{\"resource\":\"NONE\",\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"6382308c-8bfc-4993-9f82-aceab30cdb9f\",\"usePageResource\":false,\"sectionIndex\":9}"));
6375} catch(e) {
6376console.log(e);
6377}
6378                try {
6379(function init(sectionDomId) {
6380  const section = document.getElementById(sectionDomId);
6381  const slider = section.querySelector('.js-slider');
6382  const arrowBtnNext = section.querySelector('.js-arrow--next');
6383  const arrowBtnPrev = section.querySelector('.js-arrow--prev');
6384  const layout = slider.dataset.layout;
6385  const autoscroll = slider.dataset.autoscroll === 'true';
6386  const autoscrollInterval = (parseInt(slider.dataset.autoscrollInterval, 10) || 6) * 1000;
6387  const slideCount = slider.querySelectorAll('.splide__list > .splide__slide').length;
6388  const perView = Number(layout) || 1;
6389  const hasEnoughSlides = slideCount > perView;
6390  var splide = new Splide(slider, {
6391    rewind: true,
6392    arrows: false,
6393    type: layout > 2 ? 'fade' : hasEnoughSlides ? 'loop' : 'slide',
6394    clones: 1,
6395    pagination: false,
6396    autoHeight: true,
6397    autoplay: autoscroll && hasEnoughSlides,
6398    interval: autoscrollInterval,
6399    autoScroll: false,
6400    perMove: 1,
6401    grid: {
6402      rows: layout > 2 ? layout : 1,
6403      cols: layout == '2' ? 2 : 1
6404    },
6405    breakpoints: {
6406      768: {
6407        grid: {
6408          rows: layout,
6409          cols: 1
6410        }
6411      }
6412    }
6413  });
6414  if (arrowBtnNext || arrowBtnPrev) {
6415    arrowBtnNext.addEventListener('click', e => {
6416      splide.go('+1');
6417    });
6418    arrowBtnPrev.addEventListener('click', e => {
6419      splide.go('-1');
6420    });
6421  }
6422  splide.mount(window.splide.Extensions);
6423})('section-346316c9-a364-46cc-8a36-f6113f1201e3', JSON.parse("{\"resource\":\"posts\",\"useRouterApi\":true,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"6382308c-8bfc-4993-9f82-aceab30cdb9f\",\"usePageResource\":false,\"sectionIndex\":10}"));
6424} catch(e) {
6425console.log(e);
6426}
6427                try {
6428(function init(sectionDomId) {
6429  var $contactForm = document.querySelector("#" + sectionDomId + " .js-form");
6430  var $inputName = $contactForm.querySelector('input[name="name"]');
6431  $inputName?.addEventListener("keyup", function () {
6432    if (this.value.replaceAll(/\d/g, "").trim() === "") {
6433      this.setCustomValidity("Please enter your name.");
6434    } else {
6435      this.setCustomValidity("");
6436    }
6437  });
6438  const addRedirectToForm = () => {
6439    const redirectLink = document.getElementById(`${sectionDomId}`).querySelector('.js-redirect-link');
6440    const form = document.getElementById(`${sectionDomId}`).querySelector('.js-form');
6441    function redirectPage(link) {
6442      if (link) {
6443        const rawHref = link.getAttribute('href');
6444        link.setAttribute('href', setHttp(rawHref));
6445        link.click();
6446      }
6447    }
6448    function setHttp(link) {
6449      if (link.search(/^http[s]?\:\/\/|\//) == -1) {
6450        link = 'http://' + link;
6451      }
6452      return link;
6453    }
6454    form.addEventListener("reset", function () {
6455      redirectPage(redirectLink);
6456    });
6457  };
6458  addRedirectToForm();
6459  ;
6460})('section-2c090225-3f15-4437-9733-8b420503d690', 'undefined');
6461} catch(e) {
6462console.log(e);
6463}
6464                try {
6465(function init(sectionDomId) {})('section-5bb607e9-9670-455b-9652-8c9d1b0b1c63', 'undefined');
6466} catch(e) {
6467console.log(e);
6468}
6469                try {
6470(function init(sectionDomId, options) {
6471  let section = null;
6472  switch (sectionDomId) {
6473    case 'NAVBAR':
6474      section = document.querySelector('body > nav, #global-navbar');
6475      break;
6476    case 'FOOTER':
6477      section = document.querySelector('body > footer, #global-footer');
6478      break;
6479    case 'SIDEMENU':
6480      section = document.querySelector('body > div.sidemenu, #global-sidemenu');
6481      break;
6482    case 'CONTACT':
6483      section = document.querySelector('#modal-global-contact-us');
6484      break;
6485    case 'MOBILE_CONTACT':
6486      section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact');
6487      break;
6488    case 'SUBSCRIBE':
6489      // Subscribe Not Implemented
6490      section = null;
6491      break;
6492    case 'ACCOUNT':
6493      // Account Not Implemented
6494      section = null;
6495      break;
6496    default:
6497      section = document.querySelector('#' + sectionDomId);
6498  }
6499  if (!section) {
6500    return;
6501  }
6502  var url = window.luxuryPresence.defaults.routerUrl;
6503  var companyId = window.luxuryPresence.defaults.companyId;
6504  var limit = options.limit || 8;
6505  if (typeof limit === 'string') {
6506    limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected
6507  }
6508  var templateSelector = options.templateSelector || '.jsIGTemplate';
6509  var containerSelector = options.containerSelector || '.jsIGContainer';
6510  var hasDataClass = options.hasDataClass || 'has-data';
6511  var hideActivateMessage = options.hasDataClass || false;
6512  var payload = {
6513    companyId: companyId,
6514    limit: limit
6515  };
6516  if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) {
6517    payload.resourceId = options.resourceId;
6518    // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase
6519    payload.resource = String(options.resource || 'agent').toUpperCase();
6520    payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true;
6521  }
6522  var query = 'query InstagramFeed (\n' + '  $companyId: ID!\n' + '  $instagramAuthorizationId: ID\n' + '  $username: String\n' + (payload.resourceId ? '$resource: InstagramContentAuthResourceEnum\n $resourceId: ID\n $fallbackToNoResource: Boolean' : '') + '  $limit: Int\n' + ') {\n' + '  instagramContentFeed (\n' + '  companyId: $companyId\n' + '  instagramAuthorizationId: $instagramAuthorizationId\n' + '  username: $username\n' + (payload.resourceId ? 'resource: $resource\n resourceId: $resourceId\n fallbackToNoResource: $fallbackToNoResource' : '') + '  limit: $limit\n' + '  ) {\n' + '    active\n' + '    feedUrl\n' + '    username\n' + '    items {\n' + '      id\n' + '      caption\n' + '      commentsCount\n' + '      likeCount\n' + '      mediaType\n' + '      mediaUrl\n' + '      permalink\n' + '      shortcode\n' + '      thumbnailUrl\n' + '      timestamp\n' + '      username\n' + '    }\n' + '  }\n' + '}\n';
6523  var templateHTML = section.querySelector(templateSelector)?.innerHTML || '';
6524  var template = Handlebars.compile(templateHTML);
6525  var container = section.querySelector(containerSelector);
6526  if (options.variables) {
6527    Object.keys(options.variables).forEach(function (key) {
6528      if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) {
6529        payload[key] = options.variables[key];
6530      }
6531    });
6532  }
6533  function getData() {
6534    var feed = {
6535      error: true
6536    };
6537    if (payload.companyId == null || payload.companyId === '') {
6538      // instagramContentFeed requires companyId (ID!) — nothing to fetch without it.
6539      // Checked after the options.variables merge, which may override the default.
6540      // Deferred so element listeners (attached after this template runs) still receive it.
6541      setTimeout(function () {
6542        section.dispatchEvent(new CustomEvent('ig-data', {
6543          detail: feed
6544        }));
6545      }, 0);
6546      return;
6547    }
6548    superagent.post(url + '/graphql').send({
6549      query: query,
6550      variables: payload
6551    }).then(res => {
6552      try {
6553        if (!res.body.errors) {
6554          feed = res.body.data.instagramContentFeed;
6555          if (!feed.active) {
6556            if (!hideActivateMessage && sectionDomId === 'section-temp' && container) {
6557              if (payload.resourceId) {
6558                container.innerHTML = '<div style="text-align: center">Instagram account is not connected to selected ' + payload.resource + '.<br /> Connect it on the ' + payload.resource + ' page</div>';
6559              } else {
6560                container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>';
6561              }
6562            }
6563          } else {
6564            if (feed.items.length) {
6565              if (hasDataClass) {
6566                section.classList.add(hasDataClass);
6567              }
6568              const feedName = feed.username;
6569              section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl));
6570              section.querySelectorAll('.jsIGName').forEach(name => {
6571                name.textContent = '@' + feedName;
6572                name.setAttribute('title', '@' + feedName);
6573              });
6574              if (container && template) {
6575                container.innerHTML = template(feed);
6576              }
6577            }
6578          }
6579        }
6580      } catch (e) {}
6581      section.dispatchEvent(new CustomEvent('ig-data', {
6582        detail: feed
6583      }));
6584    }).catch(e => {
6585      console.log('err', e);
6586      section.dispatchEvent(new CustomEvent('ig-data', {
6587        detail: feed
6588      }));
6589    });
6590  }
6591  getData();
6592}
6592)('section-2b120f4d-e619-4190-9fac-7fc3abaef672', JSON.parse("{\"limit\":11,\"resource\":\"agent\",\"resourceId\":\"{{id}}\",\"fallbackToNoResource\":\"{{{fallbackToNoResource}}}\",\"companyId\":\"6382308c-8bfc-4993-9f82-aceab30cdb9f\",\"usePageResource\":false,\"sectionIndex\":13,\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}"));
6593} catch(e) {
6594console.log(e);
6595}
6596                try {
6597(function init(sectionDomId) {
6598  const section = document.getElementById(sectionDomId);
6599  const slider = section.querySelector(".js-slider");
6600  section.addEventListener("ig-data", function () {
6601    var splide = new Splide(slider, {
6602      rewind: true,
6603      arrows: false,
6604      type: 'loop',
6605      padding: '20%',
6606      gap: '16px',
6607      pagination: false,
6608      clones: 1,
6609      perPage: 1,
6610      perMove: 1,
6611      destroy: true,
6612      breakpoints: {
6613        768: {
6614          destroy: false
6615        }
6616      }
6617    });
6618    splide.mount();
6619  });
6620})('section-2b120f4d-e619-4190-9fac-7fc3abaef672', JSON.parse("{\"resource\":\"agent\",\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"6382308c-8bfc-4993-9f82-aceab30cdb9f\",\"usePageResource\":false,\"sectionIndex\":13}"));
6621} catch(e) {
6622console.log(e);
6623}
6624
6625            var { body } = document;
6626            var globalNav = body.querySelector(':scope > nav');
6627            var globalSideMenu = body.querySelector(':scope > div.sidemenu');
6628
6629            document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => {
6630                modalCloseBtn.addEventListener('click', function() {
6631                window.lpUI.hideClosestModal(modalCloseBtn);
6632              });
6633            });
6634
6635            window.addEventListener('click', function() {
6636                document.querySelectorAll('.share-popup').forEach(sharedPopup => {
6637                    sharedPopup.style.display = 'none' ;
6638                });
6639            });
6640
6641            /* Misc Partials / Addons */
6642            function initWOW() {
6643                if (wow) {
6644                    wow.init();
6645                    wow.scrollHandler();
6646                    setTimeout(function () {
6647                        const wowHideStyle = document.getElementById('wow-hide-elements');
6648                        if(wowHideStyle) {
6649                            wowHideStyle.disabled = true;
6650                        }
6651                    }, 1);
6652                }
6653            }
6654
6655            const wowHideElements =  document.getElementById('wow-hide-elements');
6656            if (wowHideElements) {
6657               wowHideElements.disabled = false;
6658            }
6659
6660                initWOW();
6661
6662            /* Generic Navbar Handling */
6663            globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => {
6664                hamburgerComponent.addEventListener('click', function() {
6665                window.lpUI.sideMenuToggle();
6666              });
6667            });
6668            globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => {
6669                toggleEl.addEventListener('click', function() {
6670                window.lpUI.sideMenuToggle();
6671              });
6672            });
6673
6674            document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => {
6675                linkEl.addEventListener('click', function(e) {
6676                  e.preventDefault();
6677                  e.stopPropagation();
6678                  var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav');
6679                  if (subNav && subNav.classList.contains('visible')){
6680                    subNav.classList.remove('visible');
6681                  } else {
6682                    globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => {
6683                      globalSubNav.classList.remove('visible');
6684                    });
6685                    globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => {
6686                        sideMenuSubNav.classList.remove('visible');
6687                    });
6688                    subNav?.classList.add('visible');
6689                  }
6690                });
6691            });
6692            window.addEventListener('click', function() {
6693                document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => {
6694                    subNavEl.classList.remove('visible');
6695                });
6696            });
6697
6698        }
6699
6700        document.addEventListener('DOMContentLoaded', lpGlobalInit);
6701
6702    </script>
6702
6703
6704    
6704<script type="module">
6705    function selectorExists(selector) {
6706        return document.querySelector(selector) !== null;
6707    }
6708
6709    // Function to initialize the third-party library
6710    function initParoller(selector = '.my-paroller') {
6711        var $parollerElements = $(selector);
6712        if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') {
6713            $parollerElements.paroller();
6714        }
6715    }
6716
6717    const parollerSelector = '.my-paroller';
6718
6719    if (selectorExists(parollerSelector)) {
6720        window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() {
6721            initParoller(parollerSelector);
6722            window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true;
6723        });
6724    }
6725    </script>
6725
6726
6727            <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 6727-6728
6727
6728            <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
6728GTM-T9SFQGHZ
vendor: 107 bytes, lines 6728-6730
6728"
6729            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
6730            
6730<!-- End Google Tag Manager -->
6731        
6732            
6732<script
6733                src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js"
6734                data-website-id="0ff2944e-bf8d-436a-8339-bb2d94158f4a"
6735                
6736                defer></script>
vendor: 1 bytes, line 6736
6736
6737<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"d2a8f4b3d65944edb8fcd6ffce49ee5e","spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 6737
6737
6738<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:'a4811c37e8c0f7d2',t:'MTc5MTU4Nzk2Ng=='};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>
6738</body>
6739</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.