PageSourceSearch

https://hometowncollectionmb.com/floor-plans

html hometowncollectionmb.com collected 2026-10-08 10:26:43 UTC 406,507 bytes, 4,258 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>Featured Floor Plans | Hometown Collection | Gaithersburg MD</title>
10        <meta property="og:title" content="Featured Floor Plans | Hometown Collection | Gaithersburg MD">
11        <meta name="twitter:title" content="Featured Floor Plans | Hometown Collection | Gaithersburg MD">
12        <meta name="description" content="Discover our customizable floor plans designed to suit every lifestyle. Browse layouts and start building your dream home today. Get in Touch now!">
13        <meta property="og:description" content="Discover our customizable floor plans designed to suit every lifestyle. Browse layouts and start building your dream home today. Get in Touch now!">
14        <meta name="twitter:description" content="Discover our customizable floor plans designed to suit every lifestyle. Browse layouts and start building your dream home today. Get in Touch now!">
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/shauup0u3oujcugqmdqv">
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/shauup0u3oujcugqmdqv">
17        <meta property="og:url" content="https://hometowncollectionmb.com/floor-plans">
18        <link rel="canonical" href="https://hometowncollectionmb.com/floor-plans">
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=Cormorant%20Garamond:300,300i,400,400i,500,500i,600,600i,700,700i"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Urbanist:100,200,300,400,500,600,700,800,900,100i,200i,300i,400i,500i,600i,700i,800i,900i">
23    <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
24    <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript>
25    <link rel="icon" type="image/x-icon" href="/favicon.ico">
26    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
27    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
28    <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png">
29    <style id="global-css">:root{--global-primary-font-family:'Cormorant Garamond',serif;--global-primary-font-family-short:Cormorant Garamond;--global-secondary-font-family:Urbanist,sans-serif;--global-secondary-font-family-short:Urbanist;--global-body-padding:0px;--global-background-color:#fff;--global-body-font-size:16px;--global-h1-font-size:70px;--global-h2-font-size:43px;--global-h3-font-size:30px;--global-h4-font-size:21px;--global-h5-font-size:17px;--global-h6-font-size:16px;--global-section-padding:96px;}@media (max-width: 768px){:root{--global-section-padding:64px;}}body{padding:0px;background-color:#fff;font-family:Urbanist,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:'Cormorant Garamond',serif;}h1{font-size:70px;}h2{font-size:43px;}h3{font-size:30px;}h4{font-size:21px;}h5{font-size:17px;}h6{font-size:16px;}</style>
30        <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/producer/index.css" />
31    <style id="website-css">footer#global-footer .lp-link:after{background-color:#fff;}footer#global-footer .footer .first_text_footer .img_size{height:100px;}body>div.mobile-contact-wrapper .connect-btn border:2px solid #a6a6a6!important;</style>
32    <style id="wow-hide-elements">.wow{visibility:hidden!important}</style>
33        <style id="page-css">
34            #section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2{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(6 / 4 * var(--global-section-padding));background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.7));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/shauup0u3oujcugqmdqv');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .slick-arrow{border:1px solid #fff;}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .slick-arrow:before{color:#fff;}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .slick-arrow:hover{border:1px solid #4191C6;background-color:#4191C6;}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .slick-arrow:hover:before{color:#fff;}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media(max-width: 768px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__col{width:100%;max-width:50%;-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%;}@media(max-width: 768px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__col{max-width:100%;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__col--left{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__title-group{text-align:left;}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__title-group .lp-text--subtitle{max-width:100%;}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__mob-wiew{display:none;text-align:center;}@media(max-width: 768px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__mob-wiew{display:block;}}@media(max-width: 768px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-section__desktop-view{display:none;}}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__item img{display:block;width:100%;height:513px;object-fit:cover;}@media(max-width: 580px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__item img{height:241px;}}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__arrows{padding-left:32px;padding-right:32px;}@media(max-width: 768px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__arrows{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;
34-webkit-justify-content:center;justify-content:center;}}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__arrows--mob{padding:32px 0;}@media(min-width: 769px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__arrows--mob{display:none;}}@media(max-width: 768px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__arrows--desk{display:none;}}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__arrows .lp-arrow{position:relative;}@media(max-width: 768px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__arrows .lp-arrow{margin-left:8px;margin-right:8px;}}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__arrows .lp-arrow:first-child{margin-bottom:16px;}@media(max-width: 768px){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2 .sell-slider__arrows .lp-arrow:first-child{margin-bottom:0;}}#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2>div:last-child{padding-top:calc(6 / 4 * var(--global-section-padding))!important;}@media (min-width: 960px) and (orientation: landscape){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2{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/shauup0u3oujcugqmdqv');}}@media (min-width: 1280px) and (orientation: landscape){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2{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/shauup0u3oujcugqmdqv');}}@media (min-width: 1920px) and (orientation: landscape){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2{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=2560/https://media-production.lp-cdn.com/media/shauup0u3oujcugqmdqv');}}@media (min-width: 2560px) and (orientation: landscape){#section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2{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/shauup0u3oujcugqmdqv');}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab{color:#000;--fontColor:#000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-bottom:calc(2 / 4 * var(--global-section-padding));background-color:#fff;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab input{border-bottom:1px solid #000!important;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .search-container .irs--round .irs-bar{background-color:#000!important;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .search-container .irs--round .irs-handle{background-color:#000!important;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-to{background-color:#000!important;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .irs-from{background-color:#000!important;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list__img img{object-fit:fill!important;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list__text::after{content:'Prices subject to change without notice';font-size:12px;font-style:italic;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .container{max-width:1920px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .redesign .feature h4{text-transform:initial;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .title,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .description{text-align:center;margin-bottom:60px;max-width:75%;margin-left:auto;margin-right:auto;}@media (max-width: 768px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .title,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .description{margin-bottom:30px;max-width:100%;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section{padding-bottom:140px;}@media (max-width: 991px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section{padding-bottom:100px;}}@media (max-width: 768px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section{padding-bottom:40px;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section h2{text-align:center;margin-bottom:0;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .top-part{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;
34-webkit-justify-content:space-between;justify-content:space-between;padding-bottom:140px;}@media(max-width: 1000px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .top-part{padding-bottom:60px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .clear-btn-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:12%;}@media(max-width: 1000px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .clear-btn-wrapper{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:24px;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .clear-btn-wrapper .clear-btn{border:none;border-bottom:2px solid #999999;padding:4px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .clear-btn-wrapper .clear-btn:hover{border-color:#fff;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container{width:88%;display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;-ms-grid-rows:auto;grid-template-rows:auto;gap:48px 32px;grid-template-areas:". . . " ". . ." ". .";}@media(max-width: 1200px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container{-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;-ms-grid-rows:auto;grid-template-rows:auto;grid-template-areas:". ." ". ." ". ." ". .";}}@media(max-width: 1000px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container{width:100%;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .rangeslider{margin-bottom:34px;}}@media(max-width: 800px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container{-ms-grid-columns:1fr;grid-template-columns:1fr;-ms-grid-rows:auto;grid-template-rows:auto;gap:32px 32px;grid-template-areas:"." "." "." "." "." "." ".";}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-item{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-content:space-between;-ms-flex-line-pack:space-between;align-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-width:250px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-item .text-search{width:100%;background:none;border:none;color:inherit;font-size:16px;padding:8px 16px 16px 0;border-bottom:1px solid currentColor;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-item svg{position:absolute;right:0;top:30%;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-item span{margin-bottom:8px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown{min-width:200
34px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;position:relative;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown.active svg{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:.3s;transition:.3s;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .label{font-weight:normal;color:inherit;cursor:pointer;padding:8px 16px 16px 0;font-size:16px;text-transform:none;background:transparent;border-bottom:1px solid;position:relative;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .label svg{-webkit-transition:.3s;transition:.3s;position:absolute;right:0;top:45%;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown{z-index:8;position:absolute;top:51px;right:0;left:0;bottom:0;background:#FFFFFF;text-transform:uppercase;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;max-height:220px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown::-webkit-scrollbar{width:9px;border-radius:50px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown::-webkit-scrollbar-track{background:#FFFFFF;border:1px solid #E8E8E8;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown::-webkit-scrollbar-thumb{background:#C4C4C4;border-radius:50px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown::-webkit-scrollbar-thumb:hover{background:#555;}@supports (scrollbar-color: #C4C4C4 #FFFFFF){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown{scrollbar-color:#C4C4C4 #FFFFFF;scrollbar-width:thin;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .option,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .reset{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;width:100%;font-size:12px;font-weight:700;height:calc(112px/3);color:#000;border-bottom:1px solid #000;cursor:pointer;-webkit-transition:.3s;transition:.3s;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .option svg,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .reset svg{margin-right:10px;pointer-events:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .option.hidden,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .reset.hidden{display:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .option.selected,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .reset.selected,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .option:hover,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown .reset:hover{background:#000;color:#fff;-webkit-transition:.3s;transition:.3s;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-dropdown .dropdown.hidden{display:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .seasonal-price-select.hidden{display:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round{height:20px;position:absolute;top:13px;left:0;right:0;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-handle{cursor:pointer;background-color:currentColor;width:10px;height:10px;border-width:1px;border-color:currentColor;top:31px;box-shadow:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-bar{background-color:currentColor;height:1px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-line{height:1px;background-color:#404040;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-min,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-max{display:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-from:before,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-to:before,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-single:before{display:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-from,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-to,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-single{font-size:13px;color:currentColor;font-family:var(--global-secondary-font-family);background-color:transparent;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-from{left:0!important;visibility:visible!important;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-to{right:0!important;left:auto!important;visibility:visible!important;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs--round .irs-single{display:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs-from,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs-to,#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .irs-single{top:43px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list{display:-ms-gri
34d;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;-ms-grid-rows:1fr;grid-template-rows:1fr;gap:55px 80px;grid-template-areas:". .";padding:0;color:#000;list-style:none;}@media (max-width: 991px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list{gap:55px 25px;}}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list{-ms-grid-columns:1fr;grid-template-columns:1fr;grid-template-areas:".";gap:35px 25px;justify-items:center;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list.three-items{-ms-grid-columns:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;grid-template-areas:". . .";gap:55px 40px;}@media (max-width: 1200px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list.three-items{-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;grid-template-areas:". .";gap:55px 80px;}}@media (max-width: 991px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list.three-items{gap:55px 25px;}}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list.three-items{-ms-grid-columns:1fr;grid-template-columns:1fr;grid-template-areas:".";gap:35px 25px;justify-items:center;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list.property-list--share .property-list__share{display:inline-block;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item{background-color:#fff;text-align:center;font-weight:bold;position:relative;min-height:500px;}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item{min-height:1px;height:calc(100% - 1px);width:99%;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item:hover .property-list__hover{opacity:1;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item h4{margin:0 0 7px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item p{white-space:normal;margin:0 0 7px;}@media (max-width: 768px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item p{margin-bottom:3px;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item .price-title{text-transform:none;margin:0;font-family:var(--global-secondary-font-family);}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item-link{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%;}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item-link{height:auto;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__img{width:100%;height:315px;vertical-align:top;background-color:gray;position:relative;}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__img{height:200px;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__img img{width:100%;height:100%;object-fit:cover;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__text{background-color:#fff;padding:25px 15px 15px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__text{margin-bottom:15px;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__label{position:absolute;top:0;right:0;background:#000;color:#fff;padding:4px 35px;z-index:2;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .hover-link{position:absolute;top:0;left:0;width:100%;height:100%;}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .hover-link{display:none;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__hover{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255, 255, 255, 0.75);opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear;z-index:3;cursor:pointer;}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__hover{opacity:1;background-color:var(--bgColor);position:static;padding:15px 0 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:auto;margin:0 -2px;width:calc(100% + 4px);}}
34#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__hover h4{text-transform:none;}@media(max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__hover h4{display:none;}}@media (min-width: 601px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__buttons{position:absolute;top:50%;left:50%;width:100%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__view .btn{margin-bottom:20px;}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__view .btn{margin-bottom:0;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .btn{vertical-align:top;margin:0 10px;display:none;}@media(max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .btn{margin:0;}}@media(min-width: 601px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .btn.btn--primary-dark{display:inline-block;}}@media(max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .btn.btn--primary-light{display:inline-block;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__share{position:relative;display:none;}@media(max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__share{margin-bottom:25px;margin-top:15px;width:100%;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__share.property-list__share--opened .socials{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__share .socials{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;position:absolute;top:100%;left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);display:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__share .socials .socials__link{width:70px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .is-background-color-light ul.property-list .btn.btn--primary-dark{display:inline-block;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .is-background-color-light ul.property-list .btn.btn--primary-light{display:none;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .redesign ul.property-list{margin-bottom:60px;margin-left:0;}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .redesign ul.property-list{margin-bottom:30px;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .empty-result{text-align:center;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .label-house{bottom:0;position:absolute;width:100%;padding:8px 0;background:rgba(255, 255, 255, 0.7);}@media (max-width: 768px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .label-house{font-size:12px;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item .property-list__mls-attribution{text-shadow:none;width:calc(100% - 200px);margin:0;}@media (max-width: 1024px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab ul.property-list .property-list__item .property-list__mls-attribution{width:100%;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list__item .property-list__mls-attribution+.property-list__mls-logo{position:absolute!important;right:15px!important;bottom:15px!important;}@media (max-width: 1024px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list__item .property-list__mls-attribution+.property-list__mls-logo{position:relative!important;right:unset!important;bottom:unset!important;}}@media (max-width: 600px){#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list__item .property-list__mls-logo{display:inline-block!important;}}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list__item:has(.mls-compliance-container) .property-list__text{padding-bottom:0;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .mls-compliance-container{margin-top:auto;padding:0 15px 15px;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab>div:last-child{padding-bottom:calc(2 / 4 * var(--global-section-padding))!important;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-item .text-search::-webkit-input-placeholder{color:inherit;opacity:1;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-item .text-search::-moz-placeholder{color:inherit;opacity:1;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-item .text-search:-ms-input-placeholder{color:inherit;opacity:1;}#section-da28ff70-b32c-4718-98b5-01a5d85656ab .property-list-section .search-container .search-item .text-search::placeholder{color:inherit;opacity:1;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476{background-attachment:fixed;-webkit-background-position:center;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;color:#fff;--fontColor:#fff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0));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/cygcrapkvxcworz4mfn7');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 h2{color:#4191C6;}@media only screen and (max-width: 768px){#section-3bd492d6-c0b9-4b2b-acf6-883219de6476{background-attachment:unset;}}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .lp-a a:hover{color:#fff;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .lp-a a:hover:after{background-color:#fff!important;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476{--colGap:20px;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:calc(var(--colGap, 0) / -2);margin-right:calc(var(--colGap, 0) / -2);-webkit-box-pack:center;-ms-flex-pack:center;
34-webkit-justify-content:center;justify-content:center;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .lp-h2{margin-top:0;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col{position:relative;width:100%;min-height:1px;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;padding-left:calc(var(--colGap, 0) / 2);padding-right:calc(var(--colGap, 0) / 2);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__image{background-color:#f2f2f2;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col-1-2{-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%;}@media (max-width: 768px){#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col-1-2{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col-1-2 .media-card__image{padding-bottom:63.6%;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col-1-3{-webkit-flex:0 0 33.33%;-ms-flex:0 0 33.33%;flex:0 0 33.33%;max-width:33.33%;}@media (max-width: 768px){#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col-1-3{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col-1-3 .media-card__image{padding-bottom:97%;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col-1-4{-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%;}@media (max-width: 768px){#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col-1-4{-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;}}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .col-1-4 .media-card__image{padding-bottom:97%;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-blocks{text-align:center;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card{width:100%;text-align:center;display:block;-webkit-text-decoration:none;text-decoration:none;color:inherit;margin-bottom:60px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media (max-width: 768px){#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card{margin-bottom:40px;}}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__image{position:relative;padding-bottom:40%;margin-bottom:32px;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__image img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__title{margin-bottom:16px;max-width:380px;margin-left:auto;margin-right:auto;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__description{margin-bottom:32px;overflow:hidden;white-space:pre-line;max-width:380px;margin-left:auto;margin-right:auto;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__description .btn-more{cursor:pointer;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__description .substring{display:none;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__description .more-text{display:block;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__description.cropped{height:100%;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__description.cropped .substring{display:block;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__description.cropped .more-text{display:none;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .media-card__button{margin-top:auto;}#section-3bd492d6-c0b9-4b2b-acf6-883219de6476 .lp-text--subtitle{margin-left:auto;margin-right:auto;}@media (min-width: 960px) and (orientation: landscape){#section-3bd492d6-c0b9-4b2b-acf6-883219de6476{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/cygcrapkvxcworz4mfn7');}}@media (min-width: 1280px) and (orientation: landscape){#section-3bd492d6-c0b9-4b2b-acf6-883219de6476{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/cygcrapkvxcworz4mfn7');}}@media (min-width: 1920px) and (orientation: landscape){#section-3bd492d6-c0b9-4b2b-acf6-883219de6476{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/cygcrapkvxcworz4mfn7');}}@media (min-width: 2560px) and (orientation: landscape){#section-3bd492d6-c0b9-4b2b-acf6-883219de6476{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/cygcrapkvxcworz4mfn7');}}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.4));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/tacfxpx3kb6gjinedgzb');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5.parallax-enabled{-webkit-clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:-9999;}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5.parallax-enabled .work-with-us:before{display:block;content:'';left:0;top:0;width:100%;
34background:var(--sectionBackground) center no-repeat;-webkit-background-size:cover;background-size:cover;position:fixed;z-index:-1;height:100%;}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us{position:relative;color:var(--fontColor, #ffffff);}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us .container{text-align:center;max-width:750px;min-height:689px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:50px;padding-bottom:50px;position:relative;z-index:1;}@media (max-width: 768px){#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us .container{min-height:auto;padding-top:100px;padding-bottom:100px;}}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us h2{position:relative;padding-bottom:28px;margin:0 0 30px;}@media(max-width: 768px){#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us h2{padding-bottom:40px;}}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us h2:after{content:'';position:absolute;bottom:0;left:50%;margin-left:-55px;width:110px;height:1px;background-color:var(--fontColor, #ffffff);}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us .description{margin:0 0 30px;}@media(max-width: 768px){#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us .description{margin-bottom:40px;}}#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us .btn-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:23px;margin-top:32px;}@media(max-width: 560px){#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5 .redesign.work-with-us .btn-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:10px;}}@media (min-width: 960px) and (orientation: landscape){#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5{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/tacfxpx3kb6gjinedgzb');}}@media (min-width: 1280px) and (orientation: landscape){#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5{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/tacfxpx3kb6gjinedgzb');}}@media (min-width: 1920px) and (orientation: landscape){#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5{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=2560/https://media-production.lp-cdn.com/media/tacfxpx3kb6gjinedgzb');}}@media (min-width: 2560px) and (orientation: landscape){#section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5{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/tacfxpx3kb6gjinedgzb');}}#section-739c3d68-8237-4212-b354-6f93e6c00751{color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:rgba(255, 255, 255, 1);}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed{padding:80px 0;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .title{margin:0 20px 0 0;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .instagram-link{display:block;margin:0 20px 0 0;color:var(--global-primary-font-color);}#section-739c3d68-8237-4212-b354-6f93e6c00751 .instagram-link .instagram-name{display:inline;margin:0;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .title+.instagram-link{margin-top:5px;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .top-wrapper{margin-bottom:20px;
34display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .top-right{margin-left:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .follow-button{margin:20px 0 0 0;display:block;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .nav-button{margin-top:20px;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:42px;color:#1a1a1a;border:1px solid currentColor;cursor:pointer;transition-property:color,background-color,border-color;transition-duration:.3s;transition-timing-function:ease;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .nav-button:not(.slick-disabled):hover{background-color:#1a1a1a;border-color:#1a1a1a;color:#fff;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .top-nav-prev{margin-left:30px;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .top-nav-next{margin-left:10px;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .hidden-control{display:none;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-single,#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi{position:relative;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:calc(100% / 3);padding:10px;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-single:first-child,#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi:first-child{margin-left:auto;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-single:last-child,#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi:last-child{margin-right:auto;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-single.type2,#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi.type2{width:calc(100% / 5 * 2);}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-single.type3,#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi.type3{width:calc(100% / 2);}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-single.type4,#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi.type4{width:calc(100% / 2);}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-single.type5,#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi.type5{width:100%;}@media (max-width: 440px){#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed-container{padding:0;width:100%;}}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed-feed{width:calc(100% + 20px);position:relative;left:-10px;overflow:hidden;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed-slider{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed-item__img{position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;background:center/cover no-repeat;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed-item__info{position:absolute;top:0;left:0;bottom:0;right:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10%;overflow:hidden;color:#fff;text-align:center;background-color:rgba(0, 0, 0, 0.8);opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed-item:hover .ig-feed-item__info{opacity:1;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed-item__caption{text-overflow:ellipsis;-webkit-line-clamp:4;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .video-icon{position:absolute;width:50px;height:50px;background-color:#fff;left:50%;
34top:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border-radius:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;opacity:1;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .video-icon::before{content:'';display:block;width:0px;height:0px;border-style:solid;position:relative;left:1px;border-width:7.5px 0px 7.5px 11px;border-color:transparent transparent transparent #292826;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed-item:hover .video-icon{opacity:0;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-single .ig-feed-item__info{padding:15%;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-single .ig-feed-item__caption{-webkit-line-clamp:7;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed-item{background-color:var(--tileColor, #000);display:block;width:100%;padding-bottom:125%;overflow:hidden;position:relative;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi::before{content:'';display:block;width:100%;padding-bottom:125%;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi-content{padding:10px;position:absolute;width:100%;height:100%;left:0;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;overflow:hidden;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi-content .ig-feed-item{width:calc(50% - 10px);padding-bottom:calc(62.5% - 12.5px);}#section-739c3d68-8237-4212-b354-6f93e6c00751 .slide-multi-content .ig-feed-item:nth-child(n + 3){-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .bottom-controls{width:100%;display:none;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .bottom-nav-button{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:20px 10px 0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:48px;height:48px;color:#1a1a1a;border:1px solid currentColor;cursor:pointer;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .bottom-nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}@media (max-width: 767px){#section-739c3d68-8237-4212-b354-6f93e6c00751 .top-right,#section-739c3d68-8237-4212-b354-6f93e6c00751 .top-left{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .title,#section-739c3d68-8237-4212-b354-6f93e6c00751 .instagram-link{margin-right:0;text-align:center;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .top-nav-prev,#section-739c3d68-8237-4212-b354-6f93e6c00751 .top-nav-next{display:none;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .bottom-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}#section-739c3d68-8237-4212-b354-6f93e6c00751 .ig-feed{display:none;}#section-739c3d68-8237-4212-b354-6f93e6c00751 .has-data .ig-feed{display:block;}#section-739c3d68-8237-4212-b354-6f93e6c00751.has-data .ig-feed,#section-739c3d68-8237-4212-b354-6f93e6c00751#section-temp .ig-feed{display:block;}#modal-global-contact-us .close{z-index:11;}#modal-global-contact-us .description{margin-bottom:15px;}#modal-global-contact-us .close:focus{outline:0;}#modal-global-contact-us .contact-form{padding:70px 0;width:100%;min-height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;color:var(--colorTxt, #ffffff);-webkit-background-size:cover;background-size:cover;}#modal-global-contact-us .contact-form:after{content:'';position:absolute;display:block;background-color:rgba(2, 5, 7, 0.85);height:100%;width:100%;z-index:0;}
34#modal-global-contact-us .contact-form.loading textarea,#modal-global-contact-us .contact-form.loading input,#modal-global-contact-us .contact-form.loading label,#modal-global-contact-us .contact-form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .submit-icon{display:none;}#modal-global-contact-us .contact-form .contact-form-close{width:40px;height:50px;display:block;padding:0;border:none;background-color:transparent;cursor:pointer;position:absolute;right:50px;top:50px;z-index:110;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close{right:20px;top:20px;width:30px;height:40px;}}#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{content:'';display:block;width:40px;height:1px;background-color:#fff;position:absolute;left:50%;top:50%;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{width:30px;}}#modal-global-contact-us .contact-form .contact-form-close:before{-webkit-transform:translate(-50%, -50%) rotate(45deg);-moz-transform:translate(-50%, -50%) rotate(45deg);-ms-transform:translate(-50%, -50%) rotate(45deg);transform:translate(-50%, -50%) rotate(45deg);}#modal-global-contact-us .contact-form .contact-form-close:after{-webkit-transform:translate(-50%, -50%) rotate(-45deg);-moz-transform:translate(-50%, -50%) rotate(-45deg);-ms-transform:translate(-50%, -50%) rotate(-45deg);transform:translate(-50%, -50%) rotate(-45deg);}#modal-global-contact-us .contact-form .container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:1440px;width:100%;padding:0 160px;margin:0 auto;z-index:10;}@media (max-width: 1320px){#modal-global-contact-us .contact-form .container{padding:0 80px;}}@media (max-width: 1200px){#modal-global-contact-us .contact-form .container{padding:0 30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .container{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}@media (max-width: 560px){#modal-global-contact-us .contact-form .container{padding:0 20px;}}#modal-global-contact-us .contact-form h2{margin:0 0 18px 0;padding:0;}@media (max-width: 560px){#modal-global-contact-us .contact-form h2{margin:0 0 24px 0;}}#modal-global-contact-us .contact-form .section-details{width:50%;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-details{padding-right:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-details{width:100%;padding-right:0;max-width:700px;margin-bottom:38px;}}#modal-global-contact-us .contact-form .section-message{width:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;position:relative;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-message{padding-left:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message{width:100%;padding-left:0;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}}#modal-global-contact-us .contact-form .section-message:after{content:'';position:absolute;display:block;width:1px;background:#999999;height:calc(100% + 50px);left:0;top:-20px;}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message:after{display:none;}}#modal-global-contact-us .contact-form .section-message form{max-width:435px;width:100%;}#modal-global-contact-us .contact-form .section-message form .submitButton{width:auto;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message form .submitButton{width:100%;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message form{max-width:700px;}}#modal-global-contact-us .contact-form .section-message form.loading textarea,#modal
34-global-contact-us .contact-form .section-message form.loading input,#modal-global-contact-us .contact-form .section-message form.loading label,#modal-global-contact-us .contact-form .section-message form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form .section-message form.loading .label-loading{display:inline;}#modal-global-contact-us .contact-form .section-message form.loading .label-success,#modal-global-contact-us .contact-form .section-message form.loading .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .section-message form.success .label-loading,#modal-global-contact-us .contact-form .section-message form.success .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.success .label-success{display:inline;}#modal-global-contact-us .contact-form .section-message .label-loading,#modal-global-contact-us .contact-form .section-message .label-success{display:none;}#modal-global-contact-us .contact-form .section-message .submit-icon{display:none;}#modal-global-contact-us .contact-form .section-message h2{margin-bottom:28px;}#modal-global-contact-us .contact-form .section-message .form-group_modal{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:39px;}#modal-global-contact-us .contact-form .section-message .form-group_modal input{border:none;border-bottom:1px solid #c0c0c0;display:block;width:100%;background:transparent;color:#ffffff;height:22px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group_modal input{height:25px;}}#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:23px;}}#modal-global-contact-us .contact-form .section-message label{display:block;width:100%;line-height:1.63;letter-spacing:1px;color:#c0c0c0;font-weight:bold;text-transform:uppercase;}#modal-global-contact-us .contact-form .section-message textarea{resize:none;height:105px;width:100%;background:transparent;border:solid 1px #ffffff;margin:23px 0 0 0;color:#ffffff;padding:10px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message textarea{margin:10px 0 0 0;height:89px;}}#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 16px 0;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 13px 0;}}#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user{margin-bottom:58px;}}#modal-global-contact-us .contact-form .info-zone_contact{margin-bottom:23px;}#modal-global-contact-us .contact-form .info-zone_contact:nth-last-child(2){margin-bottom:30px;}#modal-global-contact-us .contact-form .info-zone_contact_cell{position:relative;padding-left:45px;margin-bottom:22px;font-weight:bold;font-size:14px;max-width:90%;letter-spacing:1.5px;text-transform:uppercase;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell{padding-left:0;}}#modal-global-contact-us .contact-form .info-zone_contact_cell:last-of-type{margin-bottom:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:absolute;left:0;top:0;display:block;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:relative;margin-bottom:7px;}}#modal-global-contact-us .contact-form .info-zone_contact_cell i svg path{fill:var(--colorTxt);}#modal-global-contact-us .contact-form .info-zone_contact_cell div{padding:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell .contact_title{line-height:1;margin-bottom:5px;}#modal-global-contact-us .contact-form .info-zone_contact_link{color:var(--colorTxt);}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:58px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form .hours_box{margin-bottom:52px;}}#modal-global-contact-us .contact-form .socials_zone{padding-left:45px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone{padding-left:0;}}#modal-global-contact-us .contact-form .socials_zone li{margin-bottom:10px;}#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:34px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:12px;}}#modal-global-contact-us .contact-form .success-message.success{margin-top:15px;color:var(--colorTxt);position:absolute;}#modal-global-contact-us .contact-form .success-message.hide{opacity:0;}#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:73px;}@media (max-width: 768px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:51px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:40px;}}#modal-global-contact-us .contact-form.one_contact .hours_box{margin-bottom:38px;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell{padding-left:0;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell i{display:none;}#modal-global-contact-us .contact-form.no_icon .socials_zone{padding-left:0;}#modal-global-contact-us .contact-form .pre-line{white-space:pre-line;}#modal-global-contact-us .lp-input-group{margin-bottom:40px;}#modal-global-contact-us .lp-input-group.m16{margin-bottom:16px;}#modal-global-contact-us .lp-disclaimer{margin-top:0;}#modal-global-contact-us .lp-input{border-color:#ffffff;}#modal-global-contact-us .lp-input:focus,#modal-global-contact-us .lp-input:active{border-color:#5e5e5e;}nav{color:#fff;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;z-index:102;}nav.scroll .logo .logo__img.light{display:block;}nav.scroll .logo .logo__img.dark{display:none;}nav .header{height:100px;-webkit-transform:translateY(24px);-moz-transform:translateY(24px);-ms-transform:translateY(24px);transform:translateY(24px);}@media (max-width: 768px){nav .header{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}}nav .header .container{max-width:1440px;padding:0 15px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;}@media (max-width: 1024px){nav .header .container{padding:0 15px;}}nav .header .navbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;
34-webkit-justify-content:space-between;justify-content:space-between;min-height:70px;padding:8px 0 7px;width:100%;}nav .header .logo{z-index:911;position:relative;margin-right:10px;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:300px;}nav .header .logo a{overflow:hidden;display:inline-block;}nav .header .logo img{max-width:100%;max-height:52px;vertical-align:top;object-fit:contain;}@media (max-width: 1024px){nav .header .logo img{max-height:50px;}}nav .header .logo img.dark{display:none;}@media(max-width: 1024px){nav .header .logo img.dark{display:none!important;}}nav .header .logo img.light{display:block;}@media(max-width: 1024px){nav .header .logo img.light{display:inline-block!important;}}nav .header .logo__link{-webkit-animation-duration:1s;animation-duration:1s;overflow:hidden;}nav .header .logo__img.light{display:block;}nav .header .logo__img.dark{display:none;}nav .header .navigation{margin-left:auto;color:inherit;}@media (max-width: 1024px){nav .header .navigation{display:none;}}nav .header .navigation ul{position:relative;list-style-type:none;padding-left:0;margin-bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}nav .header .navigation ul li a span,nav .header .navigation ul li button span{position:relative;white-space:nowrap;}nav .header .navigation ul li a span:after,nav .header .navigation ul li button span:after{content:'';position:absolute;display:block;height:1px;background-color:#c6c6c6;width:0;bottom:0;left:0;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation ul li a:hover span:after,nav .header .navigation ul li button:hover span:after{width:100%;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation__item{padding:0;margin:0;}nav .header .navigation__link{display:block;padding:12px 13px;color:inherit;position:relative;font-size:13px;line-height:1.08;font-weight:700;letter-spacing:1.5px;background-color:transparent;border:none;cursor:pointer;text-align:left;text-transform:uppercase;}@media (max-width: 1280px){nav .header .navigation__link{padding:19px 10px;font-size:11.5px;}}nav .header .navigation__link .sub-nav-container .navigation__link:hover{background:#000000;}nav .header .navigation .sub-nav{position:absolute;bottom:0;padding:0;opacity:0;visibility:hidden;-webkit-transition:all .2s ease;transition:all .2s ease;-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav .header .navigation .sub-nav ul{margin:0;padding:12px 0;display:block;background-color:rgba(26, 26, 26, .75);max-width:300px;}nav .header .navigation .sub-nav__item{position:relative;display:block;margin:0;text-align:left;}nav .header .navigation .sub-nav__item:last-child{border-bottom-color:transparent;}nav .header .navigation .sub-nav__link{display:block;max-width:300px;color:#ffffff;margin:0;line-height:1;letter-spacing:1.5px;padding:19px 13px;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, 100%);-moz-transform:translate(0, 100%);-ms-transform:translate(0, 100%);transform:translate(0, 100%);}nav .header .navigation .sub-nav.visible+.navigation__link{background:#000000;}nav .header .hamburger{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:none;padding:28px 13px;background-color:transparent;color:inherit;vertical-align:middle;cursor:pointer;outline:none;z-index:915;opacity:1;}nav .header .hamburger__bars{position:relative;display:block;width:26px;height:2px;background-color:currentColor;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before,nav .header .hamburger__bars:after{content:'';display:block;width:26px;height:2px;background-color:currentColor;position:absolute;
34left:0;top:0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before{-webkit-transform:translateY(-9px);-moz-transform:translateY(-9px);-ms-transform:translateY(-9px);transform:translateY(-9px);}nav .header .hamburger__bars:after{-webkit-transform:translateY(9px);-moz-transform:translateY(9px);-ms-transform:translateY(9px);transform:translateY(9px);}nav .header .hamburger:hover{text-shadow:.5px 0 0,-.5px 0 0;}nav .header .hamburger:hover .hamburger__bars:before{-webkit-transform:translateY(-7px);-moz-transform:translateY(-7px);-ms-transform:translateY(-7px);transform:translateY(-7px);}nav .header .hamburger:hover .hamburger__bars:after{-webkit-transform:translateY(7px);-moz-transform:translateY(7px);-ms-transform:translateY(7px);transform:translateY(7px);}nav .header .hamburger.active .hamburger__bars{-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);opacity:0;}nav .header .hamburger.active .hamburger__bars:before{display:none;}nav .header .hamburger.active .hamburger__bars:after{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);}nav .content-container{-webkit-transition:0.2s all ease;transition:0.2s all ease;}nav.scroll .content-container,nav .scroll .content-container{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}nav.scroll .content-container .navigation__link,nav .scroll .content-container .navigation__link{visibility:visible!important;}nav.scroll .content-container .navigation .sub-nav,nav .scroll .content-container .navigation .sub-nav{-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav.scroll .content-container .navigation .sub-nav ul,nav .scroll .content-container .navigation .sub-nav ul{padding:0;}nav.scroll .content-container .navigation .sub-nav.visible,nav .scroll .content-container .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, calc(100% + 23px));-moz-transform:translate(0, calc(100% + 23px));-ms-transform:translate(0, calc(100% + 23px));transform:translate(0, calc(100% + 23px));}nav .dark-opening{background-color:rgb(26, 26, 26)!important;}nav nav.dark-opening .header{margin-top:0;}nav #ctaShowButton,nav #ctaMessage{display:none!important;}nav #ctaShowButton{display:none;opacity:0;pointer-events:none;}nav .search{cursor:pointer;}nav .search svg{display:block;}nav .buttons-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}body>div.sidemenu{background-color:rgba(4, 45, 73, 0.85);color:rgba(255, 255, 255, 1);--fontColor:rgba(255, 255, 255, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(4, 45, 73, 0.85);--bgColor_H:204;--bgColor_S:90%;--bgColor_L:15%;--bgColor_A:0.85;--bgColor_darkenDir:1;}body>div.sidemenu{width:auto!important;left:auto!important;right:-100%;top:0;background-color:transparent;-webkit-transition:right .3s;transition:right .3s;display:block;}body>div.sidemenu:not(.visible){pointer-events:none;visibility:hidden;}body>div.sidemenu.visible{right:0;}body>div.sidemenu .sidebar{position:relative;width:400px;height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-top:40px;padding-bottom:100px;background-color:var(--bgColor, #fff);color:var(--fontColor, #000);font-family:var(--global-primary-font-family);font-size:21px;line-height:1.333333;letter-spacing:.5px;-webkit-transition:all .3s ease-in;transition:all .3s ease-in;}@media (max-width: 767px){body>div.sidemenu .sidebar{width:270px;font-size:18px;}}body>div.sidemenu .sidebar__content{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%;padding-left:40px;padding-right:40px;text-align:center;overflow-y:auto;}@media (max-width: 767px){body>div.sidemenu .sidebar__content{-webkit-box-pack:start;-ms-flex-pack:start;
34-webkit-justify-content:flex-start;justify-content:flex-start;padding-left:20px;padding-right:20px;}}body>div.sidemenu .sidebar__close{position:absolute;right:30px;top:30px;display:inline-block;width:38px;height:38px;padding:10px;border:none;border-radius:0;background:transparent;color:inherit;z-index:1;cursor:pointer;}body>div.sidemenu .sidebar__close:before,body>div.sidemenu .sidebar__close:after{content:'';display:block;width:22px;height:2px;background-color:currentColor;position:absolute;left:50%;top:50%;}body>div.sidemenu .sidebar__close:before{-webkit-transform:translate(-50%, -50%) rotate(45deg);-moz-transform:translate(-50%, -50%) rotate(45deg);-ms-transform:translate(-50%, -50%) rotate(45deg);transform:translate(-50%, -50%) rotate(45deg);}body>div.sidemenu .sidebar__close:after{-webkit-transform:translate(-50%, -50%) rotate(-45deg);-moz-transform:translate(-50%, -50%) rotate(-45deg);-ms-transform:translate(-50%, -50%) rotate(-45deg);transform:translate(-50%, -50%) rotate(-45deg);}@media (max-width: 767px){body>div.sidemenu .sidebar__close{right:10px;top:10px;}}body>div.sidemenu .sidebar__close:focus{outline:none;}body>div.sidemenu .sidebar__nav{list-style:none;padding:0;margin:auto 0;}body>div.sidemenu .sidebar__nav-item{margin:0;padding-top:4px;padding-bottom:4px;border-bottom:1px solid hsla(
35      var(--bgColor_H, 0),
36      var(--bgColor_S, 0%),
37      calc(50% + (var(--bgColor_L, 100%) - 50%) * 0.9),
38      var(--bgColor_A, 1)
39    );}body>div.sidemenu .sidebar__nav-link{display:inline-block;padding:10px;border:none;border-radius:0;background:transparent;text-transform:none;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__nav-link:focus{outline:none;}body>div.sidemenu .sidebar__subnav{list-style:none;padding:4px 0 10px;margin:0;font-size:17px;}@media (max-width: 767px){body>div.sidemenu .sidebar__subnav{font-size:14px;letter-spacing:.3px;}}body>div.sidemenu .sidebar__subnav-item{margin-bottom:10px;}body>div.sidemenu .sidebar__subnav-item:last-child{margin-bottom:0;}body>div.sidemenu .sidebar__subnav-link{display:inline-block;padding:0;border:none;border-radius:0;background:transparent;text-transform:none;opacity:.7;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__subnav-link:focus{outline:none;}body>div.sidemenu .sub-nav{visibility:hidden;opacity:0;max-height:0;-webkit-transition:all .3s;transition:all .3s;}body>div.sidemenu .sub-nav.visible{display:block;visibility:visible;opacity:1;max-height:100vh;}body>div.sidemenu .sub-nav.visible+.main-nav{color:#7a7a7a;}body>div.sidemenu .sub-nav.visible+.main-nav:after{margin-left:40px;border-bottom:2px solid var(--fontColor, #7a7a7a);border-right:2px solid var(--fontColor, #7a7a7a);}body>div.sidemenu .sub-nav-container{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}body>div.sidemenu .sub-nav-container:hover .main-nav:after{border-bottom:2px solid var(--fontColor, #7a7a7a);border-right:2px solid var(--fontColor, #7a7a7a);}body>div.sidemenu .sub-nav-container .main-nav{position:relative;display:inline-block;}body>div.sidemenu .sub-nav-container .main-nav:after{content:'';display:inline-block;position:relative;width:8px;height:8px;margin-left:25px;-webkit-transform:rotate(45deg) translateX(-100%);-moz-transform:rotate(45deg) translateX(-100%);-ms-transform:rotate(45deg) translateX(-100%);transform:rotate(45deg) translateX(-100%);border-bottom:2px solid var(--fontColor, #000000);border-right:2px solid var(--fontColor, #000000);top:0;bottom:auto;left:auto;-webkit-transition:0.5s all ease;transition:0.5s all ease;background-color:transparent;}body>div.sidemenu #main-section .sidebar{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}footer{background-color:rgba(24, 31, 36, 1);color:rgba(255, 255, 255, 1);--fontColor:rgba(255, 255, 255, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(24, 31, 36, 1);--bgColor_H:205;--bgColor_S:20%;--bgColor_L:12%;--bgColor_A:1;--bgColor_darkenDir:1;--greyColor:hsla(
40var(--fontColor_H),
41var(--fontColor_S),
42calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445),
43var(--fontColor_A));}footer .redesign .inp--dark-bg input{color:var(--fontColor);border-color:hsla(
44      var(--fontColor_H),
45      var(--fontColor_S),
46      calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445),
47      var(--fontColor_A));}footer .redesign .inp--dark-bg input:hover{border-color:var(--fontColor);}footer .redesign .inp+.inp{margin-top:24px;}footer .redesign .btn--primary-light{border-color:var(--fontColor);color:var(--fontColor);}footer .redesign .btn--primary-light:hover{background-color:var(--fontColor);color:var(--bgColor);}footer.is-background-color-light .redesign .btn--primary-light{border-width:1px;}footer .redesign .socials--grey{-webkit-box-pack:end;-ms-flex-pack:end;
47-webkit-justify-content:flex-end;justify-content:flex-end;}footer .redesign .socials--grey .socials__link{background-color:hsla(
48      var(--bgColor_H),
49      var(--bgColor_S),
50      calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.15),
51      var(--bgColor_A));color:var(--greyColor);}footer .redesign .socials--grey .socials__link svg{fill:var(--greyColor);}footer .redesign .socials--grey .socials__link:hover{background-color:hsla(
52        var(--bgColor_H),
53        var(--bgColor_S),
54        calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.4),
55        var(--bgColor_A));color:var(--fontColor);}footer .redesign .socials--grey .socials__link:hover svg{fill:var(--fontColor);}footer .redesign.footer .grey-text{color:var(--fontColor);}footer .footer{position:relative;padding-top:60px;padding-bottom:30px;}@media (max-width: 560px){footer .footer{padding-top:10px;}}@media (max-width: 500px){footer .footer{padding-bottom:70px;}}footer .footer .text_content_wrap p{margin-bottom:15px;}footer .footer .text_content_wrap p:last-of-type{margin-bottom:0;}footer .footer .container{max-width:1440px;}@media (max-width: 768px){footer .footer .container{padding-left:25px;padding-right:25px;}}@media (max-width: 560px){footer .footer .container{padding-left:20px;padding-right:20px;}}footer .footer h3{margin:0 0 15px 0;}footer .footer h5{text-transform:capitalize;}footer .footer .info-wrap{margin-bottom:40px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}footer .footer .info-wrap .agent_box{width:70%;}@media (max-width: 1280px){footer .footer .info-wrap .agent_box{width:50%;}}@media (max-width: 768px){footer .footer .info-wrap .agent_box{width:100%;}}footer .footer .info-wrap .newsletter_box{width:30%;}@media (max-width: 1280px){footer .footer .info-wrap .newsletter_box{width:50%;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box{width:100%;}}footer .footer .info-wrap .newsletter_box--padding{padding-top:44px;}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box--padding{padding-top:0;}}footer .footer .info-wrap .newsletter_box .contact_title{margin-bottom:13px;line-height:1.6;}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .info-wrap-contact_cell{margin-bottom:0;padding-left:0;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .icon_text{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:22px;position:relative;}footer .footer .info-wrap .newsletter_box .icon_text i{position:relative;width:30px;margin-right:20px;}footer .footer .info-wrap .newsletter_box .icon_text .contact_title{margin-bottom:0;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .info-wrap-contact_zone{margin-bottom:0;}}footer .footer .info-wrap-contact{position:relative;}footer .footer .info-wrap-contact_zone{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:39px;}@media (max-width: 768px){footer .footer .info-wrap-contact_zone{margin-bottom:21px;}footer .footer .info-wrap-contact_zone:last-child{margin-bottom:51px;}}footer .footer .info-wrap-contact_zone i{position:absolute;left:0;display:block;}footer .footer .info-wrap-contact_zone i svg path{fill:currentColor;}footer .footer .info-wrap-contact_zone h4{margin:0 0 13px 0;width:100%;}footer .footer .info-wrap-contact_cell{position:relative;padding-left:50px;width:400px;font-size:14px;text-transform:uppercase;font-weight:bold;letter-spacing:1.5px;}@media (max-width: 1280px){footer .footer .info-wrap-contact_cell:first-of-type{margin-bottom:21px;}}footer .footer .info-wrap-contact_cell .contact_title{line-height:1;margin-bottom:5px;}footer .footer .info-wrap-contact_link{color:var(--greyColor);position:relative;}@media (max-width: 560px){footer .footer .info-wrap-contact_link{letter-spacing:0;}}footer .footer .hvr_animation{position:relative;-webkit-text-decoration:none!important;text-decoration:none!important;}footer .footer .hvr_animation:after{content:'';position:absolute;
55left:0;bottom:0;width:0%;height:1px;background:var(--greyColor);-webkit-transition:.3s linear;transition:.3s linear;}footer .footer .hvr_animation:hover:after{width:100%;}footer .footer .hvr_animation.underlined:after{width:100%;}footer .footer .hvr_animation.underlined:hover:after{width:0%;}footer .footer .form-content{padding:0!important;}footer .footer .form-content label{color:var(--fontColor);text-transform:none;letter-spacing:1;}footer .footer .form-content input{padding:2px 24px 2px 0;}footer .footer .form-content .subscribe_btn{margin-top:20px;position:relative;}footer .footer .form-content .subscribe_btn i{font-size:18px;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);opacity:0;}footer .footer .form-content.success i{opacity:1;}footer .footer .form-content.success .subscribe_btn span{opacity:0;}footer .footer .form-content.success .hide{opacity:0;}footer .footer .form-content.success .hide +span{opacity:1;}footer .footer .text_footer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:39px;}@media (max-width: 1280px){footer .footer .text_footer{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}@media (max-width: 560px){footer .footer .text_footer{text-align:center;}}footer .footer .text_footer p{white-space:normal;}footer .footer .text_footer .images_box{max-width:186px;width:100%;margin-right:43px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media (max-width: 560px){footer .footer .text_footer .images_box{margin:0 auto 20px auto;}}@media (max-width: 1280px){footer .footer .text_footer .img_size{margin-bottom:20px;}}@media (max-width: 560px){footer .footer .text_footer .img_size{margin-bottom:0;}}footer .footer .text_footer .img_size img{width:100%;height:100%;object-fit:contain;}footer .footer .first_text_footer .img_size{width:100%;height:63px;}footer .footer .first_text_footer .img_size img{width:100%;height:100%;object-fit:contain;}@media (max-width: 768px){footer .footer .first_text_footer{margin-bottom:51px;}}footer .footer .second_text_footer .first_img_size{width:45px;height:45px;margin-right:15px;}footer .footer .second_text_footer .second_img_size{width:100px;height:45px;}@media (max-width: 560px){footer .footer .second_text_footer{margin-bottom:21px;}}footer .footer .info-privacy{padding-top:45px;padding-bottom:30px;border-top:1px solid hsla(
56        var(--bgColor_H),
57        var(--bgColor_S),
58        calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55),
59        var(--bgColor_A));}@media (max-width: 768px){footer .footer .info-privacy{padding-top:0;border-top:none;}}footer .footer .info-privacy__row{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}footer .footer .info-privacy .copy_zone{font-size:18px;}@media (min-width: 1350px){footer .footer .info-privacy .copy_zone{text-align:center;}}@media (min-width: 1281px){footer .footer .info-privacy .copy_zone{padding-top:8px;padding-bottom:8px;}}@media (max-width: 768px){footer .footer .info-privacy .copy_zone{text-align:center;margin-bottom:10px;padding-top:45px;border-top:1px solid hsla(
60            var(--bgColor_H),
61            var(--bgColor_S),
62            calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55),
63            var(--bgColor_A));}}footer .footer .info-privacy .copy_zone a{color:var(--greyColor);}footer .footer .info-privacy .powered_zone{font-size:18px;}@media (min-width: 1281px){footer .footer .info-privacy .powered_zone{padding-top:8px;padding-bottom:8px;}}@media (max-width: 1280px){footer .footer .info-privacy .powered_zone{text-align:center;}}@media (max-width: 768px){footer .footer .info-privacy .powered_zone{text-align:center;margin-bottom:24px;}}footer .footer .info-privacy .powered_zone a{color:var(--greyColor);}@media (min-width: 1281px){footer .footer .info-privacy .socials_zone{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}@media (max-width: 1280px){footer .footer .info-privacy .socials_zone{width:100%;margin-top:20px;-webkit-box-pack:start;-ms-flex-pack:start;
63-webkit-justify-content:flex-start;justify-content:flex-start;}}@media (max-width: 768px){footer .footer .info-privacy .socials_zone{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:0;margin-bottom:20px;}footer .footer .info-privacy .socials_zone li{padding:0 7px 10px 7px;}}footer .footer.one_contact .type_user{margin-bottom:73px;}@media (max-width: 768px){footer .footer.one_contact .type_user{margin-bottom:51px;}}footer .footer.no_newsletter h3{margin-bottom:46px;}footer .footer.no_newsletter .newsletter_box{display:none;}footer .footer.no_newsletter .info-wrap-contact{width:calc(70% + 230px);width:100%;padding-left:230px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact{padding-left:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact{width:100%;}}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_cell{width:50%;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_cell{width:100%;}}footer .footer.no_newsletter .info-wrap-contact h4{position:absolute;margin-top:-8px;left:0;max-width:200px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;width:100%;margin-bottom:20px;margin-top:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;}}footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:71px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:39px;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:51px;}}footer .footer.no_newsletter .info-wrap-contact_zone:last-child{margin-bottom:0;}footer .footer.no_icon .info-wrap-contact_cell{padding-left:0;}footer .footer.no_icon .info-wrap-contact_cell i{display:none;}footer .footer.no-names .info-wrap-contact{padding-left:0;}footer .form-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-left:-15px;margin-right:-15px;}@media (min-width: 1281px){footer .form-row{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}@media (max-width: 900px){footer .form-row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;padding-left:15px;padding-right:15px;}@media (min-width: 768px){footer .form-col{-webkit-flex:1 1 0;-ms-flex:1 1 0;flex:1 1 0;}}@media (min-width: 768px){footer .form-col--socials{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}}@media (min-width: 1281px){footer .form-col--socials{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;}}@media (max-width: 768px){footer .form-col--socials{-webkit-order:-1;-ms-flex-order:-1;order:-1;}}@media (min-width: 1281px){footer .form-col--xl-auto{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;}}footer .additional-links-separator{display:block;width:100%;height:0;overflow:hidden;}@media (min-width: 768px){footer .additional-links-separator{display:inline;width:auto;height:auto;}footer .additional-links-separator:before{content:"|";}}footer .h-pot{height:0;width:0;overflow:hidden;visibility:hidden;}footer .img-wrap{max-width:100px;width:100%;display:block;margin-right:20px;}@media (max-width: 900px){footer .img-wrap{margin-right:0;margin-bottom:10px;}}footer .img-wrap img{width:100%;object-fit:cover;}footer .powered-box{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;}@media (max-width: 900px){footer .powered-box{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col--copyright{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:10px 0;}footer .luxury-link{white-space:nowrap;}footer .footer__disclaimers{padding-top:24px;padding-bottom:24px;}@media (max-width: 900px){footer .footer__disclaimers{text-align:center;}}body>div.mobile-contact-wrapper{z-index:200;position:relative;}body>div.mobile-contact-wrapper .lp-ico:before{content:'';width:1em;height:1em;background-color:currentColor;-webkit-background-size:cover;background-size:cover;display:block;-webkit-mask-position:center;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-transition:all .3s;transition:all .3s;}body>div.mobile-contact-wrapper .lp-ico-search:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='25' height='25' viewB
63ox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6231 21.3002L17.1372 16.8143M19.5606 10.9877C19.5606 15.5441 15.8669 19.2377 11.3106 19.2377C6.75421 19.2377 3.06055 15.5441 3.06055 10.9877C3.06055 6.43135 6.75421 2.73769 11.3106 2.73769C15.8669 2.73769 19.5606 6.43135 19.5606 10.9877Z' stroke='black' stroke-width='1.82813' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='25' height='25' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6231 21.3002L17.1372 16.8143M19.5606 10.9877C19.5606 15.5441 15.8669 19.2377 11.3106 19.2377C6.75421 19.2377 3.06055 15.5441 3.06055 10.9877C3.06055 6.43135 6.75421 2.73769 11.3106 2.73769C15.8669 2.73769 19.5606 6.43135 19.5606 10.9877Z' stroke='black' stroke-width='1.82813' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='25' height='25' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6231 21.3002L17.1372 16.8143M19.5606 10.9877C19.5606 15.5441 15.8669 19.2377 11.3106 19.2377C6.75421 19.2377 3.06055 15.5441 3.06055 10.9877C3.06055 6.43135 6.75421 2.73769 11.3106 2.73769C15.8669 2.73769 19.5606 6.43135 19.5606 10.9877Z' stroke='black' stroke-width='1.82813' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-arrow-top:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.8716 9.99976L8.87158 5.99976L4.87158 9.99976' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.8716 9.99976L8.87158 5.99976L4.87158 9.99976' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.8716 9.99976L8.87158 5.99976L4.87158 9.99976' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-scroll-top:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 3H3M12 21V7M12 7L5 14M12 7L19 14' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 3H3M12 21V7M12 7L5 14M12 7L19 14' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 3H3M12 21V7M12 7L5 14M12 7L19 14' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");}body>div.mobile-contact-wrapper .lp-ico-close:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5986 6.32617L5.59863 18.3262M5.59863 6.32617L17.5986 18.3262' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5986 6.32617L5.59863 18.3262M5.59863 6.32617L17.5986 18.3262' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5986 6.32617L5.59863 18.3262M5.59863 6.32617L17.5986 18.3262' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");}body>div.mobile-contact-wrapper .lp-ico-phone:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8
63699 6.57142C14.7459 6.74157 15.551 7.16808 16.1821 7.79637C16.8132 8.42465 17.2416 9.22612 17.4126 10.0982M13.8699 3C15.6899 3.20128 17.3871 4.01265 18.6827 5.3009C19.9784 6.58914 20.7955 8.27768 21 10.0893M10.4412 13.592C9.36357 12.5192 8.51264 11.3061 7.88843 10.0118C7.83474 9.90047 7.80789 9.84481 7.78726 9.77437C7.71397 9.52405 7.76662 9.21668 7.91909 9.00469C7.962 8.94504 8.01326 8.894 8.11578 8.79194C8.42933 8.47979 8.58611 8.32372 8.6886 8.16677C9.07515 7.57491 9.07515 6.81189 8.6886 6.22002C8.58611 6.06308 8.42933 5.90701 8.11578 5.59486L7.94101 5.42087C7.46438 4.94637 7.22607 4.70912 6.97012 4.58024C6.4611 4.32392 5.85996 4.32392 5.35093 4.58024C5.09499 4.70912 4.85667 4.94637 4.38004 5.42087L4.23867 5.56161C3.76367 6.03449 3.52617 6.27093 3.34478 6.59239C3.1435 6.94909 2.99878 7.5031 3.00001 7.91222C3.00111 8.28092 3.07295 8.53291 3.21664 9.03688C3.98881 11.7453 5.44574 14.3009 7.58743 16.4331C9.72911 18.5652 12.2963 20.0156 15.0168 20.7843C15.523 20.9274 15.7761 20.9989 16.1465 21C16.5575 21.0012 17.114 20.8571 17.4723 20.6568C17.7952 20.4762 18.0327 20.2397 18.5077 19.7669L18.649 19.6261C19.1257 19.1516 19.364 18.9144 19.4934 18.6596C19.7509 18.1528 19.7509 17.5544 19.4934 17.0476C19.364 16.7928 19.1257 16.5556 18.649 16.0811L18.4743 15.9071C18.1607 15.5949 18.0039 15.4388 17.8463 15.3368C17.2518 14.952 16.4853 14.952 15.8908 15.3368C15.7332 15.4388 15.5764 15.5949 15.2628 15.9071C15.1603 16.0091 15.1091 16.0602 15.0491 16.1029C14.8362 16.2547 14.5274 16.3071 14.276 16.2341C14.2052 16.2136 14.1493 16.1869 14.0375 16.1334C12.7374 15.512 11.5189 14.6648 10.4412 13.592Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8699 6.57142C14.7459 6.74157 15.551 7.16808 16.1821 7.79637C16.8132 8.42465 17.2416 9.22612 17.4126 10.0982M13.8699 3C15.6899 3.20128 17.3871 4.01265 18.6827 5.3009C19.9784 6.58914 20.7955 8.27768 21 10.0893M10.4412 13.592C9.36357 12.5192 8.51264 11.3061 7.88843 10.0118C7.83474 9.90047 7.80789 9.84481 7.78726 9.77437C7.71397 9.52405 7.76662 9.21668 7.91909 9.00469C7.962 8.94504 8.01326 8.894 8.11578 8.79194C8.42933 8.47979 8.58611 8.32372 8.6886 8.16677C9.07515 7.57491 9.07515 6.81189 8.6886 6.22002C8.58611 6.06308 8.42933 5.90701 8.11578 5.59486L7.94101 5.42087C7.46438 4.94637 7.22607 4.70912 6.97012 4.58024C6.4611 4.32392 5.85996 4.32392 5.35093 4.58024C5.09499 4.70912 4.85667 4.94637 4.38004 5.42087L4.23867 5.56161C3.76367 6.03449 3.52617 6.27093 3.34478 6.59239C3.1435 6.94909 2.99878 7.5031 3.00001 7.91222C3.00111 8.28092 3.07295 8.53291 3.21664 9.03688C3.98881 11.7453 5.44574 14.3009 7.58743 16.4331C9.72911 18.5652 12.2963 20.0156 15.0168 20.7843C15.523 20.9274 15.7761 20.9989 16.1465 21C16.5575 21.0012 17.114 20.8571 17.4723 20.6568C17.7952 20.4762 18.0327 20.2397 18.5077 19.7669L18.649 19.6261C19.1257 19.1516 19.364 18.9144 19.4934 18.6596C19.7509 18.1528 19.7509 17.5544 19.4934 17.0476C19.364 16.7928 19.1257 16.5556 18.649 16.0811L18.4743 15.9071C18.1607 15.5949 18.0039 15.4388 17.8463 15.3368C17.2518 14.952 16.4853 14.952 15.8908 15.3368C15.7332 15.4388 15.5764 15.5949 15.2628 15.9071C15.1603 16.0091 15.1091 16.0602 15.0491 16.1029C14.8362 16.2547 14.5274 16.3071 14.276 16.2341C14.2052 16.2136 14.1493 16.1869 14.0375 16.1334C12.7374 15.512 11.5189 14.6648 10.4412 13.592Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8699 6.57142C14.7459 6.74157 15.551 7.16808 16.1821 7.79637C16.8132 8.42465 17.2416 9.22612 17.4126 10.0982M13.8699 3C15.6899 3.20128 17.3871 4.01265 18.6827 5.3009C19.9784 6.58914 20.7955 8.27768 21 10.0893M10.4412 13.592C9.36357 12.5192 8.51264 11.3061 7.88843 10.0118C7.83474 9.90047 7.80789 9.84481 7.78726 9.77437C7.71397 9.52405 7.76662 9.21668 7.91909 9.00469C7.962 8.94504 8.01326 8.894 8.11578 8.79194C8.42933 8.47979 8.58611 8.32372 8.6886 8.16677C9.07515 7.57491 9.07515 6.81189 8.6886 6.22002C8.58611 6.06308 8.42933 5.90701 8.11578 5.59486L7.94101 5.42087C7.46438 4.94637 7.22607 4.70912 6.97012 4.58024C6.4611 4.32392 5.85996 4.32392 5.35093 4.58024C5.09499 4.70912 4.85667 4.94637 4.38004 5.42087L4.23867 5.56161C3.76367 6.03449 3.52617 6.27093 3.34478 6.59239C3.1435 6.94909 2.99878 7.5031 3.00001 7.91222C3.00111 8.28092 3.07295 8.53291 3.21664 9.03688C3.98881 11.7453 5.44574 14.3009 7.58743 16.4331C9.72911 18.5652 12.2963 20.0156 15.0168 20.7843C15.523 20.9274 15.7761 20.9989 16.1465 21C16.5575 21.0012 17.114 20.8571 17.4723 20.6568C17.7952 20.4762 18.0327 20.2397 18.5077 19.7669L18.649 19.6261C19.1257 19.1516 19.364 18.9144 19.4934 18.6596C19.7509 18.1528 19.7509 17.5544 19.4934 17.0476C19.364 16.7928 19.1257 16.5556 18.649 16.0811L18.4743 15.9071C18.1607 15.5949 18.0039 15.4388 17.8463 15.3368C17.2518 14.952 16.4853 14.952 15.8908 15.3368C15.7332 15.4388 15.5764 15.5949 15.2628 15.9071C15.1603 16.0091 15.1091 16.0602 15.0491 16.1029C14.8362 16.2547 14.5274 16.3071 14.276 16.2341C14.2052 16.2136 14.1493 16.1869 14.0375 16.1334C12.7374 15.512 11.5189 14.6648 10.4412 13.592Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-sms:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 11.5C21.0034 12.8199 20.6951 14.1219 20.1 15.3C19.3944 16.7117 18.3098 17.8992 16.9674 18.7293C15.6251 19.5594 14.0782 19.9994 12.5 20C11.1801 20.0034 9.87812 19.6951 8.7 19.1L3 21L4.9 15.3C4.30493 14.1219 3.99656 12.8199 4 11.5C4.00061 9.92176 4.44061 8.37485 5.27072 7.03255C6.10083 5.69025 7.28825 4.60557 8.7 3.9C9.87812 3.30493 11.1801 2.99656 12.5 3H13C15.0843 3.11499 17.053 3.99476 18.5291 5.47086C20.0052 6.94695 20.885 8.91565 21 11V11.5Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 11.5C21.0034 12.8199 20.6951 14.1219 20.1 15.3C19.3944 16.7117 18.3098 17.8992 16.9674 18.7293C15.6251 19.5594 14.0782 19.9994 12.5 20C11.1801 20.0034 9.87812 19.6951 8.7 19.1L3 21L4.9 15.3C4.30493 14.1219 3.99656 12.8199 4 11.5C4.00061 9.92176 4.44061 8.37485 5.27072 7.03255C6.10083 5.69025 7.28825 4.60557 8.7 3.9C9.87812 3.30493 11.1801 2.99656 12.5 3H13C15.0843 3.11499 17.053 3.99476 18.5291 5.47086C20.0052 6.94695 20.885 8.91565 21 11V11.5Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 11.5C21.0034 12.8199 20.6951 14.1219 20.1 15.3C19.3944 16.7117 18.3098 17.8992 16.9674 18.7293C15.6251 19.5594 14.0782 19.9994 12.5 20C11.1801 20.0034 9.87812 19.6951 8.7 19.1L3 21L4.9 15.3C4.30493 14.1219 3.99656 12.8199 4 11.5C4.00061 9.92176 4.44061 8.37485 5.27072 7.03255C6.10083 5.69025 7.28825 4.60557 8.7 3.9C9.87812 3.30493 11.1801 2.99656 12.5 3H13C15.0843 3.11499 17.053 3.99476 18.5291 5.47086C20.0052 6.94695 20.885 8.91565 21 11V11.5Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-email:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 18L14.85
6371 12M9.14286 12L2.50003 18M2 7L10.1649 12.7154C10.8261 13.1783 11.1567 13.4097 11.5163 13.4993C11.8339 13.5785 12.1661 13.5785 12.4837 13.4993C12.8433 13.4097 13.1739 13.1783 13.8351 12.7154L22 7M6.8 20H17.2C18.8802 20 19.7202 20 20.362 19.673C20.9265 19.3854 21.3854 18.9265 21.673 18.362C22 17.7202 22 16.8802 22 15.2V8.8C22 7.11984 22 6.27976 21.673 5.63803C21.3854 5.07354 20.9265 4.6146 20.362 4.32698C19.7202 4 18.8802 4 17.2 4H6.8C5.11984 4 4.27976 4 3.63803 4.32698C3.07354 4.6146 2.6146 5.07354 2.32698 5.63803C2 6.27976 2 7.11984 2 8.8V15.2C2 16.8802 2 17.7202 2.32698 18.362C2.6146 18.9265 3.07354 19.3854 3.63803 19.673C4.27976 20 5.11984 20 6.8 20Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 18L14.8571 12M9.14286 12L2.50003 18M2 7L10.1649 12.7154C10.8261 13.1783 11.1567 13.4097 11.5163 13.4993C11.8339 13.5785 12.1661 13.5785 12.4837 13.4993C12.8433 13.4097 13.1739 13.1783 13.8351 12.7154L22 7M6.8 20H17.2C18.8802 20 19.7202 20 20.362 19.673C20.9265 19.3854 21.3854 18.9265 21.673 18.362C22 17.7202 22 16.8802 22 15.2V8.8C22 7.11984 22 6.27976 21.673 5.63803C21.3854 5.07354 20.9265 4.6146 20.362 4.32698C19.7202 4 18.8802 4 17.2 4H6.8C5.11984 4 4.27976 4 3.63803 4.32698C3.07354 4.6146 2.6146 5.07354 2.32698 5.63803C2 6.27976 2 7.11984 2 8.8V15.2C2 16.8802 2 17.7202 2.32698 18.362C2.6146 18.9265 3.07354 19.3854 3.63803 19.673C4.27976 20 5.11984 20 6.8 20Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 18L14.8571 12M9.14286 12L2.50003 18M2 7L10.1649 12.7154C10.8261 13.1783 11.1567 13.4097 11.5163 13.4993C11.8339 13.5785 12.1661 13.5785 12.4837 13.4993C12.8433 13.4097 13.1739 13.1783 13.8351 12.7154L22 7M6.8 20H17.2C18.8802 20 19.7202 20 20.362 19.673C20.9265 19.3854 21.3854 18.9265 21.673 18.362C22 17.7202 22 16.8802 22 15.2V8.8C22 7.11984 22 6.27976 21.673 5.63803C21.3854 5.07354 20.9265 4.6146 20.362 4.32698C19.7202 4 18.8802 4 17.2 4H6.8C5.11984 4 4.27976 4 3.63803 4.32698C3.07354 4.6146 2.6146 5.07354 2.32698 5.63803C2 6.27976 2 7.11984 2 8.8V15.2C2 16.8802 2 17.7202 2.32698 18.362C2.6146 18.9265 3.07354 19.3854 3.63803 19.673C4.27976 20 5.11984 20 6.8 20Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper a{-webkit-text-decoration:none;text-decoration:none;}body>div.mobile-contact-wrapper .btn-holder{bottom:-50px;left:19px;position:fixed;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:13px;opacity:0;-webkit-transition:all .3s;transition:all .3s;}@media (max-width: 1024px){body>div.mobile-contact-wrapper .btn-holder{right:19px;padding:0 48px;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}body>div.mobile-contact-wrapper .btn-holder.visible{bottom:28px;opacity:1;}body>div.mobile-contact-wrapper .search-btn{width:48px;height:48px;border-radius:999px;font-size:0;line-height:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-transition:all .3s;transition:all .3s;padding:12px;color:#141414;background:#fff;}@media (max-width: 1024px){body>div.mobile-contact-wrapper .search-btn{position:absolute;left:0;bottom:0;}}body>div.mobile-contact-wrapper .search-btn:before{width:24px;height:24px;}body>div.mobile-contact-wrapper .connect-btn{height:48px;padding:0 24px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;text-transform:uppercase;border-radius:25px;color:var(--pillTextColor);background:var(--pillBackgroundColor);border:1px solid rgba(255, 255, 255, 0.2);cursor:pointer;font-size:10px;font-style:normal;font-weight:500;line-height:16px;letter-spacing:0.4px;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-transition:all .4s;transition:all .4s;box-shadow:0 0 0 0 rgba(255, 255, 255, 0.2);-webkit-animation:pulsate 2s ease infinite;animation:pulsate 2s ease infinite;}body>div.mobile-contact-wrapper .connect-btn:before{width:16px;height:16px;}body>div.mobile-contact-wrapper .pop-up{display:none;position:fixed;bottom:0;left:0;width:100%;-webkit-transition:all .3s;transition:all .3s;border-radius:16px 16px 0 0;color:var(--textColor);background:var(--backgroundColor);}@media (max-height: 850px){body>div.mobile-contact-wrapper .pop-up{max-height:85vh;overflow-y:auto;}}@media (min-width: 1025px){body>div.mobile-contact-wrapper .pop-up{max-height:none;overflow-y:initial;max-width:637px;border-radius:16px;bottom:28px;left:19px;}}body>div.mobile-contact-wrapper .pop-up .lp-container{padding-top:24px;padding-bottom:24px;-webkit-box-pack:center;-ms-flex-pack:center;
63-webkit-justify-content:center;justify-content:center;}@media (min-width: 1025px){body>div.mobile-contact-wrapper .pop-up .lp-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:40px;padding-bottom:40px;min-height:450px;padding-left:56px;padding-right:56px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}body>div.mobile-contact-wrapper .pop-up .close-btn{width:44px;height:44px;background-color:transparent;border-color:transparent;display:block;margin:24px auto 0;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--textColor);cursor:pointer;padding:10px;border:0;}body>div.mobile-contact-wrapper .pop-up .close-btn:before{width:24px;height:24px;}@media (min-width: 1025px){body>div.mobile-contact-wrapper .pop-up .close-btn{position:absolute;top:14px;right:12px;margin:0;}}body>div.mobile-contact-wrapper .pop-up .icon-btn{width:44px;height:44px;border-radius:999px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:8px;color:var(--textColor);position:relative;}body>div.mobile-contact-wrapper .pop-up .icon-btn:after{position:absolute;bottom:0;width:100%;left:0;border-radius:999px;
63height:100%;content:'';border:solid 1px var(--textColor);opacity:.3;}body>div.mobile-contact-wrapper .pop-up .icon-btn:before{width:24px;height:24px;}body>div.mobile-contact-wrapper .success-block{display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media (min-width: 1025px){body>div.mobile-contact-wrapper .success-block{-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}body>div.mobile-contact-wrapper .success-block .lp-btn{margin-top:24px;}body>div.mobile-contact-wrapper .contact-form{margin:0;}@media (max-width: 1024px){body>div.mobile-contact-wrapper .contact-form__item{width:100%;}}body>div.mobile-contact-wrapper .contact-form__item .lp-input{width:100%;}body>div.mobile-contact-wrapper .contact-form__item .is-placeholder{color:#818181;}body>div.mobile-contact-wrapper .contact-form__item+.contact-form__item{margin-top:16px;}body>div.mobile-contact-wrapper .contact-form.show-success .contact-form__container,body>div.mobile-contact-wrapper .contact-form.success .contact-form__container{display:none;}body>div.mobile-contact-wrapper .contact-form.show-success .success-block,body>div.mobile-contact-wrapper .contact-form.success .success-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}body>div.mobile-contact-wrapper .contact-form .lp-disclaimer{margin-top:16px;}body>div.mobile-contact-wrapper .contact-form .lp-h3{margin-bottom:16px;}body>div.mobile-contact-wrapper .success-message{font-size:22px;}@-webkit-keyframes pulsate{0%{box-shadow:0 0 0 0 rgba(255, 255, 255, 0.2);}50%{box-shadow:0 0 4px 6px rgba(255, 255, 255, .5);}100%{box-shadow:0 0 12px 12px rgba(255, 255, 255, 0);}}
64        </style>
65    <style id="custom-style-css">.social_icons-style-1 a{border-color:rgba(24, 31, 36, 1)!important;background-color:rgba(0, 0, 0, 0)!important;color:rgba(24, 31, 36, 1)!important;}.social_icons-style-1 a:hover{border-color:rgba(24, 31, 36, 1)!important;background-color:rgba(24, 31, 36, 1)!important;color:rgba(255,255,255,1)!important;}.social_icons-style-1 a i{color:inherit!important;}
65.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.button-style-1{color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 0)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-1:hover{color:rgba(65, 145, 198, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:#FFFFFF!important;}.pagination-style-1 li a{color:rgba(24, 31, 36, 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(65, 145, 198, 1)!important;border-color:rgba(65, 145, 198, 1)!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(65, 145, 198, 1)!important;border-color:rgba(65, 145, 198, 1)!important;}.hyperlink-style-1{color:rgba(24, 31, 36, 1)!important;}.hyperlink-style-1:hover{color:rgba(65, 145, 198, 1)!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:rgba(65, 145, 198, 1)!important;}.button-style-2{color:rgba(24, 31, 36, 1)!important;background-color:rgba(24, 31, 36, 0)!important;border-color:rgba(24, 31, 36, 1)!important;}.button-style-2:hover{color:#FFFFFF!important;background-color:rgba(65, 145, 198, 1)!important;border-color:rgba(65, 145, 198, 1)!important;}.social_icons-style-2 a{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-2 a:hover{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 1)!important;color:rgba(65, 145, 198, 1)!important;}.social_icons-style-2 a i{color:inherit!important;}
65.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.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(65, 145, 198, 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(65, 145, 198, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255,255,255,1)!important;}.button-style-3{color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 0)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-3:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(65, 145, 198, 1)!important;border-color:rgba(65, 145, 198, 1)!important;}.button-style-4{color:rgba(255, 255, 255, 1)!important;background-color:rgba(65, 145, 198, 1)!important;border-color:rgba(65, 145, 198, 1)!important;}.button-style-4:hover{color:#FFFFFF!important;background-color:rgba(24, 31, 36, 1)!important;border-color:rgba(24, 31, 36, 1)!important;}.button-style-5{color:rgba(255, 255, 255, 1)!important;background-color:rgba(65, 145, 198, 1)!important;border-color:rgba(65, 145, 198, 1)!important;}.button-style-5:hover{color:rgba(65, 145, 198, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:#FFFFFF!important;}</style>
66        <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode
67             defaults, and dynamically loads the locale + main (and banner if needed). -->
68        
68<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="5c8ab3ef-2f1d-45fe-9125-fcc3c56486bf"></script>
68
69
70
71        
71<script>
72            (function utmParse() {
73                const url = new URL(window.location.href);
74                if (url.search) {
75                    const utm = url.search.split(/\?|&/g).reduce((acc, current) => {
76                        const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g);
77                        if (matched) {
78                        acc[matched[0]] = current.replace(`${matched[0]}=`, '');
79                        }
80                        return acc;
81                    }, {});
82                    if (Object.keys(utm).length) {
83                        window.localStorage.setItem('utm_vars', JSON.stringify(utm));
84                    } else {
85                        // Remove old utm vars
86                        window.localStorage.removeItem('utm_vars');
87                    }
88                }
89                // Set referrer in local storage
90                // This is meant to be stored once to avoid self-referrals and to have the first referrer only.
91                if (!window.localStorage.getItem('referrer')) {
92                    // Capture the Referrer URL
93                    const referrer = document.referrer;
94                    if (referrer) {
95                        // Only store the referrer if it comes from outside the current domain (to avoid self-referrals)
96                        const currentDomain = window.location.hostname;
97                        const referrerDomain = new URL(referrer).hostname;
98
99                        if (referrerDomain !== currentDomain) {
100                            // Store it in localStorage
101                            localStorage.setItem('referrer', referrer);
102                        }
103                    }
104                }
105            })();
106        </script>
106
107        <!-- Bing Webmaster Tools Verification -->
108   
108<script>
109        // Check if on the homepage before the body loads
110        if (window.location.pathname === '/' || window.location.pathname === '/index.html') {
111            document.write('<meta name="msvalidate.01" content="FD1AE9665AF4EABB9DF11EF5ACC83A2A" />');
112        }
113 </script>
113
114 
114<script type="application/ld+json">
115{
116  "@context": "https://schema.org",
117  "@type": "RealEstateAgent",
118  "name": "Jeanette Mitchell",
119  "keywords": "real estate agent Gaithersburg, Gaithersburg realtor, Jeanette Mitchell real estate",
120  "image": "https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/tlskq5tw6agoxthtaigo",
121  "@id": "",
122  "url": "https://hometowncollectionmb.com/",
123  "telephone": "(301) 580-3051",
124  "priceRange": "$$",
125  "address": {
126    "@type": "PostalAddress",
127    "streetAddress": "406 Tschiffely Square Rd",
128    "addressLocality": "Gaithersburg",
129    "addressRegion": "MD",
130    "postalCode": "20878",
131    "addressCountry": "US"
132  },
133  "geo": {
134    "@type": "GeoCoordinates",
135    "latitude": 39.1215167,
136    "longitude": -77.24441929999999
137  },
138  "openingHoursSpecification": {
139    "@type": "OpeningHoursSpecification",
140    "dayOfWeek": [
141      "Monday",
142      "Tuesday",
143      "Wednesday",
144      "Thursday",
145      "Friday",
146      "Saturday",
147      "Sunday"
148    ],
149    "opens": "09:00",
150    "closes": "18:00"
151  },
152  "sameAs": [
153    "https://www.facebook.com/HometownCollectionMB/",
154    "https://www.instagram.com/hometowncollection_mb/",
155    "https://www.linkedin.com/company/hometown-collection-by-mitchell-best/",
156    "https://www.google.com/search?q=home+town+collection+Gaithersburg%2C+MD&sca_esv=e7fb66bace9eb99e&ei=AT0EZ4KLBonf2roPi93EoQg&ved=0ahUKEwjCj-jehv2IAxWJr1YBHYsuMYQQ4dUDCA8&uact=5&oq=home+town+collection+Gaithersburg%2C+MD&gs_lp=Egxnd3Mtd2l6LXNlcnAiJWhvbWUgdG93biBjb2xsZWN0aW9uIEdhaXRoZXJzYnVyZywgTUQyCBAAGIAEGKIEMggQABiABBiiBDIIEAAYgAQYogRInoEBUABY93hwAngAkAEAmAF_oAGVE6oBBTEyLjEyuAEDyAEA-AEB-AECmAIaoAKgFMICCxAAGIAEGLEDGIMBwgIIEAAYgAQYsQPCAgUQLhiABMICDhAAGIAEGLEDGIMBGIoFwgIFEAAYgATCAgoQABiABBhDGIoFwgIOEC4YgAQYsQMY0QMYxwHCAhEQLhiABBixAxjRAxiDARjHAcICGRAuGIAEGLEDGNEDGEMYgwEYxwEYyQMYigXCAgsQABiABBiSAxiKBcICKBAuGIAEGLEDGNEDGEMYgwEYxwEYyQMYigUYlwUY3AQY3gQY4ATYAQHCAggQLhiABBixA8ICCxAuGIAEGLEDGNQCwgIQEC4YgAQY0QMYQxjHARiKBcICBxAAGIAEGArCAhEQLhiABBjHARiYBRiZBRivAcICCxAuGIAEGMcBGK8BwgIGEAAYFhgewgIIEAAYFhgKGB7CAggQABgWGB4YD8ICGhAuGIAEGMcBGK8BGJcFGNwEGN4EGOAE2AEBwgIKEAAYFhgKGB4YD8ICCBAuGBYYChgewgIOEC4YFhjHARgKGB4YrwHCAgsQABiABBiGAxiKBcICBxAAGIAEGA3CAgYQABgNGB7CAggQABgNGB4YD8ICBxAhGKABGAqYAwC6BgYIARABGBSSBwQ5LjE3oAfH5AE&sclient=gws-wiz-serp#lrd=0x89b62d83a416aaab:0x702654f848ae0d7,3,,,,"
157  ] 
158}
159</script>
159
160
161<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 161-162
161
162<script async src="https://www.googletagmanager.com/gtag/js?id=
162G-JP7X59867S
vendor: 13 bytes, line 162
162"></script>
163<script>
164  
vendor: 138 bytes, lines 164-168
164window.dataLayer = window.dataLayer || [];
165  function gtag(){dataLayer.push(arguments);}
166  gtag('js', new Date());
167
168  gtag('config', '
168G-JP7X59867S
vendor: 5 bytes, line 168
168');
169</script>
169
170    <!-- GOOGLE TRANSLATE STYLES are moved to external CSS -->
171</head>
172<body>
173    <div id="google_translate_element" style="display: none"></div>
174
175        <nav id="global-navbar" data-el-id="43e7a874-fb1e-4cdd-91fe-eb6bf5b9179b">
176            <div class="redesign">
177  <div class="content-container header">
178    <div class="container header__container">
179      <div class="navbar">
180        <div class="logo">
181          <a href="/" class="logo__link">
182            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/tlskq5tw6agoxthtaigo" 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/tlskq5tw6agoxthtaigo 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/tlskq5tw6agoxthtaigo 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/tlskq5tw6agoxthtaigo 986w" class="logo__img light" alt="">
183            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/tlskq5tw6agoxthtaigo" 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/tlskq5tw6agoxthtaigo 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/tlskq5tw6agoxthtaigo 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/tlskq5tw6agoxthtaigo 986w" class="logo__img dark" alt="">
184          </a>
185        </div>
186        <div class="navigation">
187          <ul>
188            <li class="navigation__item">
189              <a  href="/" class="navigation__link wow fadeInUp" data-wow-delay="2.0"><span>HOME</span></a>
190            </li>
191            <li class="navigation__item">
192              <a  href="/floor-plans" class="navigation__link wow fadeInUp" data-wow-delay="2.1"><span>FLOOR PLANS</span></a>
193            </li>
194            <li class="navigation__item">
195              <a  href="/available-homes" class="navigation__link wow fadeInUp" data-wow-delay="2.2"><span>AVAILABLE HOMES</span></a>
196            </li>
197            <li class="navigation__item">
198              <a  href="/available-lots" class="navigation__link wow fadeInUp" data-wow-delay="2.3"><span>AVAILABLE LOTS</span></a>
199            </li>
200            <li class="navigation__item">
201              <a  href="/our-process" class="navigation__link wow fadeInUp" data-wow-delay="2.4"><span>OUR PROCESS</span></a>
202            </li>
203            <li class="navigation__item">
204              <a  href="/about-us" class="navigation__link wow fadeInUp" data-wow-delay="2.5"><span>ABOUT US</span></a>
205            </li>
206            <li class="navigation__item">
207              <a data-type="CONTACT_US" class="navigation__link wow fadeInUp"><span>CONTACT US</span></a>
208            </li>
209            <li class="navigation__item">
210              <a  href="tel:3015803051" class="navigation__link wow fadeInUp" data-wow-delay="2.7"><span>(301) 580-3051</span></a>
211            </li>
212          </ul>
213        </div>
214        <div class="buttons-wrapper">
215          <button type="button" class="hamburger-component hamburger">
216            <span class="hamburger__bars"></span>
217          </button>
218        </div>
219      </div>
220    </div>
221  </div>
222</div>
223
224        </nav>
225        <div id="global-sidemenu" class="sidemenu" data-el-id="11fa925d-d2dd-4213-a0fa-d46f769e2c18">
226            <div class="sidebar">
227  
228  <button class="toggle sidebar__close close"></button>
229  <div class="sidebar__content">
230
231    <ul class="sidebar__nav">
232      <li class="sidebar__nav-item">
233        <a  href="/" class="sidebar__nav-link">Home</a>
234      </li>
235      <li class="sidebar__nav-item">
236        <a  href="/floor-plans" class="sidebar__nav-link">Floor Plans</a>
237      </li>
238      <li class="sidebar__nav-item">
239        <a  href="/available-homes" class="sidebar__nav-link">Available Homes</a>
240      </li>
241      <li class="sidebar__nav-item">
242        <a  href="/available-lots" class="sidebar__nav-link">Available Lots</a>
243      </li>
244      <li class="sidebar__nav-item">
245        <a  href="/our-process" class="sidebar__nav-link">Our Process</a>
246      </li>
247      <li class="sidebar__nav-item">
248        <a  href="/properties" class="sidebar__nav-link">Portfolio</a>
249      </li>
250      <li class="sidebar__nav-item">
251        <a  href="/build-on-your-lot" class="sidebar__nav-link">Build on Your Lot</a>
252      </li>
253      <li class="sidebar__nav-item sub-nav-container">
254        <div class="sub-nav">
255          <ul class="sidebar__subnav">
256            <li class="sidebar__subnav-item"><a  href="/netzero-homes" class="sidebar__subnav-link">NetZer0 Homes</a></li>
257            <li class="sidebar__subnav-item"><a  href="/accessory-dwelling-units" class="sidebar__subnav-link">Accesory Dwelling Units</a></li>
258            <li class="sidebar__subnav-item"><a  href="/accessible-home-building" class="sidebar__subnav-link">Accessible Home Building</a></li>
259            <li class="sidebar__subnav-item"><a  href="/multigenerational-homes" class="sidebar__subnav-link">Multigenerational Homes</a></li>
260          </ul>
261        </div>
262        <a href="#" class="sidebar__nav-link link main-nav">Special Features</a>
263      </li>
264      <li class="sidebar__nav-item">
265        <a  href="/blog" class="sidebar__nav-link">Blog</a>
266      </li>
267      <li class="sidebar__nav-item">
268        <a  href="/faq" class="sidebar__nav-link">FAQ</a>
269      </li>
270      <li class="sidebar__nav-item">
271        <a  href="/about-us" class="sidebar__nav-link">About Us</a>
272      </li>
273      <li class="sidebar__nav-item">
274        <a  href="/contact-us" class="sidebar__nav-link">Contact Us</a>
275      </li>
276    </ul>
277  </div>
278</div>
279        </div>
280        <div  id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="befe5af2-a6ca-4119-924a-a85d96d36b51">
281            <div class="btn-holder" 
282style="
283--backgroundColor: rgba(255, 255, 255, 1); 
284--textColor: rgba(24, 31, 36, 1); 
285--pillTextColor: rgba(255, 255, 255, 1); 
286--pillBackgroundColor: rgba(65, 145, 198, 1);">
287
288    <button type="button" class="connect-btn lp-ico lp-ico-arrow-top visible">Let&#x27;s Connect</button>
289</div>
290
291
292<div class="pop-up" style="--backgroundColor: rgba(255, 255, 255, 1); --textColor: rgba(24, 31, 36, 1);">
293  <div class="lp-container">
294    <form data-type="contact-form" class="contact-form">
295      <div class="contact-form__container">
296          <h3 class="lp-h3">Leave a Message</h3>
297      
298        <div class="contact-form__content">
299          <div class="contact-form__inputs-container">
300            <div class="contact-form__item">
301              <input
302                id="__FullName"
303                type="text" name="name"
304                class="lp-input lp-input--dark"
305                required
306                placeholder="Full Name">
307            </div>
308            <div class="contact-form__item">
309              <input
310                id="__Email"
311                type="email" name="email"
312                class="lp-input js-email-input lp-input--dark"
313                required
314                placeholder="Email">
315            </div>
316            <div class="contact-form__item"> 
317              <input
318                class="lp-input lp-input--dark"
319                type="tel" 
320                placeholder="Phone"
321                id="__Phone"
322                name="phone"
323                required>
324            </div>
325
326            <div class="contact-form__item input-group-select">
327              <select name="interest" id="-field-interest" placeholder="Interest"
328                class="lp-input dropdown-select js-select js-form-element lp-input--dark" required>
329                <option value="" disabled selected data-label="Interest">Interested in...</option>
330                <option value="Selling &amp; Buying">Selling &amp; Buying</option>
331                <option value="Selling">Selling</option>
332                <option value="Buying">Buying</option>
333                <option value="Renting">Renting</option>
334                <option value="Other">Other</option>
335              </select>
336              <label for="-field-interest" class="lp-label sr-only">Interest</label>
337            </div>
338
339            <div class="contact-form__item">
340              <textarea
341                name="message"
342                rows="4"
343                id="__Message"
344                class="lp-input lp-input--dark"
345                placeholder="Message"
346                required></textarea>
347            </div>
348            <div class="lp-disclaimer">  <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label>
349  <label class='lp-tcr-content'>
350    <span class='lp-tcr-checkbox'>
351      <input
352        type='checkbox'
353        id='-termsAccepted'
354        name='termsAccepted'
355        oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
356        oninput="this.setCustomValidity('')"
357        required
358      /></span>
359    <span class='lp-tcr-message'>
360      
361        I agree to be contacted by
362        Marty Mitchell
363        via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance.
364        You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary.
365        <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>.
366    </span>
367  </label>
368
369</div>
370            <button type="submit" class="lp-btn lp-btn--filled lp-btn--dark submit  contact-form__item">Submit</button>
371            
372            <div class="lp-h-pot">
373              <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1">
374            </div>
375            
376            <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" />
377            <input type="hidden" name="button_text" value="Let&#x27;s Connect">
378          </div>
379        </div>
380      </div>
381
382
383      <div class="success-block">
384          <h3 class="lp-h3 success-message">Thank you for your message. We will be in touch with you shortly.</h3>
385
386      </div>
387    </form>
388
389    <button type="button" class="close-btn lp-ico lp-ico-close"></button>
390
391    
392  </div>
393</div>
394
395
396        </div>
397        <section  class="image-section is-font-color-light is-background-color-light" id="section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2" data-el-id="feb51d95-d0fa-4995-bd33-c25e295aedf6">
398    <div class="sell-section lp-vertical-paddings redesign">
399  <div class="lp-container">
400    <div class="sell-section__row">
401      <div class="sell-section__col sell-section__col--left">
402        
403        <div class="sell-section__text-wrap">
404          <div class="lp-title-group sell-section__title-group">
405            <h2 class="lp-h2">Floor Plans</h2>
406            <div class="lp-h6 lp-text--subtitle"><h4>FIND YOUR SENSE OF PLACE</h4>
407<p>With our stunning designs, industry-leading building methods, and quality that speaks for itself, these Hometown Collection floor plans provide an unparalleled living experience at the right price. Immerse yourself in every luxurious detail by exploring our collection of floor plans below.</p>
408<p>Get started with our interactive search feature and find the right home for your lifestyle!</p></div>
409          </div>
410        </div>
411        <div class="sell-slider__arrows sell-slider__arrows--desk jsSellSliderArrowsDesk"></div>
412      </div>
413      
414      <div class="sell-section__col">
415        <div class="sell-slider js-sell-slider" data-arrows-style="">
416          <div class="sell-slider__item">
417            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/89d10741-5ddf-4977-bc67-224212aa97c3" 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/89d10741-5ddf-4977-bc67-224212aa97c3 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/89d10741-5ddf-4977-bc67-224212aa97c3 850w" sizes="(max-width: 768px) 100vw, 50vw" alt="0">
418          </div>
419          <div class="sell-slider__item">
420            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/0d102ca6-dea7-458b-b7d9-7f573354d36f" 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/0d102ca6-dea7-458b-b7d9-7f573354d36f 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/0d102ca6-dea7-458b-b7d9-7f573354d36f 850w" sizes="(max-width: 768px) 100vw, 50vw" alt="1">
421          </div>
422          <div class="sell-slider__item">
423            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/4296fb2b-0c12-497c-9257-2f2a2c796f49" 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/4296fb2b-0c12-497c-9257-2f2a2c796f49 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/4296fb2b-0c12-497c-9257-2f2a2c796f49 850w" sizes="(max-width: 768px) 100vw, 50vw" alt="2">
424          </div>
425          <div class="sell-slider__item">
426            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/da864290-86e4-4fbd-95da-56fdfff9dfd4" 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/da864290-86e4-4fbd-95da-56fdfff9dfd4 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/da864290-86e4-4fbd-95da-56fdfff9dfd4 850w" sizes="(max-width: 768px) 100vw, 50vw" alt="3">
427          </div>
428        </div>
429        
430        <div class="sell-section__mob-wiew">
431          <div class="sell-slider__arrows sell-slider__arrows--mob jsSellSliderArrowsMob"></div>
432        </div>
433      </div>
434    </div>
435  </div>
436</div>
437</section>
438<section id="section-da28ff70-b32c-4718-98b5-01a5d85656ab"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="2d9c964b-697a-40d9-b4d7-669b0f28c45d">
439<script type="text/x-handlebars-template" class="gridItem pagination-script"><li class="property-list__item feature">
440  <a class="property-list__item-link"
441    href="{{#if fromMLS}}/home-search/listings/{{id}}{{^}}/properties/{{slug}}{{/if}}" {{#if fromMLS}}
442    data-turbolinks="false" {{/if}}>
443    <div class="property-list__img">
444      {{{mediaImage media.[0] alt=name}}}
445        {{#if openHouseHours}}
446          <div class="open-house label-house bf1">Open House: {{openHouseHours}}</div>
447        {{/if}}
448    </div>
449    <span class="property-list__label">
450      {{formatPropertyStatus status}}
451    </span>
452    <div class="property-list__text">
453      <h4 class="serif">{{name}}</h4>
454      {{#if privateAddress}}
455      <p>
456        Call for Address
457      </p>
458      {{else}}
459      {{#if fullAddress}}
460      <p>
461        {{fullAddress}}
462      </p>
463      {{else}}
464      <p>
465        Call For Address
466      </p>
467      {{/if}}
468      {{/if}}
469      <p>
470        {{#if bedroomCount}} {{bedroomCount}} Bed{{#numCompare bedroomCount 1 ">"}}s{{/numCompare}} {{#if (or
471        livingSpaceSize bathCount)}}|{{/if}} {{/if}}
472        {{#if bathCount}} {{bathCount}} Bath{{#numCompare bathCount 1 ">"}}s{{/numCompare}} {{#numCompare
473        livingSpaceSize 0 ">"}}|{{/numCompare}} {{/if}}
474        {{#if livingSpaceSize}}
475        {{#numCompare livingSpaceSize 0 ">"}}
476        {{lpFormatNumber livingSpaceSize}} {{formatAreaUnit livingSpaceUnits}}
477        {{/numCompare}}
478        {{/if}}
479      </p>
480      <h5 class="price-title">
481        {{~formatPropertyPrice .~}}
482      </h5>
483    </div>
484  </a>
485
486  <div class="property-list__hover">
487    <a href="{{#if fromMLS}}/home-search/listings/{{id}}{{^}}/properties/{{slug}}{{/if}}" {{#if fromMLS}}
488      data-turbolinks="false" {{/if}} class="hover-link"></a>
489    <div class="property-list__buttons">
490      <a class="property-list__view"
491        href="{{#if fromMLS}}/home-search/listings/{{id}}{{^}}/properties/{{slug}}{{/if}}" {{#if fromMLS}}
492        data-turbolinks="false" {{/if}}>
493        <button class="btn btn--primary-dark button-style-2">VIEW PROPERTY</button>
494        <button class="btn btn--primary-light button-style-2">VIEW PROPERTY</button>
495      </a>
496      <div class="property-list__share">
497        <a class="btn btn--primary-dark button-style-2">SHARE PROPERTY</a>
498        <a class="btn btn--primary-light button-style-2">SHARE PROPERTY</a>
499        <ul class="socials socials--block-dark">
500          <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://hometowncollectionmb.com/properties/{{slug}}"
501              target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li>
502          <li><a href="https://twitter.com/intent/tweet?url=https://hometowncollectionmb.com/properties/{{slug}}&text={{name}}"
503              target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li>
504          <li><a href="mailto:?subject={{name}}&body={{name}} - https://hometowncollectionmb.com/properties/{{slug}}"
505              class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li>
506        </ul>
507      </div>
508    </div>
509  </div>
510</li>
511</script>
511
512<div class="redesign property-list-section lp-vertical-paddings">
513  <div>
514      <div class="container title">
515        <h2 class="lp-h2">Floor Plans</h2>
516      </div>
517    <div class="container">
518      <ul
519        class="property-list  three-items data-container">
520        <li class="property-list__item feature">
521          <a class="property-list__item-link"
522            href="/properties/the-kensington" >
523            <div class="property-list__img">
524              <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ea1fa3c6-7050-4672-823c-26eab14d0c17" 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/ea1fa3c6-7050-4672-823c-26eab14d0c17 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ea1fa3c6-7050-4672-823c-26eab14d0c17 1000w" alt="The Kensington" loading="lazy">
525            </div>
526            <span class="property-list__label">
527              For Sale
528            </span>
529            <div class="property-list__text">
530              <h4 class="serif">The Kensington</h4>
531              <p>
532                The base house starts with 4 bedrooms and 2.5 bathrooms., Gaithersburg, MD 20878
533              </p>
534              <p>
535                 3 Beds | 
536                
537                1,997 Sq.Ft.
538              </p>
539              <h5 class="price-title"></h5>
540            </div>
541          </a>
542        
543          <div class="property-list__hover">
544            <a href="/properties/the-kensington"  class="hover-link"></a>
545            <div class="property-list__buttons">
546              <a class="property-list__view"
547                href="/properties/the-kensington" >
548                <button class="btn btn--primary-dark button-style-2">VIEW PROPERTY</button>
549                <button class="btn btn--primary-light button-style-2">VIEW PROPERTY</button>
550              </a>
551              <div class="property-list__share">
552                <a class="btn btn--primary-dark button-style-2">SHARE PROPERTY</a>
553                <a class="btn btn--primary-light button-style-2">SHARE PROPERTY</a>
554                <ul class="socials socials--block-dark">
555                  <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://hometowncollectionmb.com/properties/the-kensington"
556                      target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li>
557                  <li><a href="https://twitter.com/intent/tweet?url=https://hometowncollectionmb.com/properties/the-kensington&text=The Kensington"
558                      target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li>
559                  <li><a href="/cdn-cgi/l/email-protection#645b1711060e01071059300c01442f010a170d0a03100b0a42060b001d59300c01442f010a170d0a03100b0a4449440c101014175e4b4b0c0b0901100b130a070b08080107100d0b0a09064a070b094b14160b140116100d01174b100c01490f010a170d0a03100b0a" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li>
560                </ul>
561              </div>
562            </div>
563          </div>
564        </li>
565        <li class="property-list__item feature">
566          <a class="property-list__item-link"
567            href="/properties/oakland-modified" >
568            <div class="property-list__img">
569              <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/76e7eb73-286e-4625-91ea-c028f1b010e6" alt="The Oakland – Modified" loading="lazy">
570            </div>
571            <span class="property-list__label">
572              For Sale
573            </span>
574            <div class="property-list__text">
575              <h4 class="serif">The Oakland – Modified</h4>
576              <p>
577                 The base house starts with 4 bedrooms, 2.5 bathrooms, and a basement garage., Gaithersburg, MD 20878
578              </p>
579              <p>
580                 4 Beds | 
581                 2.5 Baths | 
582                2,332 Sq.Ft.
583              </p>
584              <h5 class="price-title">$380,000</h5>
585            </div>
586          </a>
587        
588          <div class="property-list__hover">
589            <a href="/properties/oakland-modified"  class="hover-link"></a>
590            <div class="property-list__buttons">
591              <a class="property-list__view"
592                href="/properties/oakland-modified" >
593                <button class="btn btn--primary-dark button-style-2">VIEW PROPERTY</button>
594                <button class="btn btn--primary-light button-style-2">VIEW PROPERTY</button>
595              </a>
596              <div class="property-list__share">
597                <a class="btn btn--primary-dark button-style-2">SHARE PROPERTY</a>
598                <a class="btn btn--primary-light button-style-2">SHARE PROPERTY</a>
599                <ul class="socials socials--block-dark">
600                  <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://hometowncollectionmb.com/properties/oakland-modified"
601                      target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li>
602                  <li><a href="https://twitter.com/intent/tweet?url=https://hometowncollectionmb.com/properties/oakland-modified&text=The Oakland – Modified"
603                      target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li>
604                  <li><a href="/cdn-cgi/l/email-protection#94abe7e1f6fef1f7e0a9c0fcf1b4dbf5fff8f5faf0b4761407b4d9fbf0fdf2fdf1f0b2f6fbf0eda9c0fcf1b4dbf5fff8f5faf0b4761407b4d9fbf0fdf2fdf1f0b4b9b4fce0e0e4e7aebbbbfcfbf9f1e0fbe3faf7fbf8f8f1f7e0fdfbfaf9f6baf7fbf9bbe4e6fbe4f1e6e0fdf1e7bbfbf5fff8f5faf0b9f9fbf0fdf2fdf1f0" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li>
605                </ul>
606              </div>
607            </div>
608          </div>
609        </li>
610        <li class="property-list__item feature">
611          <a class="property-list__item-link"
612            href="/properties/the-oakland" >
613            <div class="property-list__img">
614              <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/5b213ec3-53fc-49f9-98e5-8f1af1c4990e" 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/5b213ec3-53fc-49f9-98e5-8f1af1c4990e 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/5b213ec3-53fc-49f9-98e5-8f1af1c4990e 1000w" alt="The Oakland" loading="lazy">
615            </div>
616            <span class="property-list__label">
617              For Sale
618            </span>
619            <div class="property-list__text">
620              <h4 class="serif">The Oakland</h4>
621              <p>
622                 The base house starts with 4 bedrooms, 2.5 bathrooms, and an upstairs laundry room., Gaithersburg, MD 20878
623              </p>
624              <p>
625                 4 Beds | 
626                 2.5 Baths | 
627                2,332 Sq.Ft.
628              </p>
629              <h5 class="price-title">$335,000</h5>
630            </div>
631          </a>
632        
633          <div class="property-list__hover">
634            <a href="/properties/the-oakland"  class="hover-link"></a>
635            <div class="property-list__buttons">
636              <a class="property-list__view"
637                href="/properties/the-oakland" >
638                <button class="btn btn--primary-dark button-style-2">VIEW PROPERTY</button>
639                <button class="btn btn--primary-light button-style-2">VIEW PROPERTY</button>
640              </a>
641              <div class="property-list__share">
642                <a class="btn btn--primary-dark button-style-2">SHARE PROPERTY</a>
643                <a class="btn btn--primary-light button-style-2">SHARE PROPERTY</a>
644                <ul class="socials socials--block-dark">
645                  <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://hometowncollectionmb.com/properties/the-oakland"
646                      target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li>
647                  <li><a href="https://twitter.com/intent/tweet?url=https://hometowncollectionmb.com/properties/the-oakland&text=The Oakland"
648                      target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li>
649                  <li><a href="/cdn-cgi/l/email-protection#89b6fafcebe3eceafdb4dde1eca9c6e8e2e5e8e7edafebe6edf0b4dde1eca9c6e8e2e5e8e7eda9a4a9e1fdfdf9fab3a6a6e1e6e4ecfde6fee7eae6e5e5eceafde0e6e7e4eba7eae6e4a6f9fbe6f9ecfbfde0ecfaa6fde1eca4e6e8e2e5e8e7ed" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li>
650                </ul>
651              </div>
652            </div>
653          </div>
654        </li>
655        <li class="property-list__item feature">
656          <a class="property-list__item-link"
657            href="/properties/frederick" >
658            <div class="property-list__img">
659              <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/9c824150-6519-49f3-90cb-7299c5542b3b" 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/9c824150-6519-49f3-90cb-7299c5542b3b 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/9c824150-6519-49f3-90cb-7299c5542b3b 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9c824150-6519-49f3-90cb-7299c5542b3b 1800w" alt="The Frederick" loading="lazy">
660            </div>
661            <span class="property-list__label">
662              For Sale
663            </span>
664            <div class="property-list__text">
665              <h4 class="serif">The Frederick</h4>
666              <p>
667                The base house starts with 4 bedrooms and 2.5 bathrooms., Gaithersburg, MD 20878
668              </p>
669              <p>
670                 4 Beds | 
671                 2.5 Baths | 
672                2,474 Sq.Ft.
673              </p>
674              <h5 class="price-title">$440,000</h5>
675            </div>
676          </a>
677        
678          <div class="property-list__hover">
679            <a href="/properties/frederick"  class="hover-link"></a>
680            <div class="property-list__buttons">
681              <a class="property-list__view"
682                href="/properties/frederick" >
683                <button class="btn btn--primary-dark button-style-2">VIEW PROPERTY</button>
684                <button class="btn btn--primary-light button-style-2">VIEW PROPERTY</button>
685              </a>
686              <div class="property-list__share">
687                <a class="btn btn--primary-dark button-style-2">SHARE PROPERTY</a>
688                <a class="btn btn--primary-light button-style-2">SHARE PROPERTY</a>
689                <ul class="socials socials--block-dark">
690                  <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://hometowncollectionmb.com/properties/frederick"
691                      target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li>
692                  <li><a href="https://twitter.com/intent/tweet?url=https://hometowncollectionmb.com/properties/frederick&text=The Frederick"
693                      target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li>
694                  <li><a href="/cdn-cgi/l/email-protection#cef1bdbbaca4abadbaf39aa6abee88bcabaaabbca7ada5e8aca1aab7f39aa6abee88bcabaaabbca7ada5eee3eea6bababebdf4e1e1a6a1a3abbaa1b9a0ada1a2a2abadbaa7a1a0a3ace0ada1a3e1bebca1beabbcbaa7abbde1a8bcabaaabbca7ada5" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li>
695                </ul>
696              </div>
697            </div>
698          </div>
699        </li>
700      </ul>
701      <div class="empty-result" style="display: none">
702        <h3>No Results Found. Please Try Another Search.</h3>
703      </div>
704      <div class="pagination-container pagination-style-1"></div>    </div>
705  </div>
706</div>
707
708</section>
709<section  class="image-section is-font-color-light is-background-color-light" id="section-3bd492d6-c0b9-4b2b-acf6-883219de6476" data-el-id="6120297b-2131-4bf4-ac23-206d01b963ec">
710
711<div class="media-blocks lp-vertical-paddings redesign">
712  <div class="lp-container">
713      <div class="lp-title-group">
714        <h2 class="lp-h2">Special Features</h2>
715        
716      </div>
717    
718    <div class="row"> 
719      
720      <div class="col col-1-3">
721
722        <div class="media-card">
723          <div class="media-card__image">
724            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/b1705378-29ca-4423-84e8-307c9dabc20e" 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/b1705378-29ca-4423-84e8-307c9dabc20e 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/b1705378-29ca-4423-84e8-307c9dabc20e 600w" sizes="(max-width: 768px) 100vw, 33vw" alt="Accessible Home Building" loading="lazy">
725            </div>
726          <h4 class="lp-h4 media-card__title">Accessible Home Building</h4>
727          <div class="media-card__description lp-a"><p>Hometown Collection is proud to offer accessibility options for all our homeowners. Work with our designers and builders to create a home customized to your needs. Our floor plans and features can support aging in place, wheelchair accessibility, and mobility accommodations. Reach out to learn more about our accessible homes and collaborative building process!</p></div>
728          <div>
729                    <a
730                        href="/accessible-home-building"
731                        
732                        class="lp-btn lp-btn--outline lp-btn--dark media-card__button button-style-3"
733                        
734                        
735                        
736                        
737                        
738                        >
739                                Learn More
740                        </a>
741          </div>
742          
743        </div>
744      </div>
745      <div class="col col-1-3">
746
747        <div class="media-card">
748          <div class="media-card__image">
749            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/26e23cbd-55d6-4a8a-a6b8-b7e06c3c91d6" 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/26e23cbd-55d6-4a8a-a6b8-b7e06c3c91d6 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/26e23cbd-55d6-4a8a-a6b8-b7e06c3c91d6 600w" sizes="(max-width: 768px) 100vw, 33vw" alt="Multigenerational Homes" loading="lazy">
750            </div>
751          <h4 class="lp-h4 media-card__title">Multigenerational Homes</h4>
752          <div class="media-card__description lp-a"><p>Hometown Collection supports multigenerational living. Customize your floor plan to suit your entire family, whether you&rsquo;re raising young children or aging in place. Our universal design offers options for dual owner&rsquo;
752s suites, private living spaces, and specialized accessibility. Contact us to learn more about how we can build your family&rsquo;s unique home!</p></div>
753          <div>
754                    <a
755                        href="/multigenerational-homes"
756                        
757                        class="lp-btn lp-btn--outline lp-btn--dark media-card__button button-style-3"
758                        
759                        
760                        
761                        
762                        
763                        >
764                                Learn More
765                        </a>
766          </div>
767          
768        </div>
769      </div>
770      <div class="col col-1-3">
771
772        <div class="media-card">
773          <div class="media-card__image">
774            <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/2fcf2831-4bae-401f-afc1-c735e3a11a2a" 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/2fcf2831-4bae-401f-afc1-c735e3a11a2a 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/2fcf2831-4bae-401f-afc1-c735e3a11a2a 600w" sizes="(max-width: 768px) 100vw, 33vw" alt="Accessory Dwelling Units" loading="lazy">
775            </div>
776          <h4 class="lp-h4 media-card__title">Accessory Dwelling Units</h4>
777          <div class="media-card__description lp-a"><p>Accessory Dwelling Units are a popular way to invest in your new or existing property while also offering a comfortable, private living space without being far from home - for you or your guests. Our thoughtfully designed floor plans are conveniently spacious, equipped with everything you would find in a single family home, and are built to last for generations.</p></div>
778          <div>
779                    <a
780                        href="/accessory-dwelling-units"
781                        
782                        class="lp-btn lp-btn--outline lp-btn--dark media-card__button button-style-3"
783                        
784                        
785                        
786                        
787                        
788                        >
789                                Learn More
790                        </a>
791          </div>
792          
793        </div>
794      </div>
795    </div>
796    
797  </div>
798</div>
799
800
801</section>
802<section  class="image-section is-font-color-light is-background-color-light" id="section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5" data-el-id="e6b1ae9f-5b8d-4ac5-a23f-bfb55ef91c3c">
vendor: 113 bytes, lines 802-803
802
803    <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
803<script>
804  (function(){
805    const sectionId = 'section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5'
806    const section = document.querySelector(`#${sectionId}`);
807    var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image');
808
809    if('true' === 'true') {
810      section.classList.add('parallax-enabled');
811      section.style.setProperty('--sectionBackground', sectionBg);
812      section.style.setProperty('background', 'none');
813    }
814  })()
815</script>
815
816<div class="redesign work-with-us parallax">
817	<div class="container">
818			<h2 class="serif">Work With Us</h2>
819			<div class="description">Whether you're buying your first home or selling a property, we’re here to make the process seamless and stress-free. With personalized guidance and a commitment to your goals, we ensure every transaction is handled with care and expertise from start to finish.</div>
820		<div class="btn-container">
821              <a
822                  role="button"
823                  data-type="CONTACT_US"
824                  class="btn btn--primary-light button-style-1"
825                  
826                  
827                  
828                  
829                  
830                  >
831                          Contact Us
832                  </a>
833    </div>
834	</div>
835</div> 
836</section>
837<section id="section-739c3d68-8237-4212-b354-6f93e6c00751"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="5db65d6a-01e9-4ee3-babf-2748e074a284">
838  
838<script type="text/x-handlebars-template" class="jsIGItem">
839    <a href="{{permalink}}" target="_blank" class="ig-feed-item insta-type-{{mediaType}}">
840      <div class="ig-feed-item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{^}}{{mediaUrl}}{{/ifEquals}}');"></div>
841      <div class="ig-feed-item__info"><div class="ig-feed-item__caption">{{caption}}</div></div>
842      {{#ifEquals mediaType 'VIDEO'}}<div class="video-icon"></div>{{/ifEquals}}
843    </a> 
844</script>
844
845<div class="ig-feed redesign">
846  <div class="ig-feed-top lp-container">
847    <div class="top-wrapper">
848      <div class="top-left">
849          <h3 class="lp-h3 title">Follow Me on Instagram</h3>
850        <a href="#" target="_blank" class="instagram-link jsIGLink"><h4 class="lp-h4 instagram-name jsIGName"></h4></a>
851      </div>
852      <div class="top-right">
853          <a href="#" target="_blank" class="lp-btn lp-btn--dark lp-btn--outline lp-btn--mob-full-width follow-button jsIGLink button-style-1">Follow Me</a>
854        <a class="nav-button top-nav-prev hidden-control button-style-1">
855          <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.099 13.25l-5.25-5.775L7.099 1.7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
856        </a>
857        <a class="nav-button top-nav-next hidden-control button-style-1">
858          <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.90137 1.75L7.15137 7.525L1.90137 13.3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
859        </a>
860      </div>
861    </div>
862  </div>
863  <div class="lp-container ig-feed-container ">
864    <div class="ig-feed-feed" data-limit="33">
865    </div>
866  </div>
867  <div class="bottom-controls">
868    <a class="bottom-nav-button bottom-nav-prev button-style-1">
869      <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.099 13.25l-5.25-5.775L7.099 1.7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
870    </a>
871    <a class="bottom-nav-button bottom-nav-next button-style-1">
872      <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.90137 1.75L7.15137 7.525L1.90137 13.3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>
873    </a>
874  </div>
875</div>
876
877</section>
878
879        <div id="modals" class="modals"></div>
880        <footer id="global-footer" class="is-font-color-light is-background-color-dark" data-el-id="874a9373-949d-4275-b72f-04c2a6ec373b">
881            <div class="footer redesign  no_newsletter "> 
882    <div class="container">
883        <h3>Jeanette Mitchell</h3>
884        <div class="info-wrap">
885            <div class="info-wrap-contact agent_box">
886                <div class="info-wrap-contact_zone type_user">
887                    <h4 class="serif">GET IN TOUCH</h4>
888                    <div class="info-wrap-contact_cell">
889                        <i>
890                            <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg">
891                                <path d="M2 0C0.903517 0 0 0.903517 0 2V16.6667C0 17.7631 0.903517 18.6667 2 18.6667H28C29.0965 18.6667 30 17.7631 30 16.6667V2C30 0.903517 29.0965 0 28 0H2ZM2.4375 1.33333H27.5625L15.6458 11.4896C15.3389 11.7512 14.6612 11.7512 14.3542 11.4896L2.4375 1.33333ZM1.33333 2.13542L10.1979 9.6979L1.33333 16.5729V2.13542ZM28.6667 2.13542V16.5729L19.8021 9.6979L28.6667 2.13542ZM11.2396 10.5833L13.4896 12.5C14.3543 13.2369 15.6457 13.2369 16.5104 12.5L18.7604 10.5833L27.4687 17.3333H2.53125L11.2396 10.5833Z" fill="#1A1A1A" />
892                            </svg>
893                        </i>
894                        <p class="contact_title">Email</p>
895                        <a href="/cdn-cgi/l/email-protection#08626d69666d7c7c6d2665617c6b606d6464486b6a7a6d69647c71266b6765" class="lp-link info-wrap-contact_link grey-text hyperlink-style-2"><span class="__cf_email__" data-cfemail="2b414e4a454e5f5f4e0546425f48434e47476b4849594e4a475f5205484446">[email&#160;protected]</span></a>
896                    </div>
897                    <div class="info-wrap-contact_cell">
898                        <i><svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg">
899                        <path fill-rule="evenodd" clip-rule="evenodd" d="M10.7964 8.1207H19.2036V8.7279C19.2036 10.8195 20.9082 12.5259 23.001 12.5259H24.741L25.2852 20.7051C25.3776 22.1235 24.2868 23.2719 22.8822 23.2719H7.0032C5.5944 23.2719 4.5084 22.1085 4.6002 20.7039C4.782 17.9895 4.9152 15.23
89913 5.154 12.5265H6.9996C9.0918 12.5265 10.797 10.8207 10.797 8.7285V8.1207H10.7964ZM11.46 16.5807C11.46 14.6565 13.0188 13.0977 14.943 13.0977C16.8666 13.0977 18.4254 14.6571 18.4254 16.5807C18.4254 18.5055 16.8678 20.0631 14.943 20.0631C13.02 20.0637 11.46 18.5043 11.46 16.5807ZM14.943 12.0381C12.4344 12.0381 10.4004 14.0721 10.4004 16.5807C10.4004 19.0887 12.435 21.1233 14.943 21.1233C17.4486 21.1233 19.485 19.0869 19.485 16.5807C19.485 14.0727 17.451 12.0381 14.943 12.0381ZM9.0846 4.8363C8.22 4.8363 7.512 5.5443 7.512 6.4089V8.7285C7.512 9.0093 7.2804 9.2415 6.999 9.2415H1.5726C1.2906 9.2415 1.0596 9.0111 1.0596 8.7285V6.9285C1.0596 6.4797 1.1628 6.0945 1.3902 5.7069C1.896 4.8465 2.7294 4.1013 3.795 3.4749C9.279 0.2517 20.7192 0.2523 26.2044 3.4749C27.2706 4.1013 28.104 4.8465 28.6098 5.7069C28.8354 6.0921 28.9398 6.4815 28.9398 6.9285V8.7285C28.9398 9.0111 28.71 9.2415 28.4268 9.2415H23.0004C22.719 9.2415 22.4874 9.0093 22.4874 8.7285V6.4089C22.4874 5.5425 21.7806 4.8363 20.9148 4.8363H9.0846ZM8.571 6.4089C8.571 6.1263 8.8026 5.8965 9.0846 5.8965H20.9154C21.1968 5.8965 21.429 6.1275 21.429 6.4089V8.7285C21.429 9.5943 22.1352 10.3017 23.001 10.3017H28.4274C29.292 10.3017 30 9.5931 30 8.7285V6.9285C30 6.2835 29.8464 5.7291 29.5206 5.1729C28.9188 4.1493 27.9564 3.2799 26.7384 2.5641C20.9214 -0.8547 9.0798 -0.8547 3.2622 2.5641C2.0436 3.2799 1.0812 4.1487 0.48 5.1729C0.153 5.7291 0 6.2835 0 6.9279V8.7279C0 9.5925 0.7092 10.3011 1.5726 10.3011H6.999C7.8648 10.3011 8.571 9.5937 8.571 8.7279V6.4089ZM9.7368 7.5915V8.7285C9.7368 10.2387 8.5092 11.4669 6.999 11.4669H4.6686C4.3914 11.4669 4.164 11.6799 4.1412 11.9511C3.8892 14.8347 3.7386 17.7435 3.5448 20.6331C3.4116 22.6425 4.989 24.3315 7.0032 24.3315H22.8822C24.882 24.3315 26.475 22.6575 26.3406 20.6343L25.7622 11.9607C25.7436 11.6811 25.5102 11.4675 25.2342 11.4675L23.001 11.4663C21.4902 11.4663 20.2632 10.2375 20.2632 8.7279V7.5909C20.2632 7.2981 20.0262 7.0611 19.7334 7.0611H10.2666C9.9738 7.0611 9.7368 7.2987 9.7368 7.5915Z" fill="#1A1A1A" />
900                        </svg></i>
901                        <p class="contact_title">Phone Number</p>
902                        <a href="tel:3015803051" class="lp-link info-wrap-contact_link grey-text hyperlink-style-2">(301) 580-3051</a>
903                    </div>
904                </div>
905                <div class="info-wrap-contact_zone">
906                    <div class="info-wrap-contact_cell">
907                        <i>
908                            <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg">
909                                <path d="M29.9821 6.49489C29.7931 6.35756 29.679 6.32046 29.4572 6.39228L20.298 9.41368L16.1952 8.03558L15.8172 9.41525L19.7644 10.7038V28.1462L9.89831 25.7069V22.1034H8.71438V25.7515L1.21616 28.2532V15.3945H0.0322266V29.2729C0.0322266 29.5077 0.130098 29.7279 0.321106 29.8645C0.445418 29.9541 0.585911 29.9999 0.735086 29.9999C0.814804 29.9999 0.890971 29.9868 0.967926 29.96L9.48433 27.029L20.1792 29.7887C20.3224 29.8254 20.4751 29.8171 20.6152 29.7654L29.8104 26.2235C30.0942 26.1177 30.0251 25.8466 30.0251 25.5431V7.08291C30.0251 6.85086 30.17 6.63144 29.9821 6.49489ZM28.8412 25.0388L20.9483 28.0361V10.7065L28.8412 8.08649V25.0388Z" fill="#1A1A1A" />
910                                <path d="M6.57515 19.1142C6.6671 19.422 6.95006 19.6323 7.2713 19.6323C7.59215 19.6323 7.87511 19.422 7.96746 19.1142C8.67742 16.7514 10.0393 15.2447 11.3559 13.788C12.9944 11.9747 14.5422 10.2615 14.5422 7.2717C14.5422 3.39788 11.1451 0 7.2713 0C3.39827 0 0 3.39748 0 7.2717C0 10.2615 1.54819 11.9747 3.18674 13.788C4.50328 15.2447 5.86479 16.7514 6.57515 19.1142ZM7.2713 1.45426C10.316 1.45426 13.0883 4.22663 13.0883 7.2717C13.0883 9.70191 11.7852 11.1435 10.2769 12.8121C9.2461 13.9534 8.10992 15.2096 7.2713 16.9199C6.43229 15.2096 5.29651 13.953 4.2657 12.8121C2.75698 11.1432 1.45426 9.70191 1.45426 7.2717C1.45426 4.22663 4.22663 1.45426 7.2713 1.45426Z" fill="#1A1A1A" />
911                                <path d="M7.26193 10.1616C8.8705 10.1616 10.1795 8.86084 10.1795 7.26175C10.1795 5.66305 8.87089 4.3623 7.26193 4.3623C5.65297 4.3623 4.34473 5.66305 4.34473 7.26175C4.34512 8.86084 5.65336 10.1616 7.26193 10.1616ZM7.26193 5.81657C8.06898 5.81657 8.72527 6.46536 8.72527 7.26175C8.72527 8.05932 8.06898 8.70733 7.26193 8.70733C6.45528 8.70733 5.79899 8.05893 5.79899 7.26175C5.79899 6.46536 6.45528 5.81657 7.26193 5.81657Z" fill="#1A1A1A" />
912                            </svg>
913                        </i>
914                        <p class="info-wrap-contact_title">Address</p>
915                        <p class="info-wrap-contact_link grey-text"><p>406 Tschiffely Square Rd<br />Gaithersburg MD 20878</p></p>
916                    </div>
917                </div>
918            </div>
919        </div>
920        <div class="text_footer first_text_footer">
921            <div class="images_box">
922                <div class="img_size">
923                    <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/0bbf8cc9-43d1-4b52-8f9b-247329965189" 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/0bbf8cc9-43d1-4b52-8f9b-247329965189 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/0bbf8cc9-43d1-4b52-8f9b-247329965189 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/0bbf8cc9-43d1-4b52-8f9b-247329965189 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/0bbf8cc9-43d1-4b52-8f9b-247329965189 1460w" alt="Footer Image" sizes="200px">
924                </div>
925            </div>
926            <div class="luxury-text">
927                <div id="ipql">
928<p style="font-size: 12px;">
928The property information herein is derived from various sources that may include, but not be limited to, county records and the Multiple Listing Service, and it may include approximations. Although the information is believed to be accurate, it is not warranted and you should not rely upon it without personal verification. Not intended as a solicitation if your property is already listed by another broker. Affiliated real estate agents are independent contractor sales associates, not employees. &copy;<span class="auto-year-update">#</span> Coldwell Banker. All Rights Reserved. Coldwell Banker and the Coldwell Banker logos are trademarks of Coldwell Banker Real Estate LLC. The Coldwell Banker&reg; System is comprised of company owned offices which are owned by a subsidiary of Anywhere Advisors LLC and franchised offices which are independently owned and operated. The Coldwell Banker System fully supports the principles of the Fair Housing Act and the Equal Opportunity Act.<img style="margin-bottom: 4px;" src="https://media-production.lp-cdn.com/media/feea0139-a7d3-41cc-8c64-d2ab30d586b2" alt width="25px" height="auto"></p>
929<p>&nbsp;</p>
930</div>
931<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}#iaa1{font-size:12px;}#iivu{margin-top:20px;}</style>
932            </div>
933        </div>
934        <div class="text_footer second_text_footer">
935            <div class="text_content_wrap">
936                <div>
937                    <div>&nbsp;</div>
938<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style>
939                </div>
940            </div>
941        </div>
942        <div class="info-privacy">
943          <div class="form-row info-privacy__row">
944
945            <div class="form-col form-col--powered powered-box">
946                    <div class="img-wrap">
947                        <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/bfhaw8kkzru028ctaukq" 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/bfhaw8kkzru028ctaukq 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/bfhaw8kkzru028ctaukq 390w" sizes="200px" alt="">
948                    </div>
949                <div class="powered_zone">
950                    Real Estate Website Design by <a href="https://www.luxurypresence.com/real-estate-website-design/" target="_blank" class="lp-link grey-text luxury-link underlined hyperlink-style-2">Luxury Presence</a>
951                </div>
952            </div>
953
954            <div class="form-col form-col--copyright">
955              <div class="copy_zone">
956                <span class="copy_words">Copyright &copy;</span> <span class="auto-year-update">2026</span>
957                | <a href="/terms-and-conditions" class="lp-link grey-text hyperlink-style-2">Privacy Policy</a>
958
959              </div>
960            </div>
961
962            <div class="form-col form-col--socials">
963                <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone">
964                
965                        <li>
966                          <a
967                            href="https://www.facebook.com/HometownCollectionMB/"
968                            class="lp-socials__link socials__item socials__link wow fadeInUp"
969                            data-wow-delay="0s"
970                            target="_blank"
971                            aria-label="FACEBOOK"
972                          >
973                              <span class="lp-i lp-i--facebook" aria-hidden="true"></span>
974                          </a>
975                        </li>
976                        <li>
977                          <a
978                            href="https://www.instagram.com/hometowncollection_mb/"
979                            class="lp-socials__link socials__item socials__link wow fadeInUp"
980                            data-wow-delay="0.1s"
981                            target="_blank"
982                            aria-label="INSTAGRAM"
983                          >
984                              <span class="lp-i lp-i--instagram" aria-hidden="true"></span>
985                          </a>
986                        </li>
987                        <li>
988                          <a
989                            href="https://www.linkedin.com/company/hometown-collection-by-mitchell-best/"
990                            class="lp-socials__link socials__item socials__link wow fadeInUp"
991                            data-wow-delay="0.2s"
992                            target="_blank"
993                            aria-label="LINKEDIN"
994                          >
995                              <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
996                          </a>
997                        </li>
998                        <li>
999                          <a
1000                            href="https://www.google.com/search?q&#x3D;home+town+collection+Gaithersburg%2C+MD&amp;sca_esv&#x3D;e7fb66bace9eb99e&amp;ei&#x3D;AT0EZ4KLBonf2roPi93EoQg&amp;ved&#x3D;0ahUKEwjCj-jehv2IAxWJr1YBHYsuMYQQ4dUDCA8&amp;uact&#x3D;5&amp;oq&#x3D;home+town+collection+Gaithersburg%2C+MD&amp;gs_lp&#x3D;Egxnd3Mtd2l6LXNlcnAiJWhvbWUgdG93biBjb2xsZWN0aW9uIEdhaXRoZXJzYnVyZywgTUQyCBAAGIAEGKIEMggQABiABBiiBDIIEAAYgAQYogRInoEBUABY93hwAngAkAEAmAF_oAGVE6oBBTEyLjEyuAEDyAEA-AEB-AECmAIaoAKgFMICCxAAGIAEGLEDGIMBwgIIEAAYgAQYsQPCAgUQLhiABMICDhAAGIAEGLEDGIMBGIoFwgIFEAAYgATCAgoQABiABBhDGIoFwgIOEC4YgAQYsQMY0QMYxwHCAhEQLhiABBixAxjRAxiDARjHAcICGRAuGIAEGLEDGNEDGEMYgwEYxwEYyQMYigXCAgsQABiABBiSAxiKBcICKBAuGIAEGLEDGNEDGEMYgwEYxwEYyQMYigUYlwUY3AQY3gQY4ATYAQHCAggQLhiABBixA8ICCxAuGIAEGLEDGNQCwgIQEC4YgAQY0QMYQxjHARiKBcICBxAAGIAEGArCAhEQLhiABBjHARiYBRiZBRivAcICCxAuGIAEGMcBGK8BwgIGEAAYFhgewgIIEAAYFhgKGB7CAggQABgWGB4YD8ICGhAuGIAEGMcBGK8BGJcFGNwEGN4EGOAE2AEBwgIKEAAYFhgKGB4YD8ICCBAuGBYYChgewgIOEC4YFhjHARgKGB4YrwHCAgsQABiABBiGAxiKBcICBxAAGIAEGA3CAgYQABgNGB7CAggQABgNGB4YD8ICBxAhGKABGAqYAwC6BgYIARABGBSSBwQ5LjE3oAfH5AE&amp;sclient&#x3D;gws-wiz-serp#lrd&#x3D;0x89b62d83a416aaab:0x702654f848ae0d7,3,,,,"
1001                            class="lp-socials__link socials__item socials__link wow fadeInUp"
1002                            data-wow-delay="0.3s"
1003                            target="_blank"
1004                            aria-label="GOOGLE"
1005                          >
1006                              <span class="lp-i lp-i--google" aria-hidden="true"></span>
1007                          </a>
1008                        </li>
1009                  </ul>            </div>
1010          </div>
1011        </div>
1012    </div>
1013</div>
1014
1015        </footer>
1016
1017        <div id="modal-global-contact-us" class="modal "
1018            data-el-id=""
1019            style="background-color: ;"
1020            >
1021            <div class="modal-content">
1022                <div class="contact-form redesign " 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/pjqqegmhxogg5bprrz7t')">
1023          <div class="container">
1024              <div class="section-details" style="--colorTxt: #ffffff">
1025                  <h2>CONTACT DETAILS</h2>
1026                  
1027                  <div class="info-zone">
1028        
1029                          <div class="info-zone_contact type_user">
1030                                <h4 class="serif">HOMETOWN COLLECTION</h4>
1031                                <div class="info-zone_contact_cell">
1032                                        <i>
1033                                            <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg">
1034                                                <path fill-rule="evenodd" clip-rule="evenodd" d="M10.7964 8.1207H19.2036V8.7279C19.2036 10.8195 20.9082 12.5259 23.001 12.5259H24.741L25.2852 20.7051C25.3776 22.1235 24.2868 23.2719 22.8822 23.2719H7.0032C5.5944 23.2719 4.5084 22.1085 4.6002 20.7039C4.782 17.9895 4.9152 15.2313 5.154 12.5265H6.9996C9.0918 12.5265 10.797 10.8207 10.797 8.7285V8.1207H10.7964ZM11.46 16.5807C11.46 14.6565 13.0188 13.0977 14.943 13.0977C16.8666 13.0977 18.4254 14.6571 18.4254 16.5807C18.4254 18.5055 16.8678 20.0631 14.943 20.0631C13.02 20.0637 11.46 18.5043 11.46 16.5807ZM14.943 12.0381C12.4344 12.0381 10.4004 14.0721 10.4004 16.5807C10.4004 19.0887 12.435 21.1233 14.943 21.1233C17.4486 21.1233 19.485 19.0869 19.485 16.5807C19.485 14.0727 17.451 12.0381 14.943 12.0381ZM9.0846 4.8363C8.22 4.8363 7.512 5.5443 7.512 6.4089V8.7285C7.512 9.0093 7.2804 9.2415 6.999 9.2415H1.5726C1.2906 9.2415 1.0596 9.0111 1.0596 8.7285V6.9285C1.0596 6.4797 1.1628 6.0945 1.3902 5.7069C1.896 4.8465 2.7294 4.1013 3.795 3.4749C9.279 0.2517 20.7192 0.2523 26.2044 3.4749C27.2706 4.1013 28.104 4.8465 28.6098 5.7069C28.8354 6.0921 28.9398 6.48
103415 28.9398 6.9285V8.7285C28.9398 9.0111 28.71 9.2415 28.4268 9.2415H23.0004C22.719 9.2415 22.4874 9.0093 22.4874 8.7285V6.4089C22.4874 5.5425 21.7806 4.8363 20.9148 4.8363H9.0846ZM8.571 6.4089C8.571 6.1263 8.8026 5.8965 9.0846 5.8965H20.9154C21.1968 5.8965 21.429 6.1275 21.429 6.4089V8.7285C21.429 9.5943 22.1352 10.3017 23.001 10.3017H28.4274C29.292 10.3017 30 9.5931 30 8.7285V6.9285C30 6.2835 29.8464 5.7291 29.5206 5.1729C28.9188 4.1493 27.9564 3.2799 26.7384 2.5641C20.9214 -0.8547 9.0798 -0.8547 3.2622 2.5641C2.0436 3.2799 1.0812 4.1487 0.48 5.1729C0.153 5.7291 0 6.2835 0 6.9279V8.7279C0 9.5925 0.7092 10.3011 1.5726 10.3011H6.999C7.8648 10.3011 8.571 9.5937 8.571 8.7279V6.4089ZM9.7368 7.5915V8.7285C9.7368 10.2387 8.5092 11.4669 6.999 11.4669H4.6686C4.3914 11.4669 4.164 11.6799 4.1412 11.9511C3.8892 14.8347 3.7386 17.7435 3.5448 20.6331C3.4116 22.6425 4.989 24.3315 7.0032 24.3315H22.8822C24.882 24.3315 26.475 22.6575 26.3406 20.6343L25.7622 11.9607C25.7436 11.6811 25.5102 11.4675 25.2342 11.4675L23.001 11.4663C21.4902 11.4663 20.2632 10.2375 20.2632 8.7279V7.5909C20.2632 7.2981 20.0262 7.0611 19.7334 7.0611H10.2666C9.9738 7.0611 9.7368 7.2987 9.7368 7.5915Z" fill="#1A1A1A"/>
1035                                            </svg>
1036                                        </i>
1037                                    <p class="contact_title">Phone</p>
1038                                    <a href="tel:(301) 580-3051" class="lp-link info-zone_contact_link link hyperlink-style-2">(301) 580-3051</a>
1039                                </div>
1040                                <div class="info-zone_contact_cell">
1041                                        <i>
1042                                            <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg">
1043                                                <path d="M2 0C0.903517 0 0 0.903517 0 2V16.6667C0 17.7631 0.903517 18.6667 2 18.6667H28C29.0965 18.6667 30 17.7631 30 16.6667V2C30 0.903517 29.0965 0 28 0H2ZM2.4375 1.33333H27.5625L15.6458 11.4896C15.3389 11.7512 14.6612 11.7512 14.3542 11.4896L2.4375 1.33333ZM1.33333 2.13542L10.1979 9.6979L1.33333 16.5729V2.13542ZM28.6667 2.13542V16.5729L19.8021 9.6979L28.6667 2.13542ZM11.2396 10.5833L13.4896 12.5C14.3543 13.2369 15.6457 13.2369 16.5104 12.5L18.7604 10.5833L27.4687 17.3333H2.53125L11.2396 10.5833Z" fill="#1A1A1A"/>
1044                                            </svg>
1045                                        </i>
1046                                    <p class="contact_title">Email</p>
1047                                    <a href="/cdn-cgi/l/email-protection#abc1cecac5cedfdfce85c6c2dfc8c3cec7c7ebc8c9d9cecac7dfd285c8c4c6" class="lp-link info-zone_contact_link link hyperlink-style-2"><span class="__cf_email__" data-cfemail="650f00040b001111004b080c11060d00090925060717000409111c4b060a08">[email&#160;protected]</span></a>
1048                                </div>
1049                          </div>
1050                          <div class="info-zone_contact">
1051                                <div class="info-zone_contact_cell">
1052                                        <i>
1053                                            <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg">
1054                                                <path d="M29.9821 6.49489C29.7931 6.35756 29.679 6.32046 29.4572 6.39228L20.298 9.41368L16.1952 8.03558L15.8172 9.41525L19.7644 10.7038V28.1462L9.89831 25.7069V22.1034H8.71438V25.7515L1.21616 28.2532V15.3945H0.0322266V29.2729C0.0322266 29.5077 0.130098 29.7279 0.321106 29.8645C0.445418 29.9541 0.585911 29.9999 0.735086 29.9999C0.814804 29.9999 0.890971 29.9868 0.967926 29.96L9.48433 27.029L20.1792 29.7887C20.3224 29.8254 20.4751 29.8171 20.6152 29.7654L29.8104 26.2235C30.0942 26.1177 30.0251 25.8466 30.0251 25.5431V7.08291C30.0251 6.85086 30.17 6.63144 29.9821 6.49489ZM28.8412 25.0388L20.9483 28.0361V10.7065L28.8412 8.08649V25.0388Z" fill="#1A1A1A"/>
1055                                                <path d="M6.57515 19.1142C6.6671 19.422 6.95006 19.6323 7.2713 19.6323C7.59215 19.6323 7.87511 19.422 7.96746 19.1142C8.67742 16.7514 10.0393 15.2447 11.3559 13.788C12.9944 11.9747 14.5422 10.2615 14.5422 7.2717C14.5422 3.39788 11.1451 0 7.2713 0C3.39827 0 0 3.39748 0 7.2717C0 10.2615 1.54819 11.9747 3.18674 13.788C4.50328 15.2447 5.86479 16.7514 6.57515 19.1142ZM7.2713 1.45426C10.316 1.45426 13.0883 4.22663 13.0883 7.2717C13.0883 9.70191 11.7852 11.1435 10.2769 12.8121C9.2461 13.9534 8.10992 15.2096 7.2713 16.9199C6.43229 15.2096 5.29651 13.953 4.2657 12.8121C2.75698 11.1432 1.45426 9.70191 1.45426 7.2717C1.45426 4.22663 4.22663 1.45426 7.2713 1.45426Z" fill="#1A1A1A"/>
1056                                                <path d="M7.26193 10.1616C8.8705 10.1616 10.1795 8.86084 10.1795 7.26175C10.1795 5.66305 8.87089 4.3623 7.26193 4.3623C5.65297 4.3623 4.34473 5.66305 4.34473 7.26175C4.34512 8.86084 5.65336 10.1616 7.26193 10.1616ZM7.26193 5.81657C8.06898 5.81657 8.72527 6.46536 8.72527 7.26175C8.72527 8.05932 8.06898 8.70733 7.26193 8.70733C6.45528 8.70733 5.79899 8.05893 5.79899 7.26175C5.79899 6.46536 6.45528 5.81657 7.26193 5.81657Z" fill="#1A1A1A"/>
1057                                            </svg>
1058                                        </i>
1059                                    <p class="info-wrap-contact_title">Address</p>
1060                                    <p class="info-zone_contact_link pre-line">406 Tschiffely Square Rd
1061        Gaithersburg MD 20878</p>
1062                                </div>
1063                          </div>
1064                        <div class="info-zone_contact">
1065                            <div class="info-zone_contact_cell">
1066                                <p class="pre-line"><div></div><style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></p>
1067                            </div>
1068                        </div>
1069                        <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone footer__c
1069ontact-column">
1070                        
1071                                <li>
1072                                  <a
1073                                    href="https://www.facebook.com/HometownCollectionMB/"
1074                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
1075                                    data-wow-delay="0s"
1076                                    target="_blank"
1077                                    aria-label="FACEBOOK"
1078                                  >
1079                                      <span class="lp-i lp-i--facebook" aria-hidden="true"></span>
1080                                  </a>
1081                                </li>
1082                                <li>
1083                                  <a
1084                                    href="https://www.instagram.com/hometowncollection_mb/"
1085                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
1086                                    data-wow-delay="0.1s"
1087                                    target="_blank"
1088                                    aria-label="INSTAGRAM"
1089                                  >
1090                                      <span class="lp-i lp-i--instagram" aria-hidden="true"></span>
1091                                  </a>
1092                                </li>
1093                                <li>
1094                                  <a
1095                                    href="https://www.linkedin.com/company/hometown-collection-by-mitchell-best/"
1096                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
1097                                    data-wow-delay="0.2s"
1098                                    target="_blank"
1099                                    aria-label="LINKEDIN"
1100                                  >
1101                                      <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
1102                                  </a>
1103                                </li>
1104                                <li>
1105                                  <a
1106                                    href="https://www.google.com/search?q&#x3D;home+town+collection+Gaithersburg%2C+MD&amp;sca_esv&#x3D;e7fb66bace9eb99e&amp;ei&#x3D;AT0EZ4KLBonf2roPi93EoQg&amp;ved&#x3D;0ahUKEwjCj-jehv2IAxWJr1YBHYsuMYQQ4dUDCA8&amp;uact&#x3D;5&amp;oq&#x3D;home+town+collection+Gaithersburg%2C+MD&amp;gs_lp&#x3D;Egxnd3Mtd2l6LXNlcnAiJWhvbWUgdG93biBjb2xsZWN0aW9uIEdhaXRoZXJzYnVyZywgTUQyCBAAGIAEGKIEMggQABiABBiiBDIIEAAYgAQYogRInoEBUABY93hwAngAkAEAmAF_oAGVE6oBBTEyLjEyuAEDyAEA-AEB-AECmAIaoAKgFMICCxAAGIAEGLEDGIMBwgIIEAAYgAQYsQPCAgUQLhiABMICDhAAGIAEGLEDGIMBGIoFwgIFEAAYgATCAgoQABiABBhDGIoFwgIOEC4YgAQYsQMY0QMYxwHCAhEQLhiABBixAxjRAxiDARjHAcICGRAuGIAEGLEDGNEDGEMYgwEYxwEYyQMYigXCAgsQABiABBiSAxiKBcICKBAuGIAEGLEDGNEDGEMYgwEYxwEYyQMYigUYlwUY3AQY3gQY4ATYAQHCAggQLhiABBixA8ICCxAuGIAEGLEDGNQCwgIQEC4YgAQY0QMYQxjHARiKBcICBxAAGIAEGArCAhEQLhiABBjHARiYBRiZBRivAcICCxAuGIAEGMcBGK8BwgIGEAAYFhgewgIIEAAYFhgKGB7CAggQABgWGB4YD8ICGhAuGIAEGMcBGK8BGJcFGNwEGN4EGOAE2AEBwgIKEAAYFhgKGB4YD8ICCBAuGBYYChgewgIOEC4YFhjHARgKGB4YrwHCAgsQABiABBiGAxiKBcICBxAAGIAEGA3CAgYQABgNGB7CAggQABgNGB4YD8ICBxAhGKABGAqYAwC6BgYIARABGBSSBwQ5LjE3oAfH5AE&amp;sclient&#x3D;gws-wiz-serp#lrd&#x3D;0x89b62d83a416aaab:0x702654f848ae0d7,3,,,,"
1107                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
1108                                    data-wow-delay="0.3s"
1109                                    target="_blank"
1110                                    aria-label="GOOGLE"
1111                                  >
1112                                      <span class="lp-i lp-i--google" aria-hidden="true"></span>
1113                                  </a>
1114                                </li>
1115                          </ul>          </div>
1116              </div>
1117              <div class="section-message">
1118                  <form data-type="contact-form">
1119                      <h2>SUBMIT A MESSAGE</h2>
1120                       <div class="h-pot">
1121                        <label for="-middleName">Middle Name</label>
1122                        <input id="-middleName" name="middleName" value="" autocomplete="off" tabindex="-1">
1123                      </div>
1124        
1125        
1126                      <div class="lp-input-group">
1127                          <label for="prod-name" class="lp-label">Name</label>
1128                          <input id="prod-name" name="name" value="" required="" class="lp-input lp-input--light">
1129                      </div>
1130                      <div class="lp-input-group">
1131                          <label for="prod-email" class="lp-label">Email</label>
1132                          <input id="prod-email" type="email" name="email" value="" required="" class="lp-input lp-input--light">
1133                      </div>
1134                      <div class="lp-input-group">
1135                          <label for="prod-phone" class="lp-label">Phone</label>
1136                          <input id="prod-phone" type="tel" name="phoneNumber" value="" required="" class="lp-input lp-input--light">
1137                      </div>
1138                      <div class="lp-input-group m16">
1139                          <label for="prod-message" class="lp-label">Message</label>
1140                          <textarea id="prod-message" name="message" value="" required="" class="lp-input"></textarea>
1141                      </div>
1142        
1143                      <div class="lp-disclaimer">  <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label>
1144          <label class='lp-tcr-content'>
1145            <span class='lp-tcr-checkbox'>
1146              <input
1147                type='checkbox'
1148                id='-termsAccepted'
1149                name='termsAccepted'
1150                oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
1151                oninput="this.setCustomValidity('')"
1152                required
1153              /></span>
1154            <span class='lp-tcr-message'>
1155              
1156                I agree to be contacted by
1157                Marty Mitchell
1158                via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance.
1159                You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary.
1160                <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>.
1161            </span>
1162          </label>
1163        
1164        </div>
1165                      
1166                      <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" />
1167                      
1168                      
1169                      <button type="submit" class="submitButton lp-btn button-style-1">
1170                          <span class="label-initial">Submit</span>
1171                          <span class="label-loading">Submitting</span>
1172                          <span class="label-success">Submitted</span>
1173                          <span class="submit-icon lp-i lp-i--circle-notch lp-i--spin"></span>
1174                      </button>
1175                      <p class="success-message success hide">
1176                        Message sent successfully!
1177                      </p>
1178                  </form>
1179                  
1180                  
1181              </div>
1182          </div>
1183        </div>
1184        
1185            </div>
1186            <button class="close lp-close" type="button" aria-label="close modal">
1187                <span class="lp-close-icon" aria-hidden="true"></span>
1188            </button>
1189        </div>
1190        <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;">
1191          <style>
1192            #qualifying-questions-modal .custom-select-toggle {
1193              border: 1px solid #848484;
1194              border-radius: 8px;
1195              padding: 12px 16px;
1196            }
1197        
1198            #qualifying-questions-modal .custom-select-toggle.is-placeholder {
1199              color: #848484;
1200            }
1201        
1202            #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder {
1203              color: #848484;
1204              opacity: 1;
1205            }
1206        
1207            #qualifying-questions-modal .disclaimer-more {
1208              display: none;
1209            }
1210        
1211            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more {
1212              display: inline;
1213            }
1214        
1215            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis {
1216              display: none;
1217            }
1218          </style>
vendor: 119 bytes, lines 1218-1219
1218
1219          <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1219<script>
1220            function toggleDisclaimerQualifyingQuestionsModal() {
1221              const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text');
1222              const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer');
1223        
1224              if (disclaimerText.classList.contains('collapsed')) {
1225                disclaimerText.classList.remove('collapsed');
1226                toggleButton.textContent = 'Read less';
1227                toggleButton.setAttribute('aria-expanded', 'true');
1228              } else {
1229                disclaimerText.classList.add('collapsed');
1230                toggleButton.textContent = 'Read more';
1231                toggleButton.setAttribute('aria-expanded', 'false');
1232              }
1233            }
1234          </script>
1234
1235          <div style="max-width: 400px; width: 95%; margin: 0 auto;">
1236            <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;">
1237              <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;">
1238                <span aria-hidden="true">&times;</span>
1239              </button>
1240              <div style="padding: 40px 30px 32px;">
1241                <div style="text-align: left; margin-bottom: 32px;">
1242                  <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;">
1243                    Thanks, please provide more information to help serve you
1244                  </h2>
1245                </div>
1246                <form id="qualifying-questions-modal-form" data-type="contact-form">
1247                  <input type="hidden" name="source" value="PROFILE_UPDATE" />
1248                  <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" />
1249                  <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" />
1250                  <label for="qualifying-questions-modal-email" style="display:none;">
1251                    Email
1252                  </label>
1253                  <label for="qualifying-questions-modal-triggerSource" style="display:none;">
1254                    Trigger Source
1255                  </label>
1256        
1257                  <div style="margin-bottom: 20px;">
1258                    <label for="qualifying-questions-modal-phoneNumber" style="display:none;">
1259                      Phone Number
1260                    </label>
1261                    <input
1262                      type="tel"
1263                      id="qualifying-questions-modal-phoneNumber"
1264                      name="phoneNumber"
1265                      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;"
1266                      pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$"
1267                      required
1268                      placeholder="Phone"
1269                      aria-label="Phone Number"
1270                      inputmode="tel"
1271                      autocomplete="tel"
1272                      onfocus="this.style.borderColor='black';"
1273                      onblur="this.style.borderColor='#848484';"
1274                    />
1275                  </div>
1276        
1277                  <div style="margin-bottom: 20px;">
1278                    <label for="qualifying-questions-modal-interest" style="display:none;">
1279                      Interest
1280                    </label>
1281                    <select
1282                      id="qualifying-questions-modal-interest"
1283                      name="interest"
1284                      required
1285                      data-label="Interest"
1286                      aria-label="Interest"
1287                      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;"
1288                      onfocus="this.style.borderColor='black'; this.style.color='black';"
1289                      onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';"
1290                    >
1291                      <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option>
1292                      <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option>
1293                      <option value="Selling" style="background: #fff; color: black;">Selling</option>
1294                      <option value="Buying" style="background: #fff; color: black;">Buying</option>
1295                      <option value="Renting" style="background: #fff; color: black;">Renting</option>
1296                      <option value="Other" style="background: #fff; color: black;">Other</option>
1297                    </select>
1298                  </div>
1299        
1300                  <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;">
1301                    <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label>
1302                    <label class='lp-tcr-content'>
1303                      <span class='lp-tcr-checkbox'>
1304                        <input
1305                          type='checkbox'
1306                          id='qualifying-questions-modal-qualifying-questions-termsAccepted'
1307                          name='termsAccepted'
1308                          aria-describedby='qualifying-questions-modal-disclaimer-text'
1309                          oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
1310                          oninput="this.setCustomValidity('')"
1311                          required
1312                        /></span>
1313                      <span class='lp-tcr-message'>
1314                        <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;">
1315                          
1316                            I agree to be contacted by
1317                            <strong>Marty Mitchell</strong>
1318                            via call, email, and text <span class="disclaimer-more">for real estate services. 
1319                            To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 
1320                            You can also click the unsubscribe link in the emails. 
1321                            Message and data rates may apply. Message frequency may vary.</span>
1322                            <span class="disclaimer-ellipsis">...</span>
1323                            <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>.
1324                        </div>
1325                        <button
1326                          id="qualifying-questions-modal-toggle-disclaimer"
1327                          type="button"
1328                          style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;"
1329                          aria-expanded="false"
1330                          onclick="toggleDisclaimerQualifyingQuestionsModal()"
1331                        >
1332                          Read more
1333                        </button>
1334                      </span>
1335                    </label>
1336                  </div>
1337        
1338                  <div>
1339                    <button
1340                      type="submit"
1341                      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;"
1342                      onmouseover="this.style.background='transparent'; this.style.color='black';"
1343                      onmouseout="this.style.background='black'; this.style.color='white';"
1344                    >
1345                      Submit
1346                    </button>
1347                  </div>
1348                </form>
1349              </div>
1350            </div>
1351          </div>
1352        </div>
1353
1354    
1354<script>
1355        (function() {
1356        var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy"));
1357
1358        if ("IntersectionObserver" in window && lazyVideos.length > 0) {
1359            var lazyVideoObserver = new IntersectionObserver(function(entries, observer) {
1360            entries.forEach(function(video) {
1361                if (video.isIntersecting) {
1362                for (var source in video.target.children) {
1363                    var videoSource = video.target.children[source];
1364                    if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") {
1365                    videoSource.src = videoSource.dataset.src;
1366                    }
1367                }
1368
1369                video.target.load();
1370                video.target.classList.remove("lazy");
1371                lazyVideoObserver.unobserve(video.target);
1372                }
1373            });
1374            });
1375
1376            lazyVideos.forEach(function(lazyVideo) {
1377                lazyVideoObserver.observe(lazyVideo);
1378            });
1379        }
1380        })();
1381    </script>
1381
1382
1383        <!-- Global site tag (gtag.js) - Google Analytics -->
1384        
1384<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1384
1385
1386            <!-- Google Tag Manager -->
1387            
1387<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
1388                new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
1389                j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src=
1390                'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
1391            })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1391
1392            <!-- End Google Tag Manager -->
1393
1394
1395        <!-- LP Tracker (divolte.js) - LP Divolte -->
1396            
1396<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1396
1397        <!-- LP Tracker (eventBus) - LP EventBus -->
1398            
1398<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1398
1399
1400    
1400<script>
1401        window.dataLayer = window.dataLayer || [];
1402        document.sendGoogleTagManagerEvent = function() {
1403            /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */
1404            if (window.navigator.globalPrivacyControl) {
1405                return;
1406            }
1407
1408            dataLayer.push(arguments);
1409        }
1410
1411        document.sendGoogleTagManagerEvent('js', new Date());
1412            document.sendGoogleTagManagerEvent('config', 'G-F5XP92L0WQ', { page: location.pathname, location: location.href });
1413        document.sendGoogleAnalyticsEvent = function(googleEvent) {
1414            document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, {
1415                event_category: googleEvent.eventCategory,
1416                event_label: googleEvent.eventLabel,
1417                value: googleEvent.eventValue,
1418                page: googleEvent.page,
1419                location: googleEvent.location
1420            })
1421        };
1422
1423        document.addEventListener("DOMContentLoaded", function() {
1424            (function() {
1425                //If the page has an element with ID of auto-year-update the element will be populated with the current year.
1426                var date = new Date();
1427                var elements = document.getElementsByClassName('auto-year-update');
1428                var i;
1429                for (i = 0; i < elements.length; i++) {
1430                    elements[i].innerText = date.getFullYear();
1431                }
1432            })();
1433            if (window.divolteLp) {
1434                window.divolteLp('sendLpPageView', {});
1435            }
1436            if (window.eventBusLp) {
1437                window.eventBusLp('sendLpPageView', {});
1438            }
1439        });
1440    </script>
1440
1441
1442
1443    
1443<script>
1444    // Function to dynamically load a script
1445    function loadScript(url, callback) {
1446        var script = document.createElement('script');
1447        script.type = 'text/javascript';
1448        script.src = url;
1449        script.defer = true;
1450        script.async = true;
1451        script.onload = callback;
1452        document.head.appendChild(script);
1453    }
1454
1455    // Function to dynamically load CSS file
1456    function loadCSS(url) {
1457        var link = document.createElement("link");
1458        link.rel = "stylesheet";
1459        link.href = url;
1460        document.head.appendChild(link);
1461    }
1462
1463    // Global methods / variables that can be accessed by element js
1464    window.luxuryPresence = {
1465        libs: {
1466            loadJs: loadScript,
1467            loadCss: loadCSS,
1468            jsLibsMap: {
1469                paroller: {
1470                    jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js',
1471                    isLoaded: false,
1472                },
1473                ionRangeSlider: {
1474                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js',
1475                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css',
1476                    isLoaded: false,
1477                    requires: ['jquery'],
1478                },
1479                splide: {
1480                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js',
1481                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css',
1482                    isLoaded: false,
1483                },
1484                wow: {
1485                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js',
1486                    isLoaded: false,
1487                },
1488                jquery: {
1489                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js',
1490                    isLoaded: false,
1491                },
1492                slick: {
1493                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js',
1494                    isLoaded: false,
1495                    requires: ['jquery'],
1496                },
1497                libphonenumber: {
1498                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js',
1499                    isLoaded: false,
1500                },
1501            },
1502        },
1503    };
1504    </script>
1504
1505    
1505<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>
1505
1506    
1506<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1506
1507    
1507<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1507
1508    
1508<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1508
1509    
1509<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>
1509
1510    
1510<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>
1510
1511    
1511<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>
1511
1512
1513    <!-- GOOGLE TRANSLATE SCRIPT -->
1514    
1514<script>
1515        function googleTranslateElementInit() {
1516            // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'`
1517            // Language codes can be taken from here https://cloud.google.com/translate/docs/languages
1518            const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt';
1519            document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){
1520                translate.innerText = '';
1521                new google.translate.TranslateElement({
1522                    pageLanguage: 'en',
1523                    layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
1524                    includedLanguages: window.customLanguages || DEFAULT_LANGUAGES,
1525                }, translate);
1526            });
1527        }
1528    </script>
1528
1529    
1529<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1529
1530            
1530<script defer src="https://accounts.google.com/gsi/intermediate"></script>
1530
1531
1532    <!-- GOOGLE TRANSLATE SCRIPT END-->
1533    
1533<script>
1534
1535        // UI helpers
1536        (function () {
1537
1538            function getSideMenu () {
1539                return document.querySelector('body > div.sidemenu');
1540            }
1541
1542            function sideMenuHide (instant) {
1543                var sideMenu = getSideMenu();
1544                if (!sideMenu || !sideMenu.classList.contains('visible')) {
1545                  return;
1546                }
1547                sideMenu.classList.remove('visible');
1548                sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } }));
1549                window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} }));
1550            }
1551
1552            function sideMenuShow () {
1553                var sideMenu = getSideMenu();
1554                if (!sideMenu || sideMenu.classList.contains('visible')) {
1555                  return;
1556                }
1557                sideMenu.classList.add('visible');
1558                sideMenu.dispatchEvent(new Event('lpui-show'));
1559                window.dispatchEvent(new Event('lpui-sidemenu-show'));
1560            }
1561
1562            function sideMenuToggle () {
1563                var sideMenu = getSideMenu();
1564                if (!sideMenu) {
1565                  return;
1566                }
1567                var isSideMenuVisible = sideMenu.classList.contains('visible');
1568                if (isSideMenuVisible) {
1569                    sideMenuHide();
1570                } else {
1571                    sideMenuShow();
1572                }
1573            }
1574
1575            var scrollLockRequests = {};
1576            window.__debug_scrollLockRequests = scrollLockRequests;
1577            var hideScrollStyles = ''+
1578                    'body {'+
1579                    'overflow: hidden;' +
1580                    '}';
1581            var hideScrollId = 'hide-body-scroll-style';
1582
1583            function scrollLock () {
1584                var style = document.createElement('style');
1585                style.id = hideScrollId;
1586                style.textContent = hideScrollStyles;
1587                document.head.appendChild(style);
1588                window.dispatchEvent(new Event('lpui-scroll-locked'));
1589            }
1590
1591            function scrollUnlock () {
1592                document.getElementById(hideScrollId)?.remove();
1593                window.dispatchEvent(new Event('lpui-scroll-unlocked'));
1594            }
1595
1596            function requestScrollLock (lockId) {
1597                var wasLocked = Object.keys(scrollLockRequests).length > 0;
1598                scrollLockRequests[lockId || '__anonymous_lock'] = true;
1599                if (!wasLocked) {
1600                    scrollLock();
1601                }
1602            }
1603
1604            function releaseScrollLock (lockId) {
1605                if (lockId) {
1606                    delete scrollLockRequests[lockId];
1607                    if (!Object.keys(scrollLockRequests).length) {
1608                        scrollUnlock();
1609                    }
1610                } else {
1611                    scrollLockRequests = {};
1612                    window.__debug_scrollLockRequests = scrollLockRequests;
1613                    scrollUnlock();
1614                }
1615            }
1616
1617            function showModal (modalId, options) {
1618                var modal = document.getElementById(modalId);
1619                if (!modal) {
1620                    return;
1621                }
1622
1623                if (!modal.classList.contains('visible')) {
1624                    modal.classList.add('visible');
1625                    if (options && options.scrollLock) {
1626                        window.lpUI.requestScrollLock(modalId);
1627                    }
1628                    modal.dispatchEvent(new Event('lpui-show'));
1629                    window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } }));
1630                }
1631
1632                const visibleModals = document.querySelectorAll('.modal.visible');
1633
1634                if (visibleModals.length > 1) {
1635
1636                    const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => {
1637                        const zIndex = window.getComputedStyle(modal).zIndex;
1638                        const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0;
1639                        return Math.max(maxZIndex, parsedZIndex);
1640                    }, 0);
1641
1642                    modal.style.zIndex = maxZIndex + 1;
1643                }
1644
1645            }
1646
1647            function _hideModal (modalEl) {
1648                if (!modalEl) {
1649                    return;
1650                }
1651                if (!modalEl.classList.contains('visible')) {
1652                    return;
1653                }
1654                modalEl.classList.remove('visible');
1655                modalEl.style.zIndex = '';
1656                modalEl.dispatchEvent(new Event('lpui-hide'));
1657                var modalId = modalEl.getAttribute('id');
1658                if (modalId) {
1659                    window.lpUI.releaseScrollLock(modalId);
1660                    window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } }));
1661                }
1662            }
1663
1664            function hideModal (modalId) {
1665                _hideModal(document.getElementById(modalId));
1666            }
1667
1668            function hideClosestModal (el) {
1669              const modal = el?.closest('.modal');
1670              if (!modal) {
1671                return;
1672              }
1673              if (modal.classList) {
1674                _hideModal(modal);
1675                return;
1676              }
1677              if (modal.length && modal[0].classList) {
1678                _hideModal(modal[0]);
1679              }
1680            }
1681
1682            window.lpUI = {
1683                sideMenuHide: sideMenuHide,
1684                sideMenuShow: sideMenuShow,
1685                sideMenuToggle: sideMenuToggle,
1686                requestScrollLock: requestScrollLock,
1687                releaseScrollLock: releaseScrollLock,
1688                showModal: showModal,
1689                hideModal: hideModal,
1690                hideClosestModal: hideClosestModal
1691            }
1692        })();
1693
1694        var stringifyPrimitive = function(v) {
1695            switch (typeof v) {
1696                case 'string':
1697                    return v;
1698
1699                case 'boolean':
1700                    return v ? 'true' : 'false';
1701
1702                case 'number':
1703                    return isFinite(v) ? v : '';
1704
1705                default:
1706                    return '';
1707            }
1708        };
1709
1710        function objectToQuerystring(obj, sep, eq, name) {
1711            // https://github.com/Gozala/querystring/blob/master/encode.js
1712            sep = sep || '&';
1713            eq = eq || '=';
1714            if (obj === null) {
1715                obj = undefined;
1716            }
1717
1718            if (typeof obj === 'object') {
1719                return Object.keys(obj).map(function(k) {
1720                    var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
1721                    if (Array.isArray(obj[k])) {
1722                        return obj[k].map(function(v) {
1723                            return ks + encodeURIComponent(stringifyPrimitive(v));
1724                        }).join(sep);
1725                    } else {
1726                        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
1727                    }
1728                }).filter(Boolean).join(sep);
1729
1730            }
1731
1732            if (!name) return '';
1733            return encodeURIComponent(stringifyPrimitive(name)) + eq +
1734                    encodeURIComponent(stringifyPrimitive(obj));
1735        }
1736
1737        function getPath(url, options) {
1738            var parser = document.createElement('a');
1739            parser.href = url || '';
1740            var path = parser.pathname || '';
1741            if (path[0] !== '/') {
1742              // IE does not return path starting with a slash
1743              path = '/' + path;
1744            }
1745
1746            if (options && options.queryString) {
1747                path += parser.search;
1748            }
1749
1750            return path;
1751        }
1752
1753        function getMLSAutocomplete(keyword) {
1754            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';
1755            var query = {
1756                kind: 'listings',
1757                query: keyword
1758            };
1759
1760            return superagent
1761                .get(searchURL)
1762                .query(query)
1763                .then(function(res) {
1764                    var data = res.body || [];
1765                    // Array of listing_auto_complete documents: id, display_address, city, state,
1766                    // price, sold_price, status, status_modified_at, photo_urls (array of URLs).
1767
1768                    return data;
1769                });
1770        }
1771
1772        function getMLSAutocompleteWithFilters(keyword, filters = {}) {
1773            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';
1774
1775            return superagent
1776                .get(searchURL)
1777                .query({ kind: 'listings', query: keyword, ...filters })
1778                .then(function(res) {
1779                    // Same response shape as getMLSAutocomplete.
1780                    return res.body || [];
1781                });
1782        }
1783
1784        function makeMlsLink(data) {
1785            // Code Dupe from utils/googlePlace
1786            // mapping of google data type to mls data type
1787            var mapping = {
1788                neighborhood: 'neighborhood',
1789                locality: 'place',
1790                administrative_area_level_2: 'county',
1791                administrative_area_level_1: 'state',
1792                postal_code: 'postalcode',
1793            };
1794
1795            function _filterTypes(types) {
1796                return types.filter(function(type) { return type !== 'political' });
1797            }
1798
1799            if (!data || !Object.keys(data).length) {
1800                return '/home-search/listings';
1801            }
1802
1803            var newData = {};
1804            _filterTypes(data.types).forEach(function(type) {
1805                if (mapping[type]) {
1806                    newData.search_type = mapping[type];
1807                }
1808            });
1809            newData.omnibox = data.formatted_address;
1810            data.address_components.forEach(function(component) {
1811                _filterTypes(component.types).forEach(function(type) {
1812                    if (mapping[type]) {
1813                        newData[mapping[type]] = component.long_name;
1814                    }
1815                });
1816            });
1817            var bounds = data.geometry.bounds;
1818            var convertedData = Object.assign(bounds, newData);
1819
1820            return '/home-search/listings?' + objectToQuerystring(convertedData);
1821        }
1822
1823        function debounce(func, wait) {
1824            let timeout;
1825            return function(...args) {
1826                const context = this;
1827                clearTimeout(timeout);
1828                timeout = setTimeout(() => func.apply(context, args), wait)
1829            }
1830        }
1831
1832        // Global methods / variables that can be accessed by element js
1833        window.luxuryPresence = {
1834            ...window.luxuryPresence,
1835            defaults: {
1836                companyId: '850552e9-2cd2-407f-a7ee-18f5819cdb5f',
1837                apiGatewayUrl: '/api-gw',
1838                routerUrl: '/api-nv',
1839                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\
1839n    }\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        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    $developmentId: ID\n    $companyId: String\n    $offset: Int\n    $limit: Int\n    $sort: String\n    $sortDir: SortDirectionEnum\n    $search: String\n    $tag: [String!]\n    $agentId: [ID!]\n    $neighborhoodId: ID\n    $neighborhoodIds: [ID!]\n  ) {\n    developments (\n      developmentId: $developmentId\n      companyId: $companyId\n      offset: $offset\n      limit: $limit\n      sort: $sort\n      sortDir: $sortDir\n      search: $search\n      tag: $tag\n      agentId: $agentId\n      neighborhoodId: $neighborhoodId\n      neighborhoodIds: $neighborhoodIds\n    ) {\n      id\n      name\n      description\n      descriptionShort\n      slug\n      createdAt\n      media {\n        smallUrl\n        mediumUrl\n        largeUrl\n        xLargeUrl\n        xxLargeUrl\n        height\n        width\n      }\n      googlePlaceData\n      seoTitle\n      seoDescription\n      tags\n    }\n    developmentsCount(\n      companyId: $companyId\n      search: $search\n      tag: $tag\n      agentId: $agentId\n      neighborhoodId: $neighborhoodId\n      neighborhoodIds: $neighborhoodIds\n    ) {\n      count\n    }\n  }\n","pois":"\n  query PointsOfInterest (\n    $regionId: UUID!\n    $radiu
1839s: 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"},
1840                propertyPlaceholderImage: {"id":"7c4d6e14-07d2-4c35-b91e-e98f0037248e","alt":null,"bytes":43543,"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/1d5e0997-7abf-4a18-9ca9-3259426a262c","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/1d5e0997-7abf-4a18-9ca9-3259426a262c","authorUrl":null,"createdAt":"2024-11-19T19:50:19.172Z","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/1d5e0997-7abf-4a18-9ca9-3259426a262c","sourceUrl":null,"updatedAt":"2024-11-19T19:50:19.172Z","xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/1d5e0997-7abf-4a18-9ca9-3259426a262c","__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/1d5e0997-7abf-4a18-9ca9-3259426a262c","description":null,"displayName":"property-logo-mm","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/1d5e0997-7abf-4a18-9ca9-3259426a262c","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/1d5e0997-7abf-4a18-9ca9-3259426a262c","originalFileName":"Property logo MM","cloudinaryPublicId":"1d5e0997-7abf-4a18-9ca9-3259426a262c"}
1841            },
1842            objectToQuerystring: objectToQuerystring,
1843            getPath: getPath,
1844            getMLSAutocomplete: getMLSAutocomplete,
1845            getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters,
1846            makeMlsLink: makeMlsLink,
1847            debounce: debounce,
1848        };
1849
1850        var wowOffset = 100;
1851    </script>
1851
1852    
1852<script>
1853        (()=>{function e(e){return e&&e.__esModule?e.default:e}var t={},i={};i={getVideoFirstFrame(e){let t="https://res.cloudinary.com/";if(!e||!e.startsWith(t))return null;let i=e.replace(t,"").replace("f_auto:video","f_auto").split("/");if(-1===i[1].toLowerCase().indexOf("video"))return null;let s=i[i.length-1];s.lastIndexOf(".")>-1?s=`${s.slice(0,s.lastIndexOf("."))}.jpg`:s+=".jpg",i[i.length-1]=s;let r=3;"videos"===i[1].toLowerCase()&&""!==i[2]&&(r=2);let a=/^(?:[a-z]{1,3}|\$\w+)_\S+$/;for(;r<i.length-1&&a.test(i[r]);)r++;return i.splice(r,0,"so_0,eo_0"),t+i.join("/")}},t=function(e,{isEqual:t}){let s=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],r=function(e,t,i){let s="en-US";if(!e)return"";if("string"==typeof e){let t=e.trim();if(/[^+\-0-9.]/.test(t))return e;if(!(e=parseFloat(t)))return""}let r="number"==typeof i?i:0,a=Number.isInteger(e)?0:r,o={minimumFractionDigits:a,maximumFractionDigits:a};return"USD"===t?`$${e.toLocaleString(s,o)}`:"CAD"===t?`$${e.toLocaleString(s,o)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(s,o)}`:"GBP"===t?`\xa3${e.toLocaleString(s,o)}`:"PERCENT"===t?`${e}%`:"number"==typeof i&&i>-1?e.toLocaleString(s,{maximumFractionDigits:i}):e.toLocaleString(s)},a=function(e){switch(e){case"DAY":return"daily";case"MONTH":return"monthly";case"WEEK":return"weekly";case"YEAR":return"yearly";case"QUARTER":return"quarterly";case"HALF_YEAR":return"semi-annually";case"NIGHTLY":return"nightly";case"SEASONAL":return"seasonally";default:return""}},o=function(e){switch(e){case"DAY":return"day";case"WEEK":return"wk";case"MONTH":return"mo";case"YEAR":return"yr";case"QUARTER":return"3 mos";case"HALF_YEAR":return"6 mos";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},n=function(e){switch(e){case"DAY":return"day";case"WEEK":return"week";case"MONTH":return"month";case"YEAR":return"year";case"QUARTER":return"quarter";case"HALF_YEAR":return"6 months";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},l=function(e,t){let i,s,r=t||{};switch(r.mode){case"short":i=o(e),s=r.frequencySeparator||"/";break;case"standard":case"std":i=n(e),s=r.frequencySeparator||"/";break;default:i=a(e),s=r.frequencySeparator||" "}return i?r.frequencyTag||r.frequencyClass?`${s}<${r.frequencyTag||"span"}${r.frequencyClass?` class="${r.frequencyClass}"`:""}>${i}</${r.frequencyTag||"span"}>`:s+i:""};return{isEmpty(e,t){let i=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?i?t.fn(this):t.inverse(this):i},ifEquals(e,i,s){return t(e,i)?s.fn(this):s.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?(e=(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,"")).replace(/&nbsp;/g," ")).replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g,""):"",striptagsLineBreaks:e=>e?(e=(e=(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,"")).replace(/(<br\s*\/?>)|(<\/p\s*>)(?=.*(<\/p\s*>|<br\s*\/?>))/g,"&#10;")).replace(/&nbsp;/g," ")).replace(/<\/?("[^"]*"|'[^']*'|[^>])*(>|$)/g,""):"",truncate:(e,t,i)=>e?e.length>t?"string"==typeof i?e.slice(0,t-i.length)+i:e.slice(0,t):e:"",setSubArray(e=[],t,i,s,r){r.data.root[s]=e.slice(t,i)},formatAreaUnit(e){switch(e){case"ACRE":return"Acres";case"SQUARE_METER":return"Sq.M.";case"SQUARE_YARD":return"Sq.Yd.";default:return"Sq.Ft."}},formatFrequency:a,formatFrequencyShort:o,lpFormatFrequency:(e,t)=>l(e,t&&t.hash),subArray(e,t,i,s){return e>=t&&e<i?s.fn(this):s.inverse(this)},formatPropertyStatus(e,t,i){let s="";switch(e){case"SOLD":s="Sold";break;case"FOR_SALE":s="For Sale";break;case"COMING_SOON":s="Coming Soon";break;case"INACTIVE":s="Inactive";break;case"POCKET_LISTING":s="Pocket Listing";break;case"PENDING":s="Pending";break;case"UNDER_CONTRACT":s="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":s="Active Under Contract";break;default:s=e}return("Sold"===s||"Leased"===s)&&t&&"string"==typeof i&&i&&(s+=` on ${i}`),s},formatGrade(e){switch(e){case"UNDERGRADUATE_COURSES":return"Undergrad";case"PRE_KINDERGARTEN":return"PreK";case"KINDERGARTEN":return"K";case"FIRST_GRADE":return"1st";case"SECOND_GRADE":return"2nd";case"THIRD_GRADE":return"3rd";case"FOURTH_GRADE":return"4th";case"FIFTH_GRADE":return"5th";case"SIXTH_GRADE":return"6th";case"SEVENTH_GRADE":return"7th";case"EIGHTH_GRADE":return"8th";case"NINTH_GRADE":return"9th";case"TENTH_GRADE":return"10th";case"ELEVENTH_GRADE":return"11th";case"TWELFTH_GRADE":return"12th";default:return""}},encodeURI:e=>encodeURI(e),encodeURIComponent:e=>encodeURIComponent(e),hbFormatDate(e,t){if(!e)return"";let i="current"===e?new Date:new Date(e);if(Number.isNaN(i.getTime()))return"";if("YYYY"===t||"year"===t)return`${i.getFullYear()}`;if("MM/DD/YY"===t){let e=i.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${i.getDate()}/${i.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][i.getMonth()]} ${i.getDate()}, ${i.getFullYear()}`},openHousesFormat(e,t,i){if(!e||!t)return"";let s=e=>{let t=e.getHours();t>12&&(t-=12);let i=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?i+="PM":i+="AM",i},r="",a=e,o=t;
1853i&&(a=new Date(e).toLocaleString("en-US",{timeZone:i}),o=new Date(t).toLocaleString("en-US",{timeZone:i}),[,,,r]=new Date(t).toLocaleString("en-US",{timeZone:i,timeZoneName:"short"}).split(" "));let n=new Date(a),l=n.toLocaleDateString("en-US"),d=s(n),c=s(new Date(o));return`${l} ${d} - ${c} ${r}`},math:(e,t,i)=>(e=parseFloat(e),({"+":e+(i=parseFloat(i)),"-":e-i,"*":e*i,"/":e/i,"%":e%i})[t]),findByKey(e,t,i,s){let r=(e||[]).find(e=>e[t]===i);return s.fn(r)},capitalize(e,t,i){let s;return"string"==typeof e&&e.length&&(s=e.toLowerCase().split(t).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").toString()),s},and:(...e)=>Array.prototype.slice.call(e).every(Boolean),or:(...e)=>Array.prototype.slice.call(e,0,-1).some(Boolean),not:e=>!e,orderByIds(t,i,s){let r="",a=null;s.data&&(a=e.createFrame(s.data));let o=(i||[]).filter(Boolean);if(o&&o.length){let e=0;r=o.reduce((i,r,o)=>{let n=(t||[]).find(e=>e.id===r);return n?(a&&(a.index=o-e),i+s.fn(n,{data:a})):(e+=1,i)},"")}else for(let e=0,i=(t||[]).length;e<i;e++)a&&(a.index=e),r+=s.fn(t[e],{data:a});return r},ifIn(e,t,i){return t&&t.indexOf(e)>-1?i.fn(this):i.inverse(this)},partial:(t,i)=>(e.registerPartial(t,e.compile(i.fn())),`
1853<script type="text/x-handlebars-template" class="${t} pagination-script">${i.fn()}<\/script>`),numCompare(e,t,i,s){return({"==":function(e,t){return e==t},"===":function(e,t){return e===t},"!=":function(e,t){return e!=t},"<":function(e,t){return e<t},">":function(e,t){return e>t},"<=":function(e,t){return e<=t},">=":function(e,t){return e>=t}})[i](e,t)?!s.fn||s.fn(this):!!s.fn&&s.inverse(this)},lpFormatNumber:r,arrayToHtmlList:(e,t)=>e.reduce((e,t)=>{try{if("object"==typeof t||null===t)return e;return e+=`<li>${t}</li>`}catch(e){}},""),join:(e,t,i)=>e&&e.join?e.join("string"==typeof t?t:", "):"",dedupe(t,i,s){let r=null,a=0,o=new Set;return s.data&&(r=e.createFrame(s.data)),(t||[]).reduce((e,t,n)=>{let l=i?t[i]:t;return!o.has(l)||i&&void 0===l?(o.add(l),r&&(r.index=n-a),e+s.fn(t,{data:r})):(a+=1,e)},"")},JSONstringify:(e,t)=>JSON.stringify(e),formatPropertyPrice(...t){let i=t[t.length-1].hash,s=t.length>1?t[0]:i.property,a=i.precision||0;t.length>2&&(i.mode=t[1]),i.mode||(i.mode="short");let o=t.length>3?t[2]:i.separator;if("string"!=typeof o&&(o=" | "),s.isPasswordProtected)return"Exclusive Listing";let n=t.length>4?t[3]:i.priceUponRequestText;if("string"!=typeof n&&(n="Price Upon Request"),s.priceUponRequest)return n;let d=s.salesPrice,c=null;"SOLD"!==s.status&&"Leased"!==s.status&&s.reducedPrice&&(i.reducedClass?c=s.reducedPrice:d=s.reducedPrice);let u="";c&&(u+=`<${i.reducedTag||"span"} class="${i.reducedClass}">${r(c,s.currency,a)}</${i.reducedTag||"span"}>`),d&&(d=r(d,s.currency,a),i.priceTag||i.priceClass?u+=`<${i.priceTag||"span"}${i.priceClass?` class="${i.priceClass}"`:""}>${d}</${i.priceTag||"span"}>`:u+=d);let h=s.leasePrice&&r(s.leasePrice,s.currency,a);if(h){u&&(u+=o);let e=`${h}${l(s.leasePeriod,i)}`;i.leaseTag||i.leaseClass?u+=`<${i.leaseTag||"span"}${i.leaseClass?` class="${i.leaseClass}"`:""}>${e}</${i.leaseTag||"span"}>`:u+=e}
1853return new e.SafeString(u)},mediaImage(t,i={}){if(!t)return;let{lazy:r,...a}=i.hash,o="",n="";if("string"==typeof t)o=t;else{let e={},{height:r,width:l,altTagText:d}=t;s.forEach(i=>{t[i.field]&&!e[t[i.field]]&&(e[t[i.field]]=i.w)});let c=Object.keys(e);if(!c.length)return;if(d&&(a.alt=d),r&&l&&(r>=l&&(a.class?a.class+=" portrait":a.class="portrait"),"setDims"in i.hash&&(a.width=l,a.height=r)),c.length>1&&l&&l<e[c[c.length-1]]){let t=c.findIndex(t=>e[t]>=l);c.splice(t+1),e[c[c.length-1]]=l}c.length>1&&(n=c.map(t=>`${t} ${e[t]}w`).join(", "),c.sort((t,i)=>Math.abs(e[t]-1280)-Math.abs(e[i]-1280))),o=c[0]}delete a.setDims,n||delete a.sizes,"alt"in a||(a.alt=""),!("loading"in a)&&(i?.data?.root?.sectionIndex>1||r)&&(a.loading="lazy");let l=Object.keys(a).map(t=>`${e.escapeExpression(t)}="${e.escapeExpression(a[t])}"`).join(" ");return new e.SafeString(`<img src="${o}"${n?` srcset="${n}"`:""}${l?` ${l}`:""}>`)},bgImage:e=>e?"string"==typeof e?e:e.largeUrl||e.url||"":"",concat(...e){let t="";for(let i in e)null!==e[i]&&void 0!==e[i]&&"object"!=typeof e[i]&&(t+=e[i]);return t},setVideoExtension(e,t){if(!e||!t)return"";let i=new URL(e);if("res.cloudinary.com"!==i.host)return i.pathname.endsWith(`.${t}`)?e:"";let s=i.pathname.lastIndexOf("."),r=i.pathname;return -1!==s&&(r=i.pathname.substr(0,s)),i.pathname=`${r}.${t}`,i.toString()},addVideoSources(e){if(!e)return"";if(!e.includes("res.cloudinary.com"))return`<source data-src="${e}">`;let t=e.replace(/\.(?:3gp|mpeg|mp4|m4v|m4p|ogv|ogg|mov|webm)$/,"");return[{format:"webm",codec:"vp9",htmlCodecs:";codecs=vp9"},{format:"mp4",codec:"h265",htmlCodecs:";codecs=hvc1"},{format:"mp4",codec:"h264",htmlCodecs:""}].map(e=>{let i=`${t.replace(/f_auto(?::video)?(?:,q_auto(?::\w+)?)?/,`f_${e.format},vc_${e.codec},q_auto:best,w_1920,c_limit`)}.${e.format}`;return`<source data-src="${i}" type="video/${e.format}${e.htmlCodecs}">`}).join("\n")},cloudinaryVideoFirstFrame:i.getVideoFirstFrame,initials(e,t){if(!e)return"";t?.hash?.endChar&&(e=e.split(t.hash.endChar)[0]);let i=+t?.hash?.maxChars||2,s=e.match(/\b\w/g)?.slice(0,i);return s?(t?.hash?.addText&&(s=s.map(e=>e+t.hash.addText)),s.join(t?.hash?.joinWith||"").toUpperCase()):""},normalizePhone(e){if(!e)return"";let t=String(e).trim();return(t.startsWith("+")?"+":"")+t.replace(/\D/g,"")}}};class s{constructor(e,t,i){if(this.config=e,this.window=t,this.document=i,!this.destroy)throw Error("Controllers must implement a deconstructor")}}let r="lp_lead_form_conversion_fired";function a(e,t){if(e&&t&&"function"==typeof t.sendGoogleTagManagerEvent&&!function(e){try{return"true"===e.sessionStorage.getItem(r)}catch{return!1}}(e))try{t.sendGoogleTagManagerEvent("event","generate_lead");try{e.sessionStorage.setItem(r,"true")}catch{}}catch{}}function o(e){return!!e&&(!!e.expired||Date.now()>=e.expiresAt)}let n="/api/v1/home-valuation";class l extends s{destroy(){}_cleanAddressString(e){if(!e||"string"!=typeof e)return"";let t=e.trim();if(t.includes("User entered address:")){let e=t.match(/User entered address:\s*\n?\s*([^\n]+)/);e&&e[1]&&(t=e[1].trim())}let i=t.indexOf(", call time frame:");return -1!==i&&(t=t.substring(0,i).trim()),t}_transformAddressComponents(e){let t=t=>(e.find(e=>e.componentType===t)||{}).componentName?.text,i={},s=t("street_number"),r=t("route"),a=t("administrative_area_level_1"),o=t("postal_code"),n=t("subpremise"),l=t("locality")||t("sublocality_level_1")||t("neighborhood");return s&&(i.streetNumber=s),r&&(i.streetName=r),l&&(i.city=l),a&&(i.state=a),o&&(i.zipcode=o),n&&(i.addressLine2=n),i}_extractAddressAndCoordinates(e){let t=null,i=null;if(e?.result){let{result:s}=e;s.address?.addressComponents&&(t=this._transformAddressComponents(s.address.addressComponents)),s.geocode?.location&&(i={latitude:s.geocode.location.latitude,longitude:s.geocode.location.longitude})}return{structuredAddress:t,coordinates:i}}_filterEmptyStrings(e){let t={};for(let[i,s]of Object.entries(e))""!==s&&null!=s&&(t[i]=s);return t}_getRawAddress(e){let t=e.activity.content||{},i=e.activity.comments_attributes?.[0]?.text;return[t.address,t["property-address"],t.property_address,t.Property_Address,i,t.message,t.homeValuationAddress,t.propertyAddress].map(e=>e&&this._cleanAddressString(e)).find(Boolean)||""}_logLeadEvent(e,t,i=null){let s={event:e,companyId:this.config.companyId,websiteId:this.config.websiteId,timestamp:new Date().toISOString(),hasEmail:!!t.activity?.author_email,hasAddress:!!this._getRawAddress(t)};if(i&&(s.errorMessage=i.userMessage||(i.status?`Request failed with status ${i.status}`:"An error occurred"),s.errorName=i.name,s.errorStatus=i.status),console.error(`[HomeValuation] ${e}`,JSON.stringify(s)),this.window.posthog)try{this.window.posthog.capture(e,s)}catch(e){console.error("[HomeValuation] PostHog capture failed:",e)}}_getUserFriendlyErrorMessage(e){return"AbortError"===e.name||e.message?.includes("timeout")?"Connection timed out. Please try again.":"TypeError"===e.name&&e.message?.includes("fetch")?"Unable to connect. Please check your internet connection and try again.":503===e.status||502===e.status||504===e.status?"Service temporarily unavailable. Please try again in a moment.":400===e.status?"Please check your information and try again.":"Something went wrong. Please try again or c
1853ontact us directly."}_formatStructuredAddress(e){if(!e||0===Object.keys(e).length)return"";let t=[];return t.push([e.streetNumber,e.streetName,e.addressLine2].filter(Boolean).join(" ")),t.push([[e.city,e.state].filter(Boolean).join(", "),e.zipcode].filter(Boolean).join(" ")),t.filter(Boolean).join(", ")}_buildHomeValuationData(e,t,i,s){let r=this._formatStructuredAddress(i)||this._getRawAddress(e);if(!r)throw Error("Unable to extract home valuation address from form data");let a={companyId:e.companyId,homeValuationAddress:r,homeValuationEstimate:t?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0,minimumFractionDigits:0}).format(t):null,websiteId:e.page.websiteId,sourceUrl:e.activity.source_url},o={leadEmailAddress:e.activity.author_email,leadFullName:e.activity.author_name,leadFirstName:e.activity.firstName,leadLastName:e.activity.lastName,leadPhoneNumber:e.activity.author_phone,parcelId:e.activity.content?.parcelId,resourceId:e.page.pageMeta?.resourceId,pageId:e.page.pageId,sourceResource:e.page.pageMeta?.s
1853ourceResource,pageElementId:e.page.pageMeta?.pageElementId,formId:e.page.pageMeta?.formId,utmSource:e.activity.content?.utm_source,utmMedium:e.activity.content?.utm_medium,utmCampaign:e.activity.content?.utm_campaign,utmTerm:e.activity.content?.utm_term,utmContent:e.activity.content?.utm_content,utmId:e.activity.content?.utm_id,timeToSell:e.activity.content?.timeToSell,lookingToBuy:e.activity.content?.lookingToBuy,consented:!!e.activity.content?.termsAccepted,referrer:e.referrer,content:e.activity.content||{},fields:e.fields||{}},n=this._filterEmptyStrings(o);return{...a,...n,...i&&{address:i},...s&&{coordinates:s}}}async _validateAddressSafely(e){if(!e)return console.error("Home valuation: No address found in form data"),null;try{return await this._validateAddressWithGoogleMaps(e)}catch(e){throw console.error("Error validating address with Google Maps:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}async _getHomeValuationEstimateSafely(e){try{return await this._getHomeValuationEstimate(e)}catch(e){throw console.error("Error getting home valuation estimate:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}_isSafeRedirectUrl(e){try{let{protocol:t}=new URL(e,this.window.location.href);return"https:"===t||"http:"===t}catch{return!1}}_parseResponsePayload(e){try{return e?JSON.parse(e):{}}catch{return{raw:e}}}_createResponseError(e,t){let i=Error(e&&"object"==typeof e&&Object.keys(e).length?e.message||JSON.stringify(e):"Request failed");return e&&"object"==typeof e&&Object.keys(e).length&&Object.assign(i,e),i.status=t,i}_resolveValuationApiBase(){let{config:e}=this;if(void 0!==e.valuationApiBase&&null!==e.valuationApiBase&&(""!==e.valuationApiBase||!e.isBuilder))return e.valuationApiBase;if(e.websiteApiGatewayUrl)return e.websiteApiGatewayUrl;throw Error("websiteApiGatewayUrl/valuationApiBase not configured for home valuation")}async _submitLead(e,t,i){let s=new AbortController,r=setTimeout(()=>s.abort(),1e4);try{let a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:s.signal});clearTimeout(r);let n=await a.text(),l=this._parseResponsePayload(n);if(!a.ok)throw this._createResponseError(l,a.status);if(l&&"success"===l.status&&l.redirectUrl){if(o(i))return l;if(!this._isSafeRedirectUrl(l.redirectUrl))return console.error("Home valuation: refusing redirect to unsupported protocol"),l;return this.window.location.href=l.redirectUrl,{redirected:!0,url:l.redirectUrl}}return l}catch(e){throw clearTimeout(r),e}}async _submitHomeValuationRequest(e){let t=this._resolveValuationApiBase();this._logLeadEvent("home_valuation_submission_started",e);try{let i=this._getRawAddress(e),s=null;try{s=await this._validateAddressSafely(i)}catch(t){throw this._logLeadEvent("home_valuation_address_validation_failed",e,t),t}let r=null;try{r=await this._getHomeValuationEstimateSafely(s)}catch(t){this._logLeadEvent("home_valuation_estimate_failed",e,t),r=null}let{structuredAddress:a,coordinates:o}=this._extractAddressAndCoordinates(s),l=`${t}${n}`,d=this._buildHomeValuationData(e,r,a,o),c=await this._submitLead(l,d,e.deadline);return this._logLeadEvent("home_valuation_submission_success",e),c}catch(t){throw t.userMessage||(t.userMessage=this._getUserFriendlyErrorMessage(t)),this._logLeadEvent("home_valuation_submission_failed",e,t),t}}async _validateAddressWithGoogleMaps(e){let{config:t,window:i}=this,s=t.googleMapsAPIKey;if(!s&&i.luxuryPresence?.mapApiLoader&&(s=await i.luxuryPresence.mapApiLoader.getMapApiKey()),!s)throw Error("Google Maps API key not configured");let r=new AbortController,a=setTimeout(()=>r.abort(),1e4);try{let t=await fetch(`https://addressvalidation.googleapis.com/v1:validateAddress?key=${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:{addressLines:[e]},enableUspsCass:!1}),signal:r.signal});if(clearTimeout(a),!t.ok){let e=Error(`Address validation failed: ${t.status}`);throw e.status=t.status,e}return t.json()}catch(e){throw clearTimeout(a),e}}_hasMandatoryAddressFields(e){return!!(e.streetNumber&&e.streetName&&e.city&&e.state&&e.zipcode)}_logMissingAddressFields(e){let t=[];e.streetNumber||t.push("streetNumber"),e.streetName||t.push("streetName"),e.city||t.push("city"),e.state||t.push("state"),e.zipcode||t.push("zipcode"),console.log("Home valuation estimate skipped - missing required fields:",t.join(", "),"Available fields:",Object.keys(e).join(", "))}_buildAddressQueryString(e){return Object.entries(e).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}async _getHomeValuationEstimate(e=null){let t=`${this._resolveValuationApiBase()}${n}`;if(!e?.result?.address?.addressComponents)return null;let i=this._transformAddressComponents(e.result.address.addressComponents);if(!this._hasMandatoryAddressFields(i))return this._logMissingAddressFields(i),null;let s=this._buildAddressQueryString(i),r=`${t}?${s}`,a=new AbortController,o=setTimeout(()=>a.abort(),1e4);try{let e=await fetch(r,{headers:{Accept:"application/json"},signal:a.signal});if(clearTimeout(o),!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(o),e}}}let d="middleName",c="redirect-pending",u=["name","firstName","lastName",d,"email","phone","phoneNumber","source","message","mlsId","sourceUrl"],h="lp_map_key_failed",p="oauthSuccess",m={cookieyes:{eventName:"cookieyes_consent_update",hasAnalyticsConsent:e=>(function(e){let t=e.cookie.match(/cookieyes-consent=([^;
1853]+)/);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 g(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function y(e,t){t.forEach(t=>{let i=e[t];Array.isArray(i)&&0===i.length&&delete e[t]})}function f(e,t,i,s){let r=t.map(t=>(function e(t){return Array.isArray(t)?t.flatMap(t=>e(t)):"string"==typeof t?t.split(/\s+/).filter(Boolean):null==t?[]:[t]})(e[t])),a=s?.merge?r.flat():r.find(e=>e.length>0)??[];t.forEach(t=>{delete e[t]}),a.length>0&&(e[i]=[...new Set(a)])}function v(e){let t={...e};if(t.urlWebsite||(t.urlWebsite=null),t.urlYoutube=null,t.urlFacebook=null,t.urlInstagram=null,t.urlLinkedin=null,t.urlPodcast=null,t.urlTwitter=null,Array.isArray(e.socialLinks)){let i=[...e.socialLinks].sort((e,t)=>{let i=e.type?.toLowerCase()||"",s=t.type?.toLowerCase()||"";return i.localeCompare(s)});t.socialLinks=i;let s={youtube:"urlYoutube",facebook:"urlFacebook",instagram:"urlInstagram",linkedin:"urlLinkedin",podcast:"urlPodcast",twitter:"urlTwitter"};i.forEach(e=>{let i=s[e.type?.toLowerCase()??""];i&&(t[i]=e.link)})}return t}function w(e){return e&&Array.isArray(e)?e.map(e=>v(e)):e}function b(e){let{region:t}=e;if(!g(t))return e;let{schools:i,pois:s,...r}=t,a={...r,schools:g(i)?i.data??[]:[],...Array.isArray(s)?{pois:s.map(e=>({...e,category:"string"==typeof e.category?e.category.toUpperCase():e.category}))}:{}};return{...e,region:a}}function S(e){return e&&Array.isArray(e)?e.map(e=>b(e)):e}function _(e){let t=e.featuresAndAmenities;if(!Array.isArray(t))return e;let i=t.map(e=>({featureIds:e.featureIds??[],features:e.features??[],description:e.description}));return{...e,featuresAndAmenities:i}}function E(e){return e&&Array.isArray(e)?e.map(e=>_(e)):e}function I(e,t){return g(e)?t(e):e}function A(e,t){return Array.isArray(e)?t(e):e}var L={};L=`
1854  query PropertyDisclaimers($input: PropertyDisclaimersInput!) {
1855    propertyDisclaimers(input: $input) {
1856      feedId
1857      listingId
1858      resolvedFromListing
1859      listingCardAttribution
1860      listingDetailCourtesy
1861      listingDetailFooter
1862      logo
1863    }
1864  }
1865`;let $={mlsAttribution:"listingCardAttribution",mlsLogo:"logo",listingDetailCourtesy:"listingDetailCourtesy",listingDetailFooter:"listingDetailFooter"},x=new class{constructor(e){this.isBuilder=!1,this.companyId=null,this.websiteId=null,this.pageId=null,this.shareId=null,this.pageMeta=null,this.websiteApiGatewayUrl=null,this.buyerSellerServiceUrl=null,this.leadIngesterUrl=null,this.divolteServiceUrl=null,this.eventBus=null,this.templateId=null,this.myhomeDashboardEnabled=!1,this.mlsEnabled=!1,this.hstValuationRedirectEnabled=!1,this.hvStepTwoCaptureEnabled=!1,this.googleMapsAPIKey=null}get valuationApiBase(){return this.isBuilder?this.websiteApiGatewayUrl:""}destroy(){}setPage(e,t={}){this.pageId=e,this.shareId=t.shareId||null,this.pageMeta={sourceResource:t.sourceResource,pageElementId:t.pageElementId,pageQueryVariables:t.pageQueryVariables||{}}}setIsBuilder(e){this.isBuilder=e}setCompany(e,t={}){this.companyId=e}setWebsite(e,t={}){this.websiteId=e,t.myhomeDashboardEnabled&&(this.myhomeDashboardEnabled=t.myhomeDashboardEnabled),t.mlsEnabled&&(this.mlsEnabled=t.mlsEnabled),t.hstValuationRedirectEnabled&&(this.hstValuationRedirectEnabled=t.hstValuationRedirectEnabled),t.hvStepTwoCaptureEnabled&&(this.hvStepTwoCaptureEnabled=t.hvStepTwoCaptureEnabled)}setWebsiteApiGatewayUrl(e,t={}){this.websiteApiGatewayUrl=e}setBuyerSellerServiceUrl(e,t={}){this.buyerSellerServiceUrl=e}setDivolteServiceUrl(e,t={}){this.divolteServiceUrl=e}setEventBusUrl(e,t={}){this.eventBusUrl=e}setTemplateId(e,t={}){this.templateId=e}setLeadIngesterUrl(e,t={}){this.leadIngesterUrl=e}setGoogleMapsAPIKey(e,t={}){this.googleMapsAPIKey=e}setEventBus({enabled:e,apiKey:t,url:i}){this.eventBus={enabled:e,apiKey:t,url:i}}}({}),T=new class extends s{constructor(e,t,i){super(e,t,i),this.setLoginState=this.setLoginState.bind(this),this.pageId=null,this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}initialize(e){try{let{config:t,document:i}=this;this.pageId=t.pageId,this.modals=i.querySelectorAll("body > #modals >
1865 .modal"),e.modals.forEach(e=>{this._attachModalHandler(e)})}catch(e){console.log(e)}}destroy(){let{document:e}=this;this.exitModalEventListeners.forEach(t=>{e.removeEventListener("mouseout",t)}),this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}setModalWithExpiry(e){let{window:t}=this,i=new Date().getTime()+864e5,s=`modal-controller-${e}`;try{t.localStorage.setItem(s,JSON.stringify(i))}catch(e){}}setLoginState(){let{window:e}=this;try{e.localStorage.setItem("isSignedUp","true")}catch(e){}}getModalWithExpiry(e){let{window:t}=this,i=t.localStorage,s=i.getItem(`modal-controller-${e}`);if(!s)return!1;let r=JSON.parse(s);return!(new Date().getTime()>r)||(i.removeItem(`modal-controller-${e}`),!1)}show(e,t={}){let{window:i}=this,s=this.getModalWithExpiry(e);(e&&!s||!0===t.forced)&&(i.lpUI.showModal(`modal-${e}`,t),this.setModalWithExpiry(e))}_attachModalHandler(e){let{pageId:t}=this,{trigger:i,pageSpecific:s}=e;(!s||e.pages.map(e=>e.pageId).includes(t))&&("EXIT"===i?this._exitModalHandler(e):"TIMER"===i?this._timerModalHandler(e):"FORCED"===i&&this._forcedModalHandler(e))}_exitModalHandler(e){let t=this,{document:i,exitModalTriggered:s}=this,{modalId:r}=e;function a(e){!s[r]&&(e.toElement||e.relatedTarget||(t.show(r),s[r]=!0))}i.addEventListener("mouseout",a),this.exitModalEventListeners.push(a)}_timerModalHandler(e){let{modalId:t,timerDelay:i}=e;setTimeout(()=>{this.show(t)},i)}_forcedModalHandler(e){let{modalId:t}=e,{window:i,document:s}=this;if("true"!==i.localStorage.getItem("isSignedUp")){let e=s.querySelector(`#modal-${t}`),r=e?.querySelector("form"),a=r?.dataset.delay||2e3;r.addEventListener("formsubmitted",()=>{this.setLoginState()}),i.addEventListener("oauthSuccess",()=>{this.setLoginState(),r.classList.add("success"),setTimeout(()=>{i.lpUI.hideModal(`modal-${t}`),r.reset(),r.classList.remove("success")},a)}),this.show(t,{forced:!0})}}}(x,window,document),C=new class extends s{constructor(e,t,i){super(e,t,i),this._boundClickHandler=this._buttonClickHandler.bind(this)}initialize(e={}){try{let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler),e.body.addEventListener("click",this._boundClickHandler)}catch(e){console.error(e)}}destroy(){let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler)}_buttonClickHandler(e){this._handleButtonClick(e).catch(e=>console.error(e))}async _handleButtonClick(e){let{window:t,document:i}=this,s=e.target.closest("button, a");if(!s)return;let r=s.dataset.type||"",a=s.href||s.dataset.href||"",o=s.target||"",{submit:n}=s.dataset;if(n){try{await this._handleSubmit(s)}catch(e){console.error(e)}((e,t=!1)=>{if(e){if(t)return window.open(e);window.location.assign(e)}})(a,"_blank"===o)}if(this._trackConversion(s),"VIDEO"===r)return void this._handleVideoButton(s);if("CONTACT_US"===r)return void this._handleContactUsButton(s);if("SUBSCRIBE"===r)return void t.lpUI.showModal("modal-global-subscribe");if("MY_ACCOUNT"===r)return void t.lpUI.showModal("modal-global-my-account");if("SHARE_POPUP"===r){let t=s.querySelector(".share-popup");t&&(t.style.display="flex"),e.stopPropagation();return}if("MODAL_"===r.substring(0,6)){let e=r.substring(6);t.lpUI.showModal(`modal-${e}`);return}if(a?.startsWith("mailto:")){let e=a.substring(7);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Email",eventValue:e})}else if(a?.startsWith("tel:")){let e=a.substring(4);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Phone",eventValue:e})}}async _handleSubmit(e){let t=e.closest("form"),{window:i}=this;return t?await i.luxuryPresence.contactForms.submitForm(t):null}_getVimeoSrc(e){if(!e||!e.includes("vimeo.com")||e.length>2e3)return null;let t=e.match(/(?:(?:www\.)?vimeo\.com\/(?:showcase\/\d+(?:\/video\/|\?video[=/])|channels\/(?:\w+\/)?|groups\/(?:[^/]*)\/videos\/|)|player\.vimeo\.com\/video\/)(\d+)(?:(?:\?.*&*h=|\/)+([\d,a-f]+))?/);if(!t)return null;let[,i,s]=t,r=`https://player.vimeo.com/video/${i}?`;return s&&(r+=`h=${s}&`),r+="autoplay=1"}_handleVideoButton(e){let{document:t}=this,i=e.closest("section"),{src:s}=e.dataset,r="";if(s&&(s.includes("youtube.com")||s.includes("youtu.be"))&&!s.includes("youtube.com/embed")){let e=s.match(/(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=)
1865)|youtu.be\/)([a-zA-Z0-9_-]{6,11})/);e&&(r=e[1])}let a=this._getVimeoSrc(s);if(r?s=`https://youtube.com/embed/${r}?autoplay=1&controls=0`:a&&(s=a),!s||!i)return;let o=s.endsWith(".mp4")||s.endsWith(".webm")||s.includes("cloudinary.com"),n=`
1866      <div id="modal-${i.id}" class="modal visible">
1867        <div class="modal-content">
1868          <div class="lightbox-video">
1869            <div class="video-player">
1870              <div class="embed-container">
1871                ${o?`<video controls autoplay src="${s}"></video>`:`<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${s}"></iframe>`}
1872              </div>
1873            </div>
1874          </div>
1875        </div>
1876        <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button>
1877      </div>
1878    `;t.body.insertAdjacentHTML("beforeend",n);let l=t.getElementById(`modal-${i.id}`);l.querySelector(".close").addEventListener("click",()=>{l.remove()})}_handleContactUsButton(e){let{window:t,document:i}=this;i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"contact"}),t.lpUI.showModal("modal-global-contact-us",{scrollLock:!0})}_trackConversion(e){let{window:t,document:i}=this,{gtagConversionId:s,gtagConversionLabel:r,fbEventName:a}=e.dataset;if(s&&r){t.dataLayer&&t.dataLayer.length&&(t.dataLayer.some(e=>e.length&&"config"===e[0]&&e[1]===s)||i.sendGoogleTagManagerEvent("config",s));let e=`${s}/${r}`;i.sendGoogleTagManagerEvent("event","conversion",{send_to:e})}t.fbq&&a&&t.fbq("track",a,{})}}(x,window,document),k=new class extends s{constructor(e,t,i){super(e,t,i),this.validatedForms=[]}initialize(e={}){try{let{window:t,document:i}=this,{selector:s}=e,r=[];if(r=s?i.querySelectorAll(`${s} form[data-type="contact-form"]`):i.querySelectorAll('form[data-type="contact-form"]'),i.querySelectorAll('input[type="tel"]').length&&!t.libphonenumber&&t?.luxuryPresence?.libs){let{loadJs:e,jsLibsMap:i}=t.luxuryPresence.libs,{libphonenumber:s}=i;e(s.jsSrc,this.attachValidation.bind(this,r))}else this.attachValidation(r);this.validatedForms=this.validatedForms.concat(r)}catch(e){console.log(e)}}destroy(){this.validatedForms=[]}attachValidation(e){e.forEach(e=>{e.querySelectorAll("input, select, textarea").forEach(e=>{this.applyFieldValidation(e)})})}applyFieldValidation(e){"tel"===e.getAttribute("type")&&this._applyPhoneValidation(e)}_applyPhoneValidation(e){let{window:t}=this;if(t.libphonenumber){let i=t.libphonenumber.isValidPhoneNumber;e.addEventListener("keyup",function(){if(this.hasAttribute("required")||this.value.replace(/\s/g,"").length)try{let e=this.value;i(e,"US")?this.setCustomValidity(""):this.setCustomValidity("Please enter a valid phone number.")}catch(e){this.setCustomValidity("Please enter a valid phone number.")}else this.setCustomValidity("")})}}}(x,window,document),M=new class extends s{constructor(e,t,i){super(e,t,i),this.forms=[],this.homeValuationService=new l(e,t,i)}initialize(e={}){try{let{document:t}=this,{selector:i}=e,s=[];(s=i?t.querySelectorAll(`${i} form[data-type="contact-form"]`):t.querySelectorAll('form[data-type="contact-form"]')).forEach(e=>{this._attachSubmitHandler(e)}),this.forms=this.forms.concat(s)}catch(e){console.log(e)}}destroy(){this.forms=[]}submitForm(e){this._handleSubmit(null,e).catch(e=>console.error(e))}_attachValidation(e){let{window:t}=this;e.querySelectorAll("input, select, textarea").forEach(e=>{t.luxuryPresence.validation.applyFieldValidation(e)})}_attachSubmitHandler(e){e.addEventListener("submit",t=>this._handleSubmit(t,e))}_extractFormValues(e){let t=new FormData(e),i={},s=[],r=/^name(?:-\d+)?$/;return t.forEach((e,t)=>{if("string"==typeof e){let a=e.trim();r.test(t)&&a&&s.push(a);let o=i[t];i[t]=o?`${o} ${a}`:a}else i[t]=e}),s.length?i.name=s.join(" ").trim():!i.name&&i.firstName&&(i.name=i.firstName,i.lastName&&(i.name+=` ${i.lastName}`)),this._deriveNameParts(i)}_deriveNameParts(e){if(e.firstName||!e.name)return e;let t=e.name.indexOf(" ");return -1===t?{...e,firstName:e.name}:{...e,firstName:e.name.slice(0,t),lastName:e.lastName||e.name.slice(t+1).trim()}}_buildSubmissionData(e,t,i){let{window:s,config:r}=this,a=Object.keys(e).filter(e=>!u.includes(e)).reduce((t,i)=>(t[i]=e[i],t),{}),{pageId:o,companyId:n,websiteId:l,pageMeta:d}=r,c=s.localStorage.getItem("utm_vars")||"{}",h=s.localStorage.getItem("referrer")||"",p=this._getFormId(i);return{activity:{author_email:e.email,author_name:e.name,firstName:e.firstName||void 0,lastName:e.lastName||void 0,author_phone:e.phone||e.phoneNumber,activity_source:e.source||"CONTACT_INQUIRY",comments_attributes:[{text:e.message||void 0}],source_url:s.location.href,content:{...a,...JSON.parse(c)}},page:{pageId:o,companyId:n,websiteId:l,pageMeta:{...d,formId:p}},companyId:n,referrer:h,fields:t}}_handleSubmissionSuccess(e){let{window:t}=this,i=e.dataset.delay||2e3;e.classList.remove("loading"),e.classList.remove("error"),e.classList.add("success"),e.querySelectorAll(".success").forEach(e
1878=>e.classList.remove("hide")),e.dispatchEvent(new Event("formsubmitted")),setTimeout(()=>{t.lpUI.hideClosestModal(e),e.reset(),t.lpUI.sideMenuHide(),e.querySelectorAll(".success").forEach(e=>e.classList.add("hide")),e.classList.remove("success")},i)}async _handleSubmit(e,t){if(e&&e.preventDefault(),!t.classList.contains("loading")){this._hideSubmissionError(t),t.classList.remove("error"),t.classList.add("loading");try{let e=this._extractFormValues(t);if(e.middleName)return void t.classList.remove("loading");let i=this._getFields(t),s=this._buildSubmissionData(e,i,t);a(this.window,this.document);let r=await this._waitForLeadSubmit(e=>this._submitLeadRequest(s,e));if(this._sendGAEvent(s),r?.redirected)return void this._showRedirectPending(t);this._handleSubmissionSuccess(t)}catch(e){console.error("Form submission failed:",e),t.dispatchEvent(new Event("formsubmiterror")),t.classList.remove("loading"),t.classList.add("error"),e.userMessage?this._showSubmissionError(t,e.userMessage):this._showSubmissionError(t,"Something went wrong. Please try again.")}}}async _waitForLeadSubmit(e){let t,i={expired:!1,expiresAt:Date.now()+6e3},s=new Promise(e=>{t=setTimeout(()=>{i.expired=!0,e(null)},6e3)}),r=e(i).catch(e=>{if(o(i))return null;throw e});try{return await Promise.race([r,s])}finally{clearTimeout(t)}}_showRedirectPending(e){if(e.classList.add(c),e.querySelector(`.${c}__indicator`))return;let t=this.document.createElement("div");t.className=`${c}__indicator`,t.setAttribute("role","status"),t.setAttribute("aria-label","Loading"),t.innerHTML='<span class="lp-i lp-i--spinner lp-i--pulse" aria-hidden="true"></span>',e.appendChild(t)}_aliasUserWithEventBus(e){try{if(!this.window.eventBusProvider?.alias||!this.window.eventBusProvider?.isIdentified||!this.window.eventBusProvider?.getDistinctId||!this.window.LuxuryPresenceEventBus?.generateUUIDv5FromCompanyEmail)return;if(this.window.eventBusProvider.isIdentified())return void console.log("[EventBus] User already identified, skipping alias");let t=e.activity?.author_email,{companyId:i}=this.config;if(!t||!i)return void console.warn("[EventBus] Missing required data for user alias");let s=this.window.eventBusProvider.getDistinctId();if(!s)return void console.warn("[EventBus] No anonymous ID available for alias");let r=this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(i,t);this.window.eventBusProvider.alias({anonId:s,canonicalId:r}),console.log("[EventBus] User aliased with canonical ID")}catch(e){console.error("[EventBus] User alias failed:",e)}}async _submitLeadRequest(e,t){let{config:i}=this;return(this._aliasUserWithEventBus(e),i.myhomeDashboardEnabled&&(e.activity?.activity_source==="HOME_VALUATION"||e.activity?.activity_source==="HOME_VALUE"))?this.homeValuationService._submitHomeValuationRequest({...e,deadline:t}):fetch(`${i.leadIngesterUrl}/api/v1/leads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw e}))}_sendGAEvent(e){let{document:t}=this,i={hitType:"event",eventCategory:"button",eventAction:"click"};switch(e.activity.activity_source){case"NEWSLETTER_SIGNUP":i.eventLabel="Newsletter",t.sendGoogleTagManagerEvent("event","newsletter_signup");break;case"HOME_SEARCH":i.eventLabel="HomeSearch",t.sendGoogleTagManagerEvent("event","home_search");break;case"HOME_VALUE":case"HOME_VALUATION":i.eventLabel="HomeValue",t.sendGoogleTagManagerEvent("event","home_valuation");break;case"EBOOK":i.eventLabel="Ebook",t.sendGoogleTagManagerEvent("event","ebook_download");break;default:i={hitType:"pageview",page:"/thank-you"},t.sendGoogleTagManagerEvent("event","contact_inquiry")}t.sendGoogleAnalyticsEvent(i)}_getFields(e){let t=e.querySelectorAll("input, select, textarea"),i={};return t.forEach(t=>{let{id:s,name:r,type:a}=t;if(r===d)return!0;let o="";if(s){let i=e.querySelector(`label[for='${s}']`);i?o=i.textContent.trim():t.placeholder&&(o=t.placeholder.trim())}i[r]={label:o,type:t.tagName,inputType:"INPUT"===t.tagName?a:"text"}}),i}_getFormId(e){let t=e.closest("section[id^='section-'], footer[id], .modal[id^='modal-']");return t?.id?this._cleanFormId(t.id):""}_cleanFormId(e){for(let t of["section-","modal-"])if(e.startsWith(t))return e.substring(t.length);return e}_showSubmissionError(e,t){let i=e.querySelector(".submission-error-message");i||((i=this.document.createElement("div")).className="submission-error-message",i.setAttribute("role","alert"),e.appendChild(i)),i.textContent=t||"Something went wrong. Please try again.",i.style.display="block"}_hideSubmissionError(e){let t=e.querySelector(".submission-error-message");t&&(t.style.display="none")}}(x,window,document),P=new class extends s{constructor(e,t,i){super(e,t,i),this.retries=3,this.callbacks=[],this.id=`__googleMapsScriptId${Date.now()}`,this._apiKey="",this.reset()}set apiKey(e){this._apiKey=e,this.config.setGoogleMapsAPIKey(e)}get apiKey(){return this._apiKey}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.failed=!1,this.errors=[],this.onerrorEvent=null}destroy(){this.reset()}async getMapApiKey(){if(this.apiKey)return this.apiKey;let e=this._hadPreviousFailure(),t=!1;for(let i=1;i<=3;i+=1){let s=e&&!t;try{let e=await fetch(this._getMapKeyUrl(i,s));if(t=t||s,this._setFailureFlag(!1),!e.ok)throw Error(`Failed to fetch API key: ${e.status}`);let r=await e.text();if(!r)return"";return this.apiKey=r,this.apiKey}catch(e){console.error(e),i<3&&await this._delay(300*2**(i-1))}}return this._setFailureFlag(!0),""}_getMapKeyUrl(e,t){let i=[];e>1&&i.push(`attempt=${e}`),t&&i.push("recovered_after_failure=1");let s=i.length?`?${i.join("&")}`:"";return`${this._getBaseUrl()}/api/v1/map${s}`}_hadPreviousFailure(){try{return"1"===this.window.sessionStorage.getItem(h)}catch(e){return!1}}_setFailureFlag(e){try{e?this.window.sessionStorage.setItem(h,"1"):this.window.sessionStorage.removeItem(h)}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");
1878let t="https://maps.googleapis.com/maps/api/js";return t+`?callback=__googleMapsCallback&key=${e}&libraries=places`}async setScript(){let e;if(this.document.getElementById(this.id))return void this.callback();try{e=await this.createUrl()}catch(e){console.error(e),this.failed=!0,this.loading=!1,this.onerrorEvent=e,this.callback();return}let t=this.document.createElement("script");t.id=this.id,t.type="text/javascript",t.src=e,t.onerror=this.loadErrorCallback.bind(this),t.defer=!0,t.async=!0,this.document.head.appendChild(t)}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){let e=this.errors.length*2**this.errors.length;console.log(`Failed to load Google Maps script, retrying in ${e} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript().catch(e=>console.error(e))},e)}else this.failed=!0,this.onerrorEvent=e,this.callback()}deleteScript(){let e=this.document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(i=>{i?t(i):e()})})}loadCallback(e){this.callbacks.push(e),this.execute()}setCallback(){this.window.__googleMapsCallback=this.callback.bind(this)}resetIfRetryingFailed(){this.failed&&this.reset()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(e=>{e(this.onerrorEvent)}),this.callbacks=[]}execute(){this.window.google&&this.window.google.maps&&this.window.google.maps.version&&this.callback(),this.resetIfRetryingFailed(),this.done?this.callback():this.loading||(this.loading=!0,this.setCallback(),this.setScript().catch(e=>console.error(e)))}_getBaseUrl(){let{isBuilder:e,websiteApiGatewayUrl:t}=this.config;return e?t:""}resizeStaticMapDimensions(e,t){if(e<=1024&&t<=1024)return{width:e,height:t};let i=Math.min(1024/e,1024/t);return{width:parseInt(e*i),height:parseInt(t*i)}}convertThemeToStaticApiUrl(e){return e.map(e=>{let t=e.stylers.reduce((e,t)=>{let i=t.visibility?`visibility:${t.visibility}`:"",s=t.color?`color:${t.color.replace("#","0x")}`:"",r=t.lightness?`lightness:${t.lightness}`:"";return`${e}|${i}${s}${r}`},""),i=e.elementType?`|element:${e.elementType}`:"";return`feature:${e.featureType}${i}${t}`})}async getMapApiSignedUrl(e){try{let t=await fetch(`${this._getBaseUrl()}/api/v1/map/signature?${e}`);if(!t.ok)throw Error("Failed to fetch signed URL");let{url:i}=await t.json();return i}catch(e){return console.error(e),""}}generateStaticMapUrl(e,t,i,s,r,a){let{width:o,height:n}=this.resizeStaticMapDimensions(r,a),l={center:`${e},${t}`,zoom:i,scale:2,size:`${o}x${n}`,key:this.apiKey};s&&(l.style=this.convertThemeToStaticApiUrl(s));let d=new URLSearchParams;return Object.entries(l).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>d.append(e,t.toString())):d.append(e,t.toString())}),`https://maps.googleapis.com/maps/api/staticmap?${d.toString()}`}async generateDigitallySignedStaticMapUrl({srcWidth:e,srcHeight:t,theme:i,...s}){let{width:r,height:a}=this.resizeStaticMapDimensions(e,t),o={...s,size:`${r}x${a}`};i&&(o.style=this.convertThemeToStaticApiUrl(i));let n=new URLSearchParams;Object.entries(o).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>n.append(e,t.toString())):n.append(e,t.toString())});let l=n.toString();try{return await this.getMapApiSignedUrl(l)}catch(e){return console.error(e),""}}}(x,window,document),U=new class extends s{destroy(){}updateQueryString(e,t,i){i||(i=this.window.location.href);let s=RegExp(`([?&])${e}=.*?(&|#|$)`,"i"),r="";null!=t&&(Array.isArray(t)?t.length&&(r=this.serializeArray(e,t)):"object"==typeof t?(s=RegExp(`([?&])${e}\\[[^=]*\\]=.*?(&|#|$)`,"i"),r=this.serializeObj(t,"",e)):r=`${e}=${encodeURIComponent(t)}`);let a=i.split("#"),o=a[0];if(s.test(i)){let e=o;for(r=r?`$1${r}$2`:"$1";s.test(e);)o=e.replace(s,r),e=e.replace(s,"$1");o=o.replace(/(&|\?)$/,"")}else if(r){let e=-1!==o.indexOf("?")?"&":"?";o+=`${e}${r}`}return void 0!==a[1]&&null!==a[1]&&(o+=`#${a[1]}`),o}getParameterByName(e,t){t||(t=this.window.location.href),e=e.replace(/[[\]]/g,"\\$&");let i=RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`),s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat();if(!s.length){let i=RegExp(`[?&]${e}(\\[.*?\\])=(.*?)(?=&|#|$)`,"g");return s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat(),this._parseParamToObject(s,"advancedFilters"===e)}return s.length>3?s.reduce((e,t,i)=>((i+1)%3==0&&e.push(decodeURIComponent(t.replace(/\+/g," "))),e),[]):s[2]?decode
1878URIComponent(s[2].replace(/\+/g," ")):""}makePageKey(e){return e.replace("section-","").replace(/-/g,"")}makeParamKey(e,t){return e.global?e.urlKey:`${t}-${e.urlKey}`}deserializeParams(e,t){let i={},s=this.makePageKey(t),r=this.getParameterByName(s);return r&&(i.page=parseInt(r)),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,s),r=this.getParameterByName(t);if("int"===e.type)isFinite(r=parseInt(r))||(r=null);else if("bool"===e.type||"boolean"===e.type)r="true"===r||"false"!==r&&null;else if("json"===e.type)try{r=JSON.parse(r)}catch(e){}i[e.formKey||e.param]=r}),i}serializeParams(e,t,i){let s=this.window.location.href,r=this.makePageKey(t);return s=this.updateQueryString(r,i.page,s),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,r),a=i[e.formKey||e.param];"json"===e.type&&null!=a&&(a=JSON.stringify(a)),s=this.updateQueryString(t,a,s)}),s}formatSliderAtom(e,t=""){return t+(Number.isInteger(e)?e:e.toFixed(2))}formatSliderValue(e,t="",i=""){return e<1e3?this.formatSliderAtom(e,t):e<1e6?`${this.formatSliderAtom(e/1e3,t)}${i}K`:`${this.formatSliderAtom(e/1e6,t)}${i}M`}formatSliderPriceRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e,i," ")}`:t.max===e?`${this.formatSliderValue(e,i," ")}${s.highSuffix}`:`${this.formatSliderValue(e,i," ")}`}formatSliderAreaRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e)} ${i}`:t.max===e?`${this.formatSliderValue(e)}${s.highSuffix} ${i}`:`${this.formatSliderValue(e)} ${i}`}getSearchFormValues(e){let{queryElement:t,priceSliderElement:i,areaSliderElement:s,neighborhoodSelect:r}=e,a={};if(t&&(a.search=t.value||null),i){let e=i.value.split(";"),t=parseInt(i.dataset.min),s=parseInt(i.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.priceMin=r!==t?r:null,a.priceMax=o!==s?o:null}if(s){let e=s.value.split(";"),t=parseInt(s.dataset.min),i=parseInt(s.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.areaMin=r!==t?r:null,a.areaMax=o!==i?o:null}return r&&(a.neighborhoodId=r.value||null),a}serializeObj(e,t="",i=""){let s=[];for(let r in e)if(e.hasOwnProperty(r)){let a,o=e[r];if(i){let e=t?`[${t}][${r}]`:`[${r}]`;a=`${i}${e}`}else a=t?`${t}[${r}]`:r;null!==o&&Array.isArray(o)?o.length&&s.push(this.serializeArray(a,o)):null!==o&&"object"==typeof o?s.push(this.serializeObj(o,a)):s.push(`${a}=${encodeURIComponent(o)}`)}return s.join("&")}serializeArray(e,t,i=""){let s=[];return t.forEach(t=>{let r=i?`${i}${e}`:e;s.push(`${r}=${encodeURIComponent(t)}`)}),s.join("&")}_parseParamToObject(e,t=!1){if(!e.length)return null;let i={};for(let s=0;s<e.length;s++)if((s+1)%3==0){let r=decodeURIComponent(e[s].replace(/\+/g," ")),a=e[s-1];Object.assign(i,this._setObjectPath(a,r,i,t))}return i}_setObjectPath(e,t,i,s=!1){let r=e.split(/[\[\]]/).filter(Boolean),a=["in","nin","btw","ciin","cinin"],o={},n=o,l=((e,t,i)=>{if(!t)return;let s=(Array.isArray(t)?t:t.match(/([^[.\]])+/g)).reduce((e,t)=>e&&e[t],e);return void 0===s?i:s})(i,r.join("."));return r.forEach((e,o)=>{o===r.length-1?l?n[e]=Array.isArray(l)?[...l,t]:[l,t]:n[e]=s&&a.includes(e)?[t]:t:(n[e]=i[e]?i[e]:{},n=n[e])}),o}}(x,window,document),N=new class extends s{constructor(e,t,i){super(e,t,i),this._createLightbox=this._createLightbox.bind(this),this.expandSliders=[]}initialize(e={}){try{let{document:e}=this,t=e.querySelectorAll(".has-mobile-expand");t.forEach(e=>{this._addExpandButton(e)}),this.expandSliders=this.expandSliders.concat(t)}catch(e){console.log(e)}}destroy(){let{document:e}=this;e.querySelectorAll(".lp-expand-btn, .lp-expand-btn-wrapper").forEach(e=>e.remove()),this.expandSliders=[]}_addExpandButton(e){let{document:t}=this,i=e.closest("section[id]"),s=e.dataset.append,r=i.querySelector(".lp-expand-btn");if(!r)if((r=t.createElement("button")).className="lp-expand-btn",r.setAttribute("aria-label","Open a lightbox"),r.innerHTML='<span class="lp-i lp-i--expand-alt" aria-hidden="true"></span>',s){let e=i.querySelector(s);e&&e.appendChild(r)}else{let i=t.createElement("div");i.className="lp-expand-btn-wrapper",i.style.position="relative",i.appendChild(r),e.parentNode.insertBefore(i,e.nextSibling)}r.addEventListener("click",()=>{this._createLightbox({slider:e,section:i})})}_createLightbox({slider:e,section:t,initialIndex:i}){let{window:s,document:r}=this,a=`lightbox-for-${t?.id}`,o=s.$&&s.$.fn.slick,n=o&&e.slick,l="function"==typeof s.Splide,d=e.classList.contains("is-initialized")&&e.classList.contains("splide");function c(){let t=r.createElement("div");t.id=a,t.className="lp-lightbox",t.setAttribute("tabindex","-1"),t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.innerHTML=`
1879      <button class="lp-lightbox__close" aria-label="close modal"></button>
1880      <div class="lp-lightbox__content">
1881        <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery">
1882          <div class="splide__arrows">
1883            <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button>
1884            <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button>
1885          </div>
1886          <div class="splide__track">
1887            <ul class="splide__list"></ul>
1888          </div>
1889        </div>
1890      </div>
1891    `,"function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",r.body.appendChild(t);let o=t.querySelector(".lp-lightbox__carousel"),n=o.querySelector(".splide__list");t.classList.add("show"),(d?e.querySelectorAll(".splide__slide:not(.splide__slide--clone) img"):e.querySelectorAll("img")).forEac
1891h(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("li");i.className="lp-lightbox__slide splide__slide",i.appendChild(t),n.appendChild(i)});let l=new s.Splide(o,{rewind:!0,arrows:!0,arrowPath:"",type:"loop",clones:1,pagination:!1,perPage:1,perMove:1});l.mount(),void 0!==i&&i>=0&&l.go(i),setTimeout(()=>{t.focus()},100);let c=e=>{if(!t.classList.contains("show"))return;let i=t.querySelector(".splide__arrow--prev"),s=t.querySelector(".splide__arrow--next"),r=t.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&i?(e.preventDefault(),i.click()):"ArrowRight"===e.key&&s?(e.preventDefault(),s.click()):"Escape"===e.key&&r&&(e.preventDefault(),r.click())};r.addEventListener("keydown",c),t.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",c),t.classList.remove("show"),l&&l.destroy(),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",t.remove()})}if("function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",o&&!d){let t,i,o,l,d;i={arrows:!0,dots:!1,infinite:!0,draggable:!0,prevArrow:'<button type="button" class="lp-lightbox-arrow--prev lp-lightbox-arrow" aria-label="Previous"></button>',nextArrow:'<button type="button" class="lp-lightbox-arrow--next lp-lightbox-arrow" aria-label="Next"></button>'},(o=r.createElement("div")).id=a,o.className="lp-lightbox",o.setAttribute("tabindex","-1"),o.setAttribute("role","dialog"),o.setAttribute("aria-modal","true"),o.innerHTML=`
1892        <button class="lp-lightbox__close" aria-label="close modal"></button>
1893        <div class="lp-lightbox__content">
1894          <div class="lp-lightbox__carousel"></div>
1895        </div>
1896      `,r.body.appendChild(o),l=o.querySelector(".lp-lightbox__carousel"),o.classList.add("show"),n?(t=e.slick.$slides.find("img"),i.initialSlide=e.slick?.currentSlide||0,t.each(function(){s.$(".lp-lightbox__carousel").append(s.$(this).clone(!1).removeAttr("style").wrap('<div class="lp-lightbox__slide"></div>').parent())})):(t=e.querySelectorAll("img")).forEach(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("div");i.className="lp-lightbox__slide",i.appendChild(t),l.appendChild(i)}),s.$(l).slick(i),setTimeout(()=>{o.focus()},100),d=e=>{if(!o.classList.contains("show"))return;let t=o.querySelector(".lp-lightbox-arrow--prev"),i=o.querySelector(".lp-lightbox-arrow--next"),s=o.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&t?(e.preventDefault(),t.click()):"ArrowRight"===e.key&&i?(e.preventDefault(),i.click()):"Escape"===e.key&&s&&(e.preventDefault(),s.click())},r.addEventListener("keydown",d),o.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",d),o.classList.remove("show");let t=l?.slick?s.$(l).slick("slickCurrentSlide"):0;l?.slick&&s.$(l).slick("unslick"),n&&s.$(e).slick("slickGoTo",t),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",o.remove()})}else l?c():(s.luxuryPresence.libs.loadCss(s.luxuryPresence.libs.jsLibsMap.splide.cssSrc),s.luxuryPresence.libs.loadJs(s.luxuryPresence.libs.jsLibsMap.splide.jsSrc,()=>{c(),s.luxuryPresence.libs.jsLibsMap.splide.isLoaded=!0}))}}(x,window,document),R=new class extends s{destroy(){this.window.divolte||(this.window.divolteLp=function(){(this.window.divolteLp.q=this.window.divolteLp.q||[]).push(arguments)})}initialize(e={}){let{divolteServiceUrl:t}=this.config;t&&!this.window.divolte&&this.loadScript()}loadScript(){let{divolteServiceUrl:e}=this.config,t=this.document.createElement("script");t.id="divolte-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/divolte.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){(this.window.divolteLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.divolteLp=this.divolteLp.bind(this)}divolteLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpEvent(e,t){if(!e.includes("pageView"))return void console.log(`${e} IS NOT SUPPORTED`);let{companyId:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n}=this.config;this.window.divolte.signal(e,Object.assign({companyId:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n},t))}sendLpPageView(){this.sendLpEvent("pageView",{})}}(x,window,document),B=new class extends s{constructor(e,t,i){super(e,t,i)}initialize(e={}){(void 0!==e.enabled?e.enabled:this.config.eventBus?.enabled)&&this.config.eventBus?.apiKey&&this.config.eventBus?.url&&this.loadScript()}loadScript(){let{eventBusUrl:e}=this.config,t=this.document.createElement("script");t.id="posthog-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/v2.8.0/event-bus-js.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){this.window.LuxuryPresenceEventBus&&(this.window.eventBusProvider=this.window.LuxuryPresenceEventBus.createEventBusProvider({apiKey:this.config.eventBus.apiKey,host:this.config.eventBus.url,defaultSource:"frontend://website-render-engine"}
1896)),(this.window.eventBusLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.eventBusLp=this.eventBusLp.bind(this)}destroy(){if(!this.window.eventBusProvider){this.window.eventBusLp=function(){(this.window.eventBusLp.q=this.window.eventBusLp.q||[]).push(arguments)};return}this.window.eventBusProvider.shutdown()}sendLpEvent(e,t){if("user.activity.page.viewed"!==e)return void console.log(`${e} IS NOT SUPPORTED`);if(!this.window.eventBusProvider)return;let{companyId:i}=this.config;try{this.window.eventBusProvider.capture(e,{company:i,data:{}})}catch(e){console.log("EventBus capture error:",e)}}eventBusLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpPageView(){this.sendLpEvent("user.activity.page.viewed",{})}}(x,window,document),D=new class extends s{constructor(e,t,i){super(e,t,i),this.successListeners=[],this._listenToMessages=this._listenToMessages.bind(this),this._listenToOneTapMessage=this._listenToOneTapMessage.bind(this)}initialize(e={}){try{e.googleSignOnEnabled&&!e.iframe&&this._renderGoogleOneTap(),this.document.querySelectorAll('div[data-signin-type="google-sign-in"]').forEach(e=>this._convertGoogleSignIn(e)),this.document.querySelectorAll('div[data-signin-type="facebook-sign-in"]').forEach(e=>this._convertFacebookSignIn(e))}catch(e){console.log(e)}}destroy(){this.successListeners.forEach(e=>{this.window.removeEventListener("message",this._listenToMessages),this.window.removeEventListener("message",this._listenToOneTapMessage),this.window.removeEventListener(p,this.window[e])})}_renderGoogleOneTap(){if(!this._isGoogleOneTapOnCooldown()){let e=this.document.createElement("div");google.accounts.id.initializeIntermediate({src:this._buildUrlAndCopyAttributes(e,e,"googleOneTap")}),this.window.localStorage.removeItem("googleOneTapExpiration"),this.window.addEventListener("message",this._listenToOneTapMessage)}}_listenToOneTapMessage(e){let t="show_intermediate_iframe",{buyerSellerServiceUrl:i}=this.config,{data:s,origin:r}=e,{type:a,height:o,event:n,source:l,token:d}=s;if(a===t||"hide_intermediate_iframe"===a){let e=this.document.getElementById("onetap_google_intermediate_iframe");e&&(e.style.height=o,e.style.display=a===t?"unset":"none")}r===i&&"GOOGLE_SIGN_ON"===l&&("success"===n?(this._setExpirationLsItem(864e5),this._handleQualifyingQuestionsModal(d)):"cancel"===n&&this._setExpirationLsItem(72e5))}_setExpirationLsItem(e){let t=new Date().getTime()+e;this.window.localStorage.setItem("googleOneTapExpiration",t)}_isGoogleOneTapOnCooldown(){return Number(this.window.localStorage.getItem("googleOneTapExpiration"))>new Date().getTime()}_convertGoogleSignIn(e){this._replaceWithIframe("googleSignIn",e)}_convertFacebookSignIn(e){this._replaceWithIframe("facebookSignIn",e)}_replaceWithIframe(e,t){this._attachSuccessCallback(t);let i=this.document.createElement("iframe");i.src=this._buildUrlAndCopyAttributes(t,i,e),i.dataset.isSocialOauthButton=!0,t.replaceWith(i)}_listenToMessages(e){let{buyerSellerServiceUrl:t}=this.config;if(e.origin===t&&"success"===e.data.event){let e=new Event(p);this.window.dispatchEvent(e),a(this.window,this.document),this.successListeners.forEach(t=>{this.window[t]?this.window[t](e):console.error(`Callback function ${t} not found on window object`)}),this.document.documentElement.classList.add("is-login-success")}}_attachSuccessCallback(e){this.window.addEventListener("message",this._listenToMessages);let t=e.dataset.onSuccessFunctionName;t&&this.successListeners.push(t)}_buildUrlAndCopyAttributes(e,t,i){let{buyerSellerServiceUrl:s,companyId:r,websiteId:a,pageId:o,pageMeta:n}=this.config,{location:l}=this.window,d=l.origin+l.pathname,c=new URL(`${s}/buttons/${i}`),u=this.window.localStorage.getItem("utm_vars"),h=this.window.localStorage.getItem("referrer");c.searchParams.append("companyId",r),c.searchParams.append("websiteId",a),c.searchParams.append("pageId",o),c.searchParams.append("sourceUrl",d),c.searchParams.append("pageMeta",JSON.stringify(n)),u&&c.searchParams.append("utm",u),h&&c.searchParams.append("referrer",h);let p=["data-size","data-width","data-text","data-button-type","data-shape","data-layout","data-max-rows","data-use-continue-as","data-type","data-theme","data-logo_alignment","data-locale"];
1896return Array.from(e.attributes).forEach(e=>{p.includes(e.nodeName)?c.searchParams.append(e.nodeName,e.nodeValue):t.setAttribute("id"===e.nodeName?"data-id":e.nodeName,e.nodeValue)}),c.toString()}_decodeToken(e){try{let t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),i=4-t.length%4,s=4===i?t:t+"=".repeat(i);return JSON.parse(atob(s))}catch(e){return null}}_handleQualifyingQuestionsModal(e){if(e&&this.window.luxuryPresence&&this.window.luxuryPresence.qualifyingQuestionsModal){let t=this._decodeToken(e);t&&t.email&&this.window.luxuryPresence.qualifyingQuestionsModal.showModal(t.email,"Google Sign On")}}}(x,window,document),O=new class extends s{constructor(e,t,i){super(e,t,i),this.showModal=this.showModal.bind(this),this.hasModalBeenSubmitted=this.hasModalBeenSubmitted.bind(this),this.modalId="qualifying-questions-modal",this.cookieKey="qualifyingQuestionsModalSubmitted",this.qualifyingQuestionsModalEnabled=!0,this.eventListeners=[],this.timeouts=[]}initialize(e={}){this.qualifyingQuestionsModalEnabled=e.qualifyingQuestionsModalEnabled??this.qualifyingQuestionsModalEnabled,this.qualifyingQuestionsModalEnabled&&this.attachModalCloseListeners()}destroy(){this.eventListeners.forEach(({element:e,event:t,handler:i})=>{e&&e.removeEventListener&&e.removeEventListener(t,i)}),this.timeouts.forEach(e=>{clearTimeout(e)}),this.restoreBodyScroll(),this.eventListeners=[],this.timeouts=[]}hasModalBeenSubmitted(){return"true"===this.getCookie(this.cookieKey)}setModalSubmittedCookie(){this.setCookie(this.cookieKey,"true",365)}showModal(e,t){!this.qualifyingQuestionsModalEnabled||this.hasModalBeenSubmitted()||(this.updateEmailValue(e),this.updateTriggerSourceValue(t),this.showModalElement())}getModalElement(){let e=this.document.getElementById(this.modalId);return e||console.error("Modal element not found:",this.modalId),e}updateEmailValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector('input[name="email"]');i&&"string"==typeof e&&(i.value=e)}updateTriggerSourceValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector(`#${this.modalId}-triggerSource`);i&&"string"==typeof e&&(i.value=e)}showModalElement(){let e=this.getModalElement();e&&(e.style.display="flex",this.blockBodyScroll())}getCookie(e){let t=`; ${this.document.cookie}`.split(`; ${e}=`);return 2===t.length?decodeURIComponent(t.pop().split(";").shift()):null}setCookie(e,t,i){let s="";if(i){let e=new Date;e.setTime(e.getTime()+864e5*i),s=`; expires=${e.toUTCString()}`}let r="; path=/; SameSite=Lax";this.window&&this.window.location&&"https:"===this.window.location.protocol&&(r+="; Secure"),this.document.cookie=`${e}=${encodeURIComponent(t||"")}${s}${r}`}blockBodyScroll(){this._prevOverflow=this.document.body.style.overflow,this.document.body.style.overflow="hidden"}restoreBodyScroll(){this.document.body.style.overflow=this._prevOverflow||"",this._prevOverflow=null}attachModalCloseListeners(){let e=this.getModalElement();if(!e)return;let t=this.document.getElementById(`${this.modalId}-form`);if(t){let i=()=>{this.setModalSubmittedCookie();let t=setTimeout(()=>{e.style.display="none",this.restoreBodyScroll()},100);this.timeouts.push(t)};t.addEventListener("formsubmitted",i),this.eventListeners.push({element:t,event:"formsubmitted",handler:i})}let i=e.querySelector('[data-dismiss="modal"]');if(i){let t=()=>{e.style.display="none",this.restoreBodyScroll()};i.addEventListener("click",t),this.eventListeners.push({element:i,event:"click",handler:t})}let s=t=>{(t.target===e||t.target.id===this.modalId)&&(e.style.display="none",this.restoreBodyScroll())};e.addEventListener("click",s),this.eventListeners.push({element:e,event:"click",handler:s})}}(x,window,document),q=new class extends s{constructor(e,t,i){super(e,t,i),this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null,this.validationCacheDuration=3e5}destroy(){this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null}async validateSession(e={}){let{useCache:t=!0}=e;if(t&&null!==this.lastValidationResult&&this.lastValidationTime&&Date.now()-this.lastValidationTime<this.validationCacheDuration)return this.lastValidationResult;if(this.isValidating)return null!==this.lastValidationResult&&this.lastValidationResult;this.isValidating=!0;let i=`
1897      query {
1898        validSession {
1899          success
1900        }
1901      }
1902    `;try{let e=await this.window.fetch("/graphql",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({query:i})});if(!e.ok)return console.error("SessionController: HTTP error during session validation",e.status),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let t=await e.json();if(t.errors)return this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let s=t.data?.validSession?.success===!0;return this.lastValidationResult=s,this.lastValidationTime=Date.now(),s}catch(e){return console.error("SessionController: Error validating session",e),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1}finally{this.isValidating=!1}}clearCache(){this.lastValidationResult=null,this.lastValidationTime=null}}(x,window,document),V=new class extends s{constructor(e,t,i){super(e,t,i),this.consentListener=null,this.eventName=null}destroy(){this.consentListener&&this.eventName&&(this.document.removeEventListener(this.eventName,this.consentListener),this.consentListener=null)}loadScript(){this.document.getElementById("posthog-script")||this.window.luxuryPresence.eventBus.initialize({enabled:this.config.eventBus?.enabled}),this.document.getElementById("divolte-script")||this.window.luxuryPresence.divolte.initialize({})}removeScripts(){this.window.luxuryPresence?.eventBus?.destroy?.(),this.window.luxuryPresence?.divolte?.destroy?.(),this.document.getElementById("posthog-script")?.remove(),this.document.getElementById("divolte-script")?.remove()}async initialize(e={}){let t=m[e.provider];if(!t)return;this.eventName=t.eventName;let i=await this.window.luxuryPresence.session.validateSession();(t.hasAnalyticsConsent(this.document,this.window)||i)&&this.loadScript(),this.consentListener||(this.consentListener=e=>{t.isAnalyticsAccepted(e.detail)?this.loadScript():this.removeScripts()},this.document.addEventListener(t.eventName,this.consentListener))}}(x,window,document),F=new class extends s{destroy(){}transformVariables(e,t){let i;return y(i={...t},["testimonialId"]),f(i,["testimonialId"],"testimonialIds"),0===i.limit&&delete i.limit,(void 0===i.limit||null===i.limit)&&(("testimonials"===e||"testimonialsCount"===e)&&(i.limit=50),("agents"===e||"agentsCount"===e||"developments"===e||"developmentsCount"===e||"neighborhoods"===e||"neighborhoodsCount"===e||"posts"===e||"postsCount"===e||"pressReleases"===e||"pressReleasesCount"===e)&&(i.limit=100)),!function(e){let{sortDir:t}=e;"string"==typeof t&&t.includes("_")&&(e.sortDir=t.replace(/_/g," "))}(i),!function(e,t){switch(t){case"agent":break;case"testimonials":case"testimonialsCount":y(e,["testimonialIds"]);break;case"agents":case"agentsCount":y(e,["officeId","teamId","developmentId","agentIds","tags"]),f(e,["officeId"],"officeIds"),f(e,["teamId"],"teamIds"),f(e,["developmentId"],"developmentIds");break;case"neighborhoods":case"neighborhoodsCount":y(e,["neighborhoodIds","neighborhoodId"]),f(e,["neighborhoodIds","neighborhoodId"],"neighborhoodId");break;case"developments":case"developmentsCount":y(e,["agentId","neighborhoodIds","neighborhoodId","developmentIds","tag"]),e.agentId&&Array.isArray(e.agentId)&&([e.agentId]=e.agentId),f(e,["neighborhoodIds","neighborhoodId"],"neighborhoodIds");break;case"properties":case"propertiesCount":y(e,["statusIds","statusId","propertyTypeIds","propertyTypeId","propertyId","networkId","propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","
1902spaceTypeIds","addressState","addressCity","backfillProviders","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"]),["propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","spaceTypeIds","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"].forEach(t=>f(e,[t],t)),f(e,["statusIds","statusId"],"propertyStatusId"),e.excludeStatusId&&(e.excludePropertyStatusId=e.excludeStatusId,delete e.excludeStatusId),f(e,["propertyTypeIds","propertyTypeId"],"propertyTypeId"),f(e,["networkId"],"networkId"),f(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":y(e,["categoryIds","categoryId","neighborhoodId"]),void 0!==e.order&&(e.sort=e.order,delete e.order),f(e,["categoryIds","categoryId"],"categoryId");break;case"postCategories":y(e,["categoryId","categoryIds"]),void 0!==e.order&&(e.sort=e.order,delete e.order),f(e,["categoryIds","categoryId"],"categoryId");break;case"pressReleases":case"pressReleasesCount":y(e,["pressReleaseId","categories","propertyId","developmentId","agentId","teamId"]),f(e,["pressReleaseId"],"pressReleaseIds");break;case"offices":case"officesCount":y(e,["officeId","officeIds","tags"]),f(e,["officeId"],"officeIds");break;case"teams":case"teamsCount":y(e,["teamId","teamIds"]),f(e,["teamId"],"teamIds");break;case"pois":y(e,["categories"]),Array.isArray(e.categories)&&(e.categories=e.categories.map(e=>e.toLowerCase())),"string"==typeof e.sortBy&&(e.sortBy=e.sortBy.toLowerCase())}}(i,e),i}transformResponse(e,t){return"agent"===e?I(t,v):"agents"===e||"agentsCount"===e?A(t,w):"neighborhood"===e?I(t,b):"neighborhoods"===e||"neighborhoodsCount"===e?A(t,S):"development"===e?I(t,_):"developments"===e||"developmentsCount"===e?A(t,E):t}transformPage(e){return{items:e&&e.items||[],count:e&&e.total||0}}applyPropertyDisclaimers(t,i){if(!Array.isArray(t)||!t.length||!i||!i.length)return Promise.resolve(t);let s=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})),r=e=>{let s={};return(e||[]).forEach(e=>{s[`${e.feedId}:${e.listingId}`]=e}),t.map(e=>{let t=e&&s[`${e.vendorId}:${e.mlsId}`],r={};return i.forEach(e=>{let i=t?t[$[e]]:void 0;r[e]=i??null}),{...e,...r}})};if(!s.length)return Promise.resolve(r([]));let{websiteId:a}=this.config;return this.window.superagent?this.window.superagent.post(`${this.window.luxuryPresence.defaults.routerUrl}/graphql`).withCredentials().send({query:e(L),variables:{input:{websiteId:"string"==typeof a?a:void 0,properties:s}}}).then(e=>r(e.body&&e.body.data&&e.body.data.propertyDisclaimers),e=>(console.warn("[RouterApiController] propertyDisclaimers lookup failed:",e),r([]))):Promise.resolve(r([]))}}(x,window,document);function j(e,t){if(window.luxuryPresence[e])try{window.luxuryPresence[e].destroy()}catch(e){console.log(e)}window.luxuryPresence[e]=t}j("config",x),j("modals",T),j("buttons",C),j("validation",k),j("contactForms",M),j("mapApiLoader",P),j("pagination",U),j("expandSliders",N),j("divolte",R),j("eventBus",B),j("oauth",D),j("qualifyingQuestionsModal",O),j("session",q),j("consent",V),j("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(){}}),j("routerApi",F),window.luxuryPresence.formatSliderPriceRange=U.formatSliderPriceRange.bind(U),window.luxuryPresence.formatSliderAreaRange=U.formatSliderAreaRange.bind(U),window.luxuryPresence.getSearchFormValues=U.getSearchFormValues.bind(U),window.luxuryPresence.handlebarsHelpersFactory=function(i){return e(t)(i,{isEqual:(e,t)=>e==t})}})();
1903//# sourceMappingURL=lp-sdk.js.map
1904
1905    </script>
1905
1906
1907    
1907<script>
1908        var lpGlobalInitialized = false;
1909
1910        function lpGlobalInit () {
1911          if (lpGlobalInitialized) {
1912            return;
1913          }
1914            lpGlobalInitialized = true;
1915            // Initialize wow animation plugin only according to turbolinks
1916            var wow;
1917            if (window.WOW) {
1918                wow = new WOW({
1919                    animateClass: 'animated',
1920                    offset: wowOffset,
1921                    live: false,
1922                    callback: function(box) {}
1923                });
1924            }
1925            // Initialize handlebar helpers only once
1926            function handlebarsInit() {
1927              if (!window.Handlebars) {
1928                return;
1929              }
1930              HandlebarsIntl.registerWith(Handlebars);
1931              Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars));
1932            }
1933
1934            handlebarsInit();
1935
1936              var modalContentUrl = "/modals.html";
1937                const modalsContainer = document.getElementById('modals');
1938                if (modalsContainer) {
1939                  fetch(modalContentUrl).then(function(res) {
1940                    if (!res.ok) {
1941                      throw new Error(`HTTP error! Status: ${res.status}`);
1942                    }
1943                    return res.text();
1944                  }).then(function(resultText) {
1945                    modalsContainer.innerHTML = resultText;
1946
1947                    // now we need to execute all script elements
1948                    Array.from(modalsContainer.getElementsByTagName('script')).forEach(function (s) {
1949                      const script  = document.createElement("script");
1950                      script.text = s.innerHTML;
1951                      Array.from(s.attributes).forEach(function (a) {
1952                        script.setAttribute(a.name, a.value);
1953                      })
1954                      s.parentNode.replaceChild(script, s);
1955                    });
1956
1957                    try {
1958                      window.luxuryPresence.modals.initialize(window.luxuryPresence._modalIncludes);
1959                      window.luxuryPresence.contactForms.initialize({ selector: '#modals' });
1960                      window.luxuryPresence.validation.initialize({ selector: '#modals' });
1961                      window.luxuryPresence.oauth.initialize({
1962                        googleSignOnEnabled: true,
1963                        iframe: false });
1964                    } catch (e) {
1965                      console.log(e);
1966                    }
1967                    document.querySelectorAll('.modals > .modal .close').forEach(closeModalBtn => {
1968                      closeModalBtn.addEventListener('click', function() {
1969                        window.lpUI.hideClosestModal(closeModalBtn);
1970                      });
1971                    });
1972                  }).catch((e) => console.log(e));
1973                }
1974            /* Initialize Luxury Presence SDK */
1975            try {
1976                window.luxuryPresence.config.setCompany("850552e9-2cd2-407f-a7ee-18f5819cdb5f", {});
1977                window.luxuryPresence.config.setWebsite("5c8ab3ef-2f1d-45fe-9125-fcc3c56486bf", {
1978                    myhomeDashboardEnabled: true,
1979                    mlsEnabled: false,
1980                    hstValuationRedirectEnabled: true,
1981                    hvStepTwoCaptureEnabled: false
1982                });
1983                const url = new URL(window.location.href);
1984                const shareId = url.searchParams.get('shareId');
1985                window.luxuryPresence.config.setPage("fb7d1b7d-f61c-4fb1-90be-1833b9fed64b", {
1986                    sourceResource: "",
1987                    pageElementId: "",
1988                    pageQueryVariables: {},
1989                    shareId: "",
1990                });
1991                window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {});
1992                window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {});
1993                    window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {});
1994                  window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {});
1995                  window.luxuryPresence.config.setEventBus({
1996                    enabled: true,
1997                    apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr",
1998                    url: "https://p.luxurypresence.com",
1999                  });
2000                window.luxuryPresence.config.setTemplateId("0c2b9641-6f2a-40f2-a2e0-dabc022eb278", {});
2001                window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {});
2002                window.luxuryPresence.buttons.initialize({});
2003                    window.luxuryPresence.consent.initialize({ provider: 'lp-consent' });
2004                window.luxuryPresence.contactForms.initialize({});
2005                window.luxuryPresence.validation.initialize({});
2006                window.luxuryPresence.expandSliders.initialize({});
2007                window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false });
2008                window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true });
2009            } catch (e) {
2010                console.log(e);
2011            }
2012
2013            /* Inject Section Specific Javascript */
2014                try {
2015(function init(sectionDomId) {
2016  const disclaimerLabel = document.querySelector('#' + sectionDomId + ' .lp-tcr-content');
2017  if (disclaimerLabel) {
2018    const input = disclaimerLabel.querySelector('input');
2019    if (input) {
2020      input.setAttribute('id', `${sectionDomId}-termsAccepted`);
2021      input.value = 'true';
2022      const label = document.createElement('label');
2023      label.setAttribute('for', `${sectionDomId}-termsAccepted`);
2024      label.classList.add('lp-visually-hidden');
2025      label.textContent = 'Opt in/Disclaimer Consent:';
2026      disclaimerLabel.prepend(label);
2027    }
2028  }
2029  function setHttp(link) {
2030    if (link.search(/^http[s]?\:\/\/|\//) == -1) {
2031      link = 'https://' + link;
2032    }
2033    return link;
2034  }
2035  const socialLinks = document.querySelectorAll('#' + sectionDomId + ' .socials__link, #' + sectionDomId + ' .lp-socials__link');
2036  socialLinks.forEach(linkElement => {
2037    const href = linkElement.getAttribute('href');
2038    if (href) {
2039      linkElement.setAttribute('href', setHttp(href));
2040    }
2041  });
2042  const redirectLink = $('#' + sectionDomId + ' .redirect-link');
2043  if (redirectLink.length) {
2044    const rawHref = setHttp(redirectLink.attr('href'));
2045    let formEvent;
2046    if (rawHref) {
2047      formEvent = redirectLink.data('redirect') ? 'formsubmitted' : 'reset';
2048      $('#' + sectionDomId + ' .contact-form').find('form').on(formEvent, function () {
2049        redirectLink.attr('href', rawHref);
2050        redirectLink[0].click();
2051      });
2052    }
2053  }
2054})('modal-global-contact-us');
2055} catch(e) {
2056console.log(e);
2057}
2058                
2059                try {
2060(function init(sectionDomId) {
2061  const $section = $('#' + sectionDomId);
2062  const $hamburger = $section.find('.hamburger-component');
2063  function onSideMenuShow() {
2064    if (!$hamburger.hasClass('active')) {
2065      $hamburger.addClass('active');
2066    }
2067  }
2068  function onSideMenuHide() {
2069    $hamburger.removeClass('active');
2070  }
2071  const $window = $(window);
2072  $window.on('lpui-sidemenu-show.lpui-auto-clean', onSideMenuShow);
2073  $window.on('lpui-sidemenu-hide.lpui-auto-clean', onSideMenuHide);
2074  const $subContainers = $section.find('.navigation__item.sub-nav-container');
2075  $subContainers.hover(function () {
2076    $(this).find('.sub-nav').addClass('visible');
2077  }, function () {
2078    $(this).find('.sub-nav').removeClass('visible');
2079  });
2080  $window.on('click.lpui-auto-clean', function () {
2081    $('.sub-nav-container.visible-dropdown').removeClass('visible-dropdown');
2082  });
2083  let fixedWidth = 0;
2084  const rightPad = 20;
2085  function fixSubsPosition() {
2086    const wWidth = window.innerWidth;
2087    if (innerWidth === fixedWidth) {
2088      return;
2089    }
2090    fixedWidth = wWidth;
2091    $subContainers.each(function () {
2092      const $sub = $(this).find('.sub-nav');
2093      $sub[0].style.right = '';
2094      const sRect = $sub[0].getBoundingClientRect();
2095      const sRight = sRect.left + sRect.width;
2096      if (sRight > wWidth - rightPad) {
2097        const parentRect = $sub[0].offsetParent.getBoundingClientRect();
2098        const parentRight = parentRect.left + parentRect.width;
2099        $sub[0].style.right = `${parentRight - wWidth + rightPad}px`;
2100      }
2101    });
2102  }
2103  var debouncer;
2104  $window.on('resize.lpui-auto-clean', function () {
2105    clearTimeout(debouncer);
2106    debouncer = setTimeout(fixSubsPosition, 500);
2107  });
2108  fixSubsPosition();
2109  if ($('.property-intro').length || $('.property-intro-2').length) {
2110    $('nav').addClass('dark-opening');
2111    $("#global-navbar").css({
2112      "background-color": "rgb(26, 26, 26)",
2113      "color": "rgb(255, 255, 255)"
2114    });
2115  }
2116  function initAutoTruncateMenu() {
2117    const $navbar = $section.find('.navbar');
2118    const $navList = $section.find('.navigation > ul');
2119    if (!$navbar.length || !$navList.length) {
2120      return;
2121    }
2122    const $logo = $section.find('.logo');
2123    const $buttonsWrapper = $section.find('.buttons-wrapper');
2124    const $allItems = $navList.children('.navigation__item');
2125    const $phoneItem = $allItems.filter(function () {
2126      return $(this).find('a[href^="tel:"]').length > 0;
2127    });
2128    const $menuItems = $allItems.not($phoneItem);
2129    if (!$menuItems.length) {
2130      return;
2131    }
2132    const buffer = 8;
2133    function measureFixedWidth() {
2134      let width = buffer;
2135      if ($logo.length) {
2136        width += $logo.outerWidth(true) || 0;
2137      }
2138      if ($buttonsWrapper.length) {
2139        width += $buttonsWrapper.outerWidth(true) || 0;
2140      }
2141      if ($phoneItem.length) {
2142        width += $phoneItem.outerWidth(true) || 0;
2143      }
2144      return width;
2145    }
2146    function truncateMenu() {
2147      if (!$navList.is(':visible')) {
2148        return;
2149      }
2150      $menuItems.css('display', '');
2151      const availableWidth = $navbar[0].getBoundingClientRect().width - measureFixedWidth();
2152      let widthSoFar = 0;
2153      let overflowed = false;
2154      $menuItems.each(function () {
2155        const $item = $(this);
2156        if (overflowed) {
2157          $item.css('display', 'none');
2158          return;
2159        }
2160        widthSoFar += $item.outerWidth(true);
2161        if (widthSoFar > availableWidth) {
2162          $item.css('display', 'none');
2163          overflowed = true;
2164        }
2165      });
2166    }
2167    let truncateFrame;
2168    function scheduleTruncate() {
2169      if (truncateFrame) {
2170        return;
2171      }
2172      truncateFrame = window.requestAnimationFrame(function () {
2173        truncateFrame = null;
2174        truncateMenu();
2175      });
2176    }
2177    scheduleTruncate();
2178    if (window.ResizeObserver) {
2179      const resizeObserver = new ResizeObserver(scheduleTruncate);
2180      resizeObserver.observe($navbar[0]);
2181    } else {
2182      $(window).on('resize.lpui-auto-truncate', scheduleTruncate);
2183    }
2184    $section.find('img').on('load.lpui-auto-truncate', scheduleTruncate);
2185    $(window).on('load.lpui-auto-truncate', scheduleTruncate);
2186    if (document.fonts && document.fonts.ready) {
2187      document.fonts.ready.then(scheduleTruncate);
2188    }
2189  }
2190  initAutoTruncateMenu();
2191})('global-navbar');
2192} catch(e) {
2193console.log(e);
2194}
2195                try {
2196(function init(sectionDomId, options) {
2197  var elementSelector = options.elementSelector || 'nav';
2198  var element = document.querySelector(elementSelector);
2199  var sections = document.querySelectorAll('body > section');
2200  var subNavContainers = element.querySelectorAll('.sub-nav');
2201  var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor;
2202  var backgroundColorScroll = options.backgroundColorScroll || '#191919';
2203  var fontColor = options.fontColor || '#fff';
2204  var fontColorScroll = options.fontColorScroll || '#000';
2205  var didScroll = false;
2206  var lastScrollTop = 0;
2207  var delta = 5;
2208
2209  // eslint-disable-next-line sonarjs/no-collapsible-if
2210  if (wow) {
2211    // Wowjs might not trigger for position fixed elements
2212    if (window.scrollY > 0) {
2213      element.querySelectorAll('.wow').forEach(el => wow.show(el));
2214    }
2215  }
2216  function adjustNavPinState() {
2217    // Remove 'visible' class from all subNavContainers
2218    for (let i = 0; i < subNavContainers.length; i++) {
2219      subNavContainers[i].classList.remove('visible');
2220    }
2221    if (window.scrollY > 0) {
2222      element.style.backgroundColor = backgroundColorScroll;
2223      element.style.color = fontColorScroll;
2224      element.classList.add('scroll');
2225    } else {
2226      element.style.backgroundColor = initialBackgroundColor;
2227      element.style.color = fontColor;
2228      element.classList.remove('scroll');
2229    }
2230  }
2231  adjustNavPinState();
2232  function onScroll() {
2233    didScroll = true;
2234  }
2235  window.addEventListener('scroll', onScroll);
2236
2237  // eslint-disable-next-line
2238  var debounceInterval = setInterval(() => {
2239    if (didScroll) {
2240      // eslint-disable-next-line
2241      hasScrolled();
2242      didScroll = false;
2243    }
2244  }, 250);
2245  function hasScrolled() {
2246    adjustNavPinState();
2247    // eslint-disable-next-line
2248    var navbarHeight = element.offsetHeight;
2249    // eslint-disable-next-line
2250    var st = window.scrollY;
2251
2252    // Make sure they scroll more than delta
2253    if (Math.abs(lastScrollTop - st) <= delta) {
2254      return;
2255    }
2256    if (st > lastScrollTop && st > navbarHeight) {
2257      // Scroll Down
2258      element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`;
2259      document.documentElement.style.setProperty('--global-header-height', '0px');
2260
2261      // Some sections "follow" the navbar with class sticky (i.e. Producer search)
2262      sections.forEach(section => {
2263        if (section.classList.contains('sticky')) {
2264          section.style.top = '0px';
2265        }
2266      });
2267    } else {
2268      // Scroll Up
2269      // eslint-disable-next-line
2270      if (st + window.innerHeight < document.documentElement.scrollHeight) {
2271        element.style.transform = `translateY(0) scaleY(1)`;
2272        document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`);
2273        sections.forEach(section => {
2274          if (section.classList.contains('sticky')) {
2275            section.style.top = `${navbarHeight}px`;
2276          }
2277        });
2278      }
2279    }
2280    lastScrollTop = st;
2281  }
2282})('NAVBAR', JSON.parse("{\"fontColor\":\"#fff\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#fff\",\"initialFontColor\":\"#fff\",\"backgroundColorScroll\":\"#1a1a1a\",\"initialBackgroundColor\":\"rgba(0,0,0,0)\"}"));
2283} catch(e) {
2284console.log(e);
2285}
2286                try {
2287(function init(sectionDomId) {
2288  var sidemenu = $('#' + sectionDomId);
2289  sidemenu.on('lpui-sidemenu-show.lpui-auto-clean', function () {
2290    window.lpUI.requestScrollLock(sectionDomId);
2291  });
2292  $(window).on('lpui-sidemenu-hide.lpui-auto-clean', function () {
2293    window.lpUI.releaseScrollLock(sectionDomId);
2294  });
2295  $(window).click(function (e) {
2296    let targetContactForm = $(e.target).closest('#modal-global-contact-us').length;
2297    let targetSideMenu = $(e.target).closest('.sidemenu').length;
2298    let targetContactItem = $(e.target).closest('[data-type="CONTACT_US"]').length;
2299    let targetHamburger = $(e.target).closest('.hamburger-component').length;
2300    if (!(targetContactForm || targetSideMenu || targetContactItem || targetHamburger)) {
2301      $('body').removeClass('locked');
2302      $('.hamburger').removeClass('active');
2303      $('.sidemenu').removeClass('visible');
2304      $('#modal-global-contact-us').removeClass('visible');
2305    }
2306  });
2307})('global-sidemenu');
2308} catch(e) {
2309console.log(e);
2310}
2311                
2312                try {
2313(function init(footerId) {
2314  var textContent = $(".text_content_wrap p").text().trim().length;
2315  const socialLinks = $(`#${footerId} .lp-socials__link`);
2316  if (textContent < 1) {
2317    $(".text_content_wrap").remove();
2318    $(".second_text_footer").css({
2319      'margin-bottom': 0
2320    });
2321  }
2322  if (socialLinks.length > 0) {
2323    socialLinks.attr('data-wow-offset', '10');
2324  }
2325  if ($(window).width() > 1280) {
2326    let footer = document.querySelector("#" + footerId);
2327    let copyrightElem = footer.querySelector(".copy_zone");
2328    if (copyrightElem) {
2329      copyrightElem.style.whiteSpace = "nowrap";
2330      let nowrapElemWidth = copyrightElem.clientWidth;
2331      copyrightElem.style.whiteSpace = "";
2332      let normalElemWidth = copyrightElem.clientWidth;
2333      if (nowrapElemWidth > normalElemWidth) {
2334        footer.querySelector(".form-col--socials").classList.add("form-col--xl-auto");
2335      }
2336    }
2337  }
2338  const form = $("#" + footerId).find("form");
2339  const redirectLink = $('#' + footerId + ' .redirect-link');
2340  form.on("reset", function () {
2341    redirectPage(redirectLink);
2342  });
2343  function redirectPage(link) {
2344    if (link.length) {
2345      const rawHref = link.attr('href');
2346      link.attr('href', setHttp(rawHref));
2347      link[0].click();
2348    }
2349  }
2350  function setHttp(link) {
2351    if (link.search(/^http[s]?\:\/\/|\//) == -1) {
2352      link = 'http://' + link;
2353    }
2354    return link;
2355  }
2356})('global-footer');
2357} catch(e) {
2358console.log(e);
2359}
2360                
2361                try {
2362(function init(sectionDomId) {
2363  var _section = $('#' + sectionDomId);
2364  var _footer = document.getElementById('global-footer');
2365  const redirectLink = _section.find('.js-redirect-link');
2366  function setHttp(link) {
2367    if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) {
2368      link = 'https://' + link;
2369    }
2370    return link;
2371  }
2372  function redirectPage(link) {
2373    if (link.length) {
2374      window.location.href = setHttp(link.attr('href'));
2375    }
2376  }
2377  const emailInput = _section.find('.js-email-input');
2378  const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/;
2379  emailInput.on('input', function () {
2380    if (emailRegex.test(this.value)) {
2381      this.setCustomValidity('');
2382    } else {
2383      this.setCustomValidity('Please enter a valid email address.');
2384    }
2385    this.reportValidity();
2386  });
2387  _section.find('input[name="name"]').on("keyup", function () {
2388    if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") {
2389      this.setCustomValidity("Please input your first name and last name.");
2390    } else {
2391      this.setCustomValidity("");
2392    }
2393  });
2394  _section.find('form').on("reset", function () {
2395    $(this).addClass("show-success");
2396    redirectPage(redirectLink);
2397  });
2398  $(window).scroll(function () {
2399    if ($(this).scrollTop() >= 150) _section.find('.btn-holder').addClass('visible');else _section.find('.btn-holder').removeClass('visible');
2400  });
2401  _section.find('.close-btn, .connect-btn').click(function () {
2402    _section.find('.pop-up').toggle();
2403    _section.find('.btn-holder').toggle();
2404  });
2405  if (!_footer) return;
2406  const observer = new IntersectionObserver(entries => {
2407    entries.forEach(entry => {
2408      if (entry.isIntersecting) _section.hide();else _section.show();
2409    });
2410  }, {
2411    threshold: 0.1
2412  });
2413  observer.observe(_footer);
2414  function selectToDropdown(selectItem) {
2415    let customDropdown = `
2416        <div class="custom-select" role="presentation">
2417        <button class="custom-select-toggle is-placeholder" type="button" aria-haspopup="true" aria-expanded="false"></button>
2418        <div class="custom-select-menu" style="display: none;max-height: none;">
2419        <div class="custom-select-content">
2420        </div>
2421        </div>
2422        </div>`;
2423    $(customDropdown).insertAfter(selectItem);
2424    let $dropdown = $($(selectItem).next());
2425    let $dropdownToggle = $dropdown.find(".custom-select-toggle");
2426    let $dropdownMenu = $dropdown.find(".custom-select-menu");
2427    let $dropdownContent = $dropdown.find(".custom-select-content");
2428    $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select");
2429    $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom");
2430    $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id"));
2431    appendOptionButtons(selectItem, $dropdownContent);
2432    $(selectItem).removeClass().addClass("sr-only");
2433    var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text();
2434    $dropdownToggle.html(toggleText);
2435    $dropdown.on("click", ".custom-select-item", function (e) {
2436      if ($(this).hasClass("is-disabled")) return;
2437      let elementNumber = $(this).index();
2438      let $originalSelect = $(this).closest(".custom-select").siblings("select");
2439      let $linkedOption = $originalSelect.find("option").eq(elementNumber);
2440      if (!$linkedOption.prop("selected")) {
2441        $linkedOption.prop("selected", true);
2442        $originalSelect.change();
2443        $(this).addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected");
2444        $dropdownToggle.html($(this).html());
2445        closeSelectMenu($(this).closest(".custom-select-menu"));
2446      }
2447      $dropdownToggle.removeClass("is-placeholder");
2448    });
2449    function convertOptionToButton(option) {
2450      var optionText = $(option).text();
2451      var optionValue = $(option).attr("value") || $(option).text();
2452      var optionIsDisabled = $(option).prop("disabled");
2453      var outputButton = `<button value="${optionValue}" class="custom-select-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`;
2454      return outputButton;
2455    }
2456    function appendOptionButtons(selectItem, appendTarget) {
2457      $(selectItem).find("option").each(function () {
2458        let currentButton = convertOptionToButton(this);
2459        $(appendTarget).append(currentButton);
2460      });
2461    }
2462    function showSelectMenu(selectMenu) {
2463      var customSelect = $(selectMenu).closest(".custom-select")[0];
2464      $(customSelect).addClass("open");
2465      $(selectMenu).slideDown();
2466    }
2467    function closeSelectMenu(selectMenu) {
2468      var customSelect = $(selectMenu).closest(".custom-select")[0];
2469      $(customSelect).removeClass("open");
2470      $(selectMenu).slideUp();
2471    }
2472    $dropdown.on("click", ".custom-select-toggle", function (e) {
2473      var $customSelect = $(this).closest(".custom-select");
2474      var selectMenu = $customSelect.find(".custom-select-menu")[0];
2475      if ($customSelect.hasClass("open")) {
2476        closeSelectMenu(selectMenu);
2477      } else {
2478        showSelectMenu(selectMenu);
2479      }
2480    });
2481    $(document).on("click", function (e) {
2482      if ($(e.target).closest(".custom-select").length < 1 && $(".custom-select").hasClass("open")) {
2483        $(".custom-select.open").each(function () {
2484          var selectMenu = $(this).find(".custom-select-menu")[0];
2485          closeSelectMenu(selectMenu);
2486        });
2487      }
2488    });
2489  }
2490  $(".pop-up select[name='interest']").each(function () {
2491    selectToDropdown(this);
2492  });
2493})('global-mobile-contact');
2494} catch(e) {
2495console.log(e);
2496}
2497                
2498                try {
2499(function init(sectionDomId) {
2500  var $section = $('#' + sectionDomId);
2501  var $slider = $section.find('.js-sell-slider');
2502  const arrowsStyle = $slider.data('arrows-style') || '';
2503  var $arrowsContainerDesk = $section.find('.jsSellSliderArrowsDesk');
2504  var $arrowsContainerMob = $section.find('.jsSellSliderArrowsMob');
2505  var centerPaddingVar = $slider.find('img').length > 1 ? true : false;
2506  $slider.slick({
2507    dots: false,
2508    vertical: true,
2509    slidesToShow: 1,
2510    slidesToScroll: 1,
2511    verticalSwiping: true,
2512    appendArrows: $arrowsContainerDesk,
2513    prevArrow: `<button class='lp-arrow lp-arrow--prev lp-arrow--dark lp-arrow--vertical ${arrowsStyle}'></button>`,
2514    nextArrow: `<button class='lp-arrow lp-arrow--next lp-arrow--dark lp-arrow--vertical ${arrowsStyle}'></button>`,
2515    centerMode: centerPaddingVar,
2516    centerPadding: '80px',
2517    responsive: [{
2518      breakpoint: 769,
2519      settings: {
2520        centerMode: false,
2521        centerPadding: '0px',
2522        appendArrows: $arrowsContainerMob,
2523        vertical: false,
2524        verticalSwiping: false
2525      }
2526    }]
2527  });
2528})('section-0c5098a0-18d2-4cc2-b7b1-3a97ebfd88b2', 'undefined');
2529} catch(e) {
2530console.log(e);
2531}
2532                try {
2533(function init(sectionDomId, options) {
2534  let section = null;
2535  switch (sectionDomId) {
2536    case 'NAVBAR':
2537      section = document.querySelector('body > nav, #global-navbar');
2538      break;
2539    case 'FOOTER':
2540      section = document.querySelector('body > footer, #global-footer');
2541      break;
2542    case 'SIDEMENU':
2543      section = document.querySelector('body > div.sidemenu, #global-sidemenu');
2544      break;
2545    case 'CONTACT':
2546      section = document.querySelector('#modal-global-contact-us');
2547      break;
2548    case 'MOBILE_CONTACT':
2549      section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact');
2550      break;
2551    case 'SUBSCRIBE':
2552      // Subscribe Not Implemented
2553      section = null;
2554      break;
2555    case 'ACCOUNT':
2556      // Account Not Implemented
2557      section = null;
2558      break;
2559    default:
2560      section = document.querySelector('#' + sectionDomId);
2561  }
2562  if (!section) {
2563    return;
2564  }
2565
2566  // Where content / items are rendered
2567  const dataContainer = section.querySelector('.data-container');
2568  if (!dataContainer) {
2569    // no place to render items = no need to query server or do anything else
2570    return;
2571  }
2572  let variables = options.variables || {};
2573
2574  // Some variables in options may not have been injected - remove
2575  Object.keys(variables).forEach(function (variableName) {
2576    if (typeof variables[variableName] === 'string' && variables[variableName].match(/^{{.*}}$/)) {
2577      delete variables[variableName];
2578    }
2579  });
2580
2581  // Merge page query variables
2582  if (options.usePageResource) {
2583    variables = {
2584      ...variables,
2585      ...window.luxuryPresence.config.pageMeta.pageQueryVariables[options.resource]
2586    };
2587  }
2588
2589  // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Callers
2590  // resolve the flag — fetchData reads the section stamp, aux fetches read
2591  // their own resource's stamp (auxUsesRouter).
2592  function apiUrl(useRouter) {
2593    return options.url || (useRouter ? window.luxuryPresence.defaults.routerUrl : window.luxuryPresence.defaults.apiGatewayUrl);
2594  }
2595
2596  // ROUTER-CLEANUP: aux resources roll out on their own flag, not the section's
2597  // (options.routerApiAux is stamped per aux resource server-side).
2598  function auxUsesRouter(resource) {
2599    return !!(options.routerApiAux && options.routerApiAux[resource]);
2600  }
2601
2602  // Pagination Executes on a Numbered Pagination Container
2603  //  Or via a load more button
2604  let mode = 'BUTTONLESS_PAGINATION';
2605  const container = section.querySelector('.pagination-container');
2606  const loadMoreButton = section.querySelector(options?.loadMoreSelector);
2607  if (container) {
2608    mode = 'NUMBERED_PAGINATION';
2609  }
2610  if (loadMoreButton) {
2611    mode = 'LOAD_MORE_BUTTON';
2612  }
2613  let searchContainer = section.querySelector('.search-container');
2614  const hidePaginationOnFirstPage = options.hidePaginationOnFirstPage || false;
2615  const eventPrefix = '__pagination-';
2616  const searchFormParams = options.searchFormParams || (options.resource === 'properties' ? [{
2617    param: 'neighborhoodId',
2618    urlKey: 'neighborhood'
2619  }, {
2620    param: 'search',
2621    urlKey: 'search'
2622  }, {
2623    param: 'salesPriceGTE',
2624    urlKey: 'pricemin',
2625    formKey: 'priceMin',
2626    type: 'int'
2627  }, {
2628    param: 'salesPriceLTE',
2629    urlKey: 'pricemax',
2630    formKey: 'priceMax',
2631    type: 'int'
2632  }, {
2633    param: 'livingSpaceSizeGTE',
2634    urlKey: 'areamin',
2635    formKey: 'areaMin',
2636    type: 'int'
2637  }, {
2638    param: 'livingSpaceSizeLTE',
2639    urlKey: 'areamax',
2640    formKey: 'areaMax',
2641    type: 'int'
2642  }] : []);
2643
2644  // Total entries - initialized in first render
2645  let totalNumber = 0;
2646  const DefaultSearchParams = {
2647    page: 1
2648  };
2649  searchFormParams.forEach(function (formParam) {
2650    DefaultSearchParams[formParam.formKey || formParam.param] = null;
2651  });
2652  let searchParams = {
2653    ...DefaultSearchParams
2654  };
2655  const offset = options.variables?.offset || 0;
2656  let scrollTarget = options.scrollTargetSelector ? section.querySelector(options.scrollTargetSelector) || section : section;
2657  let scrollOffset = (parseInt(options.scrollOffset, 10) || 0) ?? 100;
2658
2659  // entries of per page
2660  // when query variables for a given section would't be filled options.pageSize can store
2661  // template string, ex: "{{variables.limit}}", below code handles that case and set 9 as a default value
2662  let pageSize = parseInt(options.pageSize, 10) || 9;
2663
2664  // Adding mobile pageRange support
2665  var NARROW_BREAKPOINT = 600;
2666  var mobileBreakpoint = options.mobileBreakpoint > 0 ? options.mobileBreakpoint : NARROW_BREAKPOINT;
2667  var paginationMql = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`);
2668
2669  // Page range (pages on both sides of the current page)
2670  var mobilePageRange = options.mobilePageRange > 0 ? options.mobilePageRange : 0;
2671  var desktopPageRange = options.pageRange >= 0 ? options.pageRange : 2;
2672  var pageRange = paginationMql.matches ? mobilePageRange : desktopPageRange;
2673
2674  // Whether to display the 'Previous' button
2675  var showPrevious = true;
2676
2677  // Whether to display the 'Next' button
2678  var showNext = true;
2679
2680  // Whether to display the page buttons
2681  var showPageNumbers = true;
2682
2683  // 'Previous' text
2684  var prevText = options.prevText || '&laquo;';
2685
2686  // 'Next' text
2687  var nextText = options.nextText || '&raquo;';
2688
2689  // Ellipsis text
2690  var ellipsisText = '&hellip;';
2691  var classPrefix = 'paginationjs';
2692
2693  // Default active class
2694  var activeClassName = 'active';
2695
2696  // Default disable class
2697  var disableClassName = 'disabled';
2698
2699  // Pagination element's position in the container
2700  var position = 'bottom';
2701
2702  // Whether to trigger pagination at initialization
2703  var triggerPagingOnInit = !options.skipInitialLoad;
2704  var showFirstOnEllipsisShow = true;
2705  var showLastOnEllipsisShow = true;
2706
2707  // Instantiated in init()
2708  var el = null;
2709
2710  // Controls scrollTop logic
2711  var firstRender = true;
2712  var renderBySearch = false;
2713  var disabled = false;
2714
2715  // Pagination script class selector
2716  var paginationScriptSelector = options.paginationPartialName ? `.${options.paginationPartialName}` : '.pagination-script';
2717
2718  // Property Specific Image Override if No Image
2719  var propertyPlaceholderImage = window.luxuryPresence.defaults.propertyPlaceholderImage;
2720
2721  // Construct template
2722  var templateHTML = section.querySelector(`script${paginationScriptSelector}`)?.innerHTML || '';
2723  var template = Handlebars.compile(templateHTML);
2724
2725  // Initialize
2726  init();
2727  function init() {
2728    Object.assign(searchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId));
2729
2730    // Append/prepend pagination element to the pagination container
2731    if (mode === 'NUMBERED_PAGINATION') {
2732      el = document.createElement('div');
2733      el.className = 'paginationjs';
2734      container[position === 'bottom' ? 'append' : 'prepend'](el);
2735    }
2736    if (searchContainer) {
2737      initSearchContainer({
2738        fetchNeighborhoods: searchContainer.dataset.fetchNeighborhoods === 'true',
2739        fetchPostCategories: searchContainer.dataset.fetchPostCategories === 'true',
2740        fetchOffices: searchContainer.dataset.fetchOffices === 'true',
2741        fetchRentalRates: searchContainer.dataset.fetchRentalRates === 'true'
2742      }, function () {
2743        syncSearchFormState(searchParams);
2744      });
2745    }
2746
2747    // Bind events
2748    observer();
2749  }
2750  function syncSearchFormState(params) {
2751    searchContainer.dispatchEvent(new CustomEvent('sync', {
2752      detail: params
2753    }));
2754  }
2755  function initSearchContainer(options, done) {
2756    var promises = [];
2757    if (options.fetchNeighborhoods) {
2758      promises.push(fetchAllNeighborhoods(function (neighborhoods) {
2759        searchContainer.dispatchEvent(new CustomEvent('neighborhoods-data', {
2760          detail: {
2761            data: neighborhoods.map(function (item) {
2762              return {
2763                value: item.id,
2764                label: item.name
2765              };
2766            })
2767          }
2768        }));
2769      }));
2770    }
2771    if (options.fetchPostCategories) {
2772      promises.push(fetchPostCategories(function (categories) {
2773        searchContainer.dispatchEvent(new CustomEvent('post-categories-data', {
2774          detail: {
2775            data: categories
2776          }
2777        }));
2778      }));
2779    }
2780    if (options.fetchOffices) {
2781      promises.push(fetchOffices(function (offices) {
2782        searchContainer.dispatchEvent(new CustomEvent('offices-data', {
2783          detail: {
2784            data: offices
2785          }
2786        }));
2787      }));
2788    }
2789    if (options.fetchRentalRates) {
2790      promises.push(fetchAllRentalRates(function (rentalRates) {
2791        searchContainer.dispatchEvent(new CustomEvent('rental-rates-data', {
2792          detail: {
2793            data: rentalRates
2794          }
2795        }));
2796      }));
2797    }
2798    if (promises.length > 0) {
2799      Promise.all(promises).then(function () {
2800        done();
2801      });
2802    } else {
2803      // element's custom code is not executed yet, so we're scheduling callback to after element's code
2804      setTimeout(done);
2805    }
2806  }
2807  function fetchAllNeighborhoods(done) {
2808    var useRouter = auxUsesRouter('neighborhoods');
2809    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Same
2810    // args on both APIs (the federated neighborhoods field accepts
2811    // withProperties/withBlogPosts); only the selection set differs.
2812    var gqlQuery = 'query ($companyId: String, $withProperties: NeighborhoodPropertiesFilter, $withBlogPosts: NeighborhoodBlogPostsFilter, $offset: Int, $limit: Int) {' + 'neighborhoods (companyId: $companyId, withProperties: $withProperties, withBlogPosts: $withBlogPosts, offset: $offset, limit: $limit) {' + (useRouter ? 'items {id, name}' : 'id, name') + '}}';
2813    var payload = {};
2814    payload.offset = 0;
2815    payload.limit = 100;
2816    payload.companyId = variables.companyId;
2817    if (options.resource === 'properties') {
2818      payload.withProperties = {
2819        active: true
2820      };
2821      ['agentIds', 'tag', 'propertyTypeId', 'statusIds', 'architectureStyle', 'lifestyle', 'salesPriceGTE', 'salesPriceLTE', 'leasePriceGTE', 'leasePriceLTE', 'livingSpaceSizeGTE', 'livingSpaceSizeLTE', 'bathCountGTE', 'bathCountLTE', 'bedroomCountGTE', 'bedroomCountLTE', 'bathCountGTE', 'bathCountLTE', 'bedroomCountGTE', 'bedroomCountLTE', 'featuredListing', 'leaseProperty', 'neighborhoodId', 'developmentId', 'openHouse'].forEach(function (field) {
2822        if (variables[field] !== undefined && variables[field] !== null) {
2823          payload.withProperties[field] = variables[field];
2824        }
2825      });
2826    }
2827    if (options.resource === 'posts') {
2828      payload.withBlogPosts = {
2829        active: true
2830      };
2831      ['search', 'postStatusId', 'featured', 'categoryId', 'categoryIds', 'neighborhoodId', 'slug'].forEach(function (field) {
2832        if (variables[field] !== undefined && variables[field] !== null) {
2833          payload.withBlogPosts[field] = variables[field];
2834        }
2835      });
2836    }
2837
2838    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2839    if (useRouter) {
2840      payload = window.luxuryPresence.routerApi.transformVariables('neighborhoods', payload);
2841    }
2842    superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({
2843      query: gqlQuery,
2844      variables: payload
2845    }).then(function (res) {
2846      var value = res.body.data && res.body.data.neighborhoods || {};
2847      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2848      var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || [];
2849      done(items, items.length);
2850    });
2851  }
2852  function fetchPostCategories(done) {
2853    var featured = options.resource === 'posts' && !!variables.featured;
2854    var useRouter = auxUsesRouter('postCategories');
2855    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the
2856    // selection set differs ({ items {...} } on the router).
2857    var selection = 'id, name, publishedCount, featuredPublishedCount';
2858    var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'postCategories (companyId: $companyId, offset: $offset, limit: $limit ' + (featured ? ' withFeaturedPublishedOnly: true' : ' withPublishedOnly: true') + ') {' + (useRouter ? 'items {' + selection + '}' : selection) + '}}';
2859    var payload = {};
2860    payload.offset = 0;
2861    payload.limit = 100;
2862    payload.companyId = variables.companyId;
2863    superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({
2864      query: gqlQuery,
2865      variables: payload
2866    }).then(function (res) {
2867      var value = res.body.data && res.body.data.postCategories || {};
2868      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2869      var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || [];
2870      done(items.map(function (item) {
2871        item.count = featured ? item.featuredPublishedCount : item.publishedCount;
2872        return item;
2873      }), items.length);
2874    });
2875  }
2876  function fetchOffices(done) {
2877    var useRouter = auxUsesRouter('offices');
2878    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the
2879    // selection set differs ({ items {...} } on the router).
2880    var selection = 'id, name, tags';
2881    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. The two
2882    // APIs differ in more than the items wrapper: federated offices takes
2883    // companyId: ID! (legacy gateway: String), so each branch builds its whole doc.
2884    var gqlQuery = useRouter ? 'query ($companyId: ID!, $offset: Int, $limit: Int) {' + 'offices (companyId: $companyId, offset: $offset, limit: $limit) {' + 'items {' + selection + '}}}' : 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'offices (companyId: $companyId, offset: $offset, limit: $limit) {' + selection + '}}';
2885    var payload = {
2886      offset: 0,
2887      limit: 100,
2888      companyId: variables.companyId
2889    };
2890
2891    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2892    if (useRouter) {
2893      payload = window.luxuryPresence.routerApi.transformVariables('office
2893s', payload);
2894    }
2895    superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({
2896      query: gqlQuery,
2897      variables: payload
2898    }).then(function (res) {
2899      var value = res.body.data && res.body.data.offices || {};
2900      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2901      var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || [];
2902      done(items, items.length);
2903    });
2904  }
2905
2906  // ROUTER-CLEANUP: no rentalRates field on the federated router — legacy only.
2907  function fetchAllRentalRates(done) {
2908    var url = options.url || window.luxuryPresence.defaults.apiGatewayUrl;
2909    var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'rentalRates (companyId: $companyId, offset: $offset, limit: $limit) {rentalRateId, label}}';
2910    var payload = {
2911      offset: 0,
2912      limit: 100,
2913      companyId: variables.companyId
2914    };
2915    superagent.post(url + '/graphql').withCredentials().send({
2916      query: gqlQuery,
2917      variables: payload
2918    }).then(function (res) {
2919      var items = res.body.data && res.body.data.rentalRates || [];
2920      done(items, items.length);
2921    }).catch(function (err) {
2922      console.error('Error fetching rental rates:', err);
2923      done([], 0);
2924    });
2925  }
2926  function fetchData(params, done) {
2927    var resource = options.resource;
2928    var gqlQuery = options.query || window.luxuryPresence.defaults.gql[resource];
2929    var payload = {};
2930    try {
2931      payload = JSON.parse(JSON.stringify(variables));
2932    } catch (e) {
2933      Object.keys(variables).forEach(function (variableName) {
2934        payload[variableName] = variables[variableName];
2935      });
2936    }
2937    payload.offset = (params.page - 1) * pageSize + offset;
2938    payload.limit = pageSize;
2939    payload.companyId = options.companyId;
2940    searchFormParams.forEach(function (formParam) {
2941      var val = params[formParam.formKey || formParam.param];
2942      if (val !== null && val !== undefined) {
2943        objSet(payload, formParam.param, val);
2944      }
2945    });
2946
2947    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2948    if (options.useRouterApi) {
2949      payload = window.luxuryPresence.routerApi.transformVariables(resource, payload);
2950    }
2951
2952    // TODO: Disabled loading due to jarring effect
2953    // dataContainer.html('Loading...');
2954    superagent.post(apiUrl(options.useRouterApi) + '/graphql').withCredentials().send({
2955      query: gqlQuery,
2956      variables: payload
2957    }).then(function (res) {
2958      if (res.body.errors) {
2959        done(res.body.errors);
2960        return;
2961      }
2962      var data = res.body.data || {};
2963      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2964      var resources;
2965      var resourceCount;
2966      if (options.useRouterApi) {
2967        var page = window.luxuryPresence.routerApi.transformPage(data[resource]);
2968        resources = window.luxuryPresence.routerApi.transformResponse(resource, page.items);
2969        resourceCount = page.count;
2970      } else {
2971        resources = data[resource] || [];
2972        resourceCount = data[resource + 'Count'] && data[resource + 'Count'].count ? data[resource + 'Count'].count : 0;
2973      }
2974      const finish = function (items) {
2975        if (resource === 'properties' && propertyPlaceholderImage?.id) {
2976          items = items.map(item => {
2977            if (item.media?.length === 0) {
2978              return Object.assign(item, {
2979                media: [propertyPlaceholderImage]
2980              });
2981            }
2982            return item;
2983          });
2984        }
2985        done(null, items, resourceCount);
2986      };
2987
2988      // ROUTER-CLEANUP: client half of PLAT-4073 — resolve the requested
2989      // disclaimers before rendering; older SDKs skip (keys stay unset).
2990      if (options.useRouterApi && resource === 'properties' && options.routerPropertyDisclaimers && options.routerPropertyDisclaimers.length && window.luxuryPresence.routerApi && typeof window.luxuryPresence.routerApi.applyPropertyDisclaimers === 'function') {
2991        window.luxuryPresence.routerApi.applyPropertyDisclaimers(resources, options.routerPropertyDisclaimers).then(finish);
2992        return;
2993      }
2994      finish(resources);
2995    });
2996  }
2997  function getTotalPage() {
2998    return Math.ceil(totalNumber / pageSize);
2999  }
3000  function renderPaginationList() {
3001    var totalPages = getTotalPage();
3002    var rangeStart = searchParams.page - pageRange;
3003    var rangeEnd = searchParams.page + pageRange;
3004    if (rangeEnd > totalPages) {
3005      rangeEnd = totalPages;
3006      rangeStart = totalPages - pageRange * 2;
3007      rangeStart = rangeStart < 1 ? 1 : rangeStart;
3008    }
3009    if (rangeStart <= 1) {
3010      rangeStart = 1;
3011      rangeEnd = Math.min(pageRange * 2 + 1, totalPages);
3012    }
3013
3014    // Making sure that 1 more page button is shown in edge positions
3015    if (pageRange === 0) {
3016      if (searchParams.page === totalPages) {
3017        rangeStart = totalPages <= 1 ? 1 : totalPages - 1;
3018      }
3019      if (searchParams.page === 1) {
3020        rangeEnd = Math.min(2, totalPages);
3021      }
3022    }
3023
3024    // Render pagination list
3025    if (mode === 'NUMBERED_PAGINATION') {
3026      el.innerHTML = generateHTML({
3027        currentPage: searchParams.page,
3028        pageRange: pageRange,
3029        rangeStart: rangeStart,
3030        rangeEnd: rangeEnd
3031      });
3032      if (totalPages < 2 && hidePaginationOnFirstPage) {
3033        container.style.display = 'none';
3034      } else {
3035        container.style.display = '';
3036      }
3037    } else if (mode === 'LOAD_MORE_BUTTON') {
3038      if (searchParams.page >= totalPages) {
3039        loadMoreButton.style.display = 'none';
3040      } else {
3041        loadMoreButton.style.display = '';
3042      }
3043    }
3044  }
3045  function render(data) {
3046    renderPaginationList();
3047
3048    // Render new content with handlebars
3049    var html = '';
3050    if (mode === 'LOAD_MORE_BUTTON' && searchParams.page > 1) {
3051      // If using load more, append search results to existing results
3052      html = dataContainer.innerHTML;
3053    }
3054    for (var i = 0; i < data.length; i++) {
3055      var itemData = recursivelyParse(data[i]);
3056      itemData.sectionIndex = options.sectionIndex;
3057      itemData.renderOptions = options.renderOptions;
3058      html += template(itemData);
3059    }
3060    dataContainer.innerHTML = html;
3061
3062    // Scroll Top
3063    if (!firstRender && mode === 'NUMBERED_PAGINATION' && (!renderBySearch || !options.skipScrollOnSearch)) {
3064      // Only animate to the top if we replace dataContainer (numbered pagination)
3065      setTimeout(() => {
3066        const scrollTargetOffsetTop = scrollTarget.getBoundingClientRect().top + window.scrollY - scrollOffset;
3067        window.scrollTo({
3068          top: scrollTargetOffsetTop,
3069          behavior: 'smooth'
3070        });
3071      }, 250);
3072    }
3073    return true;
3074  }
3075  function generateHTML(args) {
3076    const totalPages = getTotalPage();
3077    const {
3078      rangeStart,
3079      rangeEnd
3080    } = args;
3081    const makeLnk = page => window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, {
3082      ...searchParams,
3083      page
3084    });
3085    let html = '';
3086    if (showPrevious || showPageNumbers || showNext) {
3087      html += '<div class="paginationjs-pages"><ul>';
3088
3089      // Previous button
3090      if (showPrevious) {
3091        if (searchParams.page <= 1) {
3092          html += `<li class="${classPrefix}-prev ${disableClassName}"><a>${prevText}</a></li>`;
3093        } else {
3094          html += `<li class="${classPrefix}-prev J-paginationjs-previous" data-num="${searchParams.page - 1}" title="Previous page"><a href="${makeLnk(searchParams.page - 1)}">${prevText}</a></li>`;
3095        }
3096      }
3097
3098      // Pages
3099      if (showPageNumbers) {
3100        if (rangeStart <= 3) {
3101          for (let i = 1; i < rangeStart; i++) {
3102            html += `<li class="${classPrefix}-page J-paginationjs-page ${i === searchParams.page ? activeClassName : ''}" data-num="${i}"><a ${i === searchParams.page ? '' : `href="${makeLnk(i)}"`}>${i}</a></li>`;
3103          }
3104        } else {
3105          if (showFirstOnEllipsisShow) {
3106            html += `<li class="${classPrefix}-page ${classPrefix}-first J-paginationjs-page" data-num="1"><a href="${makeLnk(1)}">1</a></li>`;
3107          }
3108          html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`;
3109        }
3110        for (let i = rangeStart; i <= rangeEnd; i++) {
3111          html += `<li class="${classPrefix}-page J-paginationjs-page ${i === searchParams.page ? activeClassName : ''}" data-num="${i}"><a ${i === searchParams.page ? '' : `href="${makeLnk(i)}"`}>${i}</a></li>`;
3112        }
3113        if (rangeEnd < totalPages - 2) {
3114          html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`;
3115          if (showLastOnEllipsisShow) {
3116            html += `<li class="${classPrefix}-page ${classPrefix}-last J-paginationjs-page" data-num="${totalPages}"><a href="${makeLnk(totalPages)}">${totalPages}</a></li>`;
3117          }
3118        } else {
3119          for (let i = rangeEnd + 1; i <= totalPages; i++) {
3120            html += `<li class="${classPrefix}-page J-paginationjs-page" data-num="${i}"><a href="${makeLnk(i)}">${i}</a></li>`;
3121          }
3122        }
3123      }
3124
3125      // Next button
3126      if (showNext) {
3127        if (searchParams.page >= totalPages) {
3128          html += `<li class="${classPrefix}-next ${disableClassName}"><a>${nextText}</a></li>`;
3129        } else {
3130          html += `<li class="${classPrefix}-next J-paginationjs-next" data-num="${searchParams.page + 1}" title="Next page"><a href="${makeLnk(searchParams.page + 1)}">${nextText}</a></li>`;
3131        }
3132      }
3133      html += '</ul></div>';
3134    }
3135    return html;
3136  }
3137  function go(newSearchParams, callback, restorationVisit) {
3138    if (disabled) return;
3139    var goToPageNumber = newSearchParams.page;
3140
3141    // Page number is out of bounds
3142    if (!goToPageNumber || goToPageNumber < 1) return;
3143    var totalPage = getTotalPage();
3144
3145    // Page number is out of bounds
3146    if (!restorationVisit && totalNumber > 0) {
3147      if (goToPageNumber > totalPage) return;
3148    }
3149    if (!options.skipSerialization && (mode === 'NUMBERED_PAGINATION' || searchContainer)) {
3150      var newURL = window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, {
3151        ...newSearchParams,
3152        page: goToPageNumber !== 1 && mode === 'NUMBERED_PAGINATION' ? newSearchParams.page : null
3153      });
3154      if (!areQueryParamsEqual(newSearchParams, searchParams) && !restorationVisit) {
3155        window.history.pushState({}, '', window.luxuryPresence.getPath(newURL, {
3156          queryString: true
3157        }));
3158      }
3159    }
3160
3161    // Fetch and update page
3162    fetchData(newSearchParams, renderWithData);
3163    disabled = true;
3164    function renderWithData(err, data, count) {
3165      if (err) {
3166        dataContainer.dispatchEvent(new Event('error'));
3167      } else {
3168        searchParams = {
3169          ...newSearchParams
3170        };
3171        totalNumber = count - offset;
3172        if (data.length === 0) {
3173          dataContainer.dispatchEvent(new Event('no-data'));
3174        } else {
3175          dataContainer.dispatchEvent(new Event('data'));
3176        }
3177        render(data);
3178        firstRender = false;
3179      }
3180      disabled = false;
3181      renderBySearch = false;
3182    }
3183  }
3184  function areQueryParamsEqual(first, second) {
3185    var differ = Object.keys(first).find(function (key) {
3186      return first[key] !== undefined && first[key] !== null && first[key] !== second[key];
3187    });
3188    if (differ) {
3189      return false;
3190    }
3191    differ = Object.keys(second).find(function (key) {
3192      return second[key] !== undefined && second[key] !== null && second[key] !== first[key];
3193    });
3194    return !differ;
3195  }
3196  function next(callback) {
3197    go({
3198      ...searchParams,
3199      page: searchParams.page + 1
3200    }, callback);
3201  }
3202  function previous(callback) {
3203    go({
3204      ...searchParams,
3205      page: searchParams.page - 1
3206    }, callback);
3207  }
3208  function refresh(callback) {
3209    go(searchParams, callback);
3210  }
3211  function update(params, callback) {
3212    renderBySearch = true;
3213    go(params, callback);
3214  }
3215  function observer() {
3216    if (searchContainer) {
3217      searchContainer.addEventListener('search', function (event, newSearchParams) {
3218        newSearchParams = event.detail || newSearchParams;
3219        update({
3220          ...searchParams,
3221          ...newSearchParams,
3222          page: 1
3223        });
3224      });
3225      searchContainer.addEventListener('clear-search', function () {
3226        const defaultSearchParams = {
3227          ...DefaultSearchParams
3228        };
3229        const isCurrentSearchFormStateDefault = areQueryParamsEqual({
3230          ...defaultSearchParams,
3231          page: null
3232        }, {
3233          ...searchParams,
3234          page: null
3235        });
3236
3237        // if mode is LOAD_MORE_BUTTON we should't make anything on clear
3238        // when search form have default state
3239        if (isCurrentSearchFormStateDefault && mode !== 'NUMBERED_PAGINATION') {
3240          return;
3241        }
3242
3243        // if someone initially go to some page and click 'Clear' on search from
3244        // we should't navigate to first page. We should preserve page value
3245        if (isCurrentSearchFormStateDefault) {
3246          defaultSearchParams.page = searchParams.page;
3247        }
3248        syncSearchFormState(defaultSearchParams);
3249        update(defaultSearchParams);
3250      });
3251    }
3252    if (mode === 'LOAD_MORE_BUTTON') {
3253      loadMoreButton.addEventListener('click', function (event) {
3254        go({
3255          ...searchParams,
3256          page: searchParams.page + 1
3257        });
3258        return false;
3259      });
3260    }
3261    if (mode === 'LOAD_MORE_BUTTON' || mode === 'BUTTONLESS_PAGINATION') {
3262      // Do initial render
3263      go(Object.assign({}, searchParams, {
3264        page: 1
3265      }));
3266      return;
3267    }
3268    if (mode === 'NUMBERED_PAGINATION') {
3269      // Go to specified page number
3270      container.addEventListener(eventPrefix + 'go', function (event) {
3271        let {
3272          pageNumber,
3273          done
3274        } = event.detail || {};
3275        pageNumber = parseInt(pageNumber, 10);
3276        if (!pageNumber) {
3277          return;
3278        }
3279        go({
3280          ...searchParams,
3281          page: pageNumber
3282        }, done);
3283      });
3284
3285      // Page number button click
3286      el.addEventListener('click', function (event) {
3287        let clickTarget = event.target;
3288        let current = clickTarget.closest('.J-paginationjs-page, .J-paginationjs-previous, .J-paginationjs-next');
3289        let pageNumber = current?.getAttribute('data-num');
3290        if (!pageNumber || current.classList.contains(disableClassName) || current.classList.contains(activeClassName)) {
3291          return;
3292        } else {
3293          go({
3294            ...searchParams,
3295            page: parseInt(pageNumber, 10)
3296          });
3297        }
3298        event.preventDefault();
3299      });
3300
3301      // Whether to load the default page
3302      var defaultPageNumber = searchParams.page;
3303      if (triggerPagingOnInit) {
3304        container.dispatchEvent(new CustomEvent(eventPrefix + 'go', {
3305          detail: {
3306            pageNumber: defaultPageNumber
3307          }
3308        }));
3309      }
3310    }
3311    window.addEventListener('popstate', function (event) {
3312      var newParams = Object.assign({}, DefaultSearchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId));
3313      if (!areQueryParamsEqual(newParams, searchParams)) {
3314        go(newParams, null, true);
3315        if (searchContainer) {
3316          syncSearchFormState(newParams);
3317        }
3318      }
3319    });
3320  }
3321  function replaceVariables(template, variables) {
3322    var formattedString;
3323    for (var key in variables) {
3324      var value = variables[key];
3325      var regexp = new RegExp('<%=\\s*' + key + '\\s*%>', 'img');
3326      formattedString = (formattedString || template).replace(regexp, value);
3327    }
3328    return formattedString;
3329  }
3330  function isTextEditorValue(obj) {
3331    return 'raw' in obj || 'gjs' in obj;
3332  }
3333  function getTextEditorValue(obj) {
3334    if (!obj.html) {
3335      return '';
3336    }
3337    var data = obj.html;
3338    var css = (obj.raw || obj.gjs || {}).css;
3339    if (css) {
3340      data = data + '<style>' + css + '</style>';
3341    }
3342    return data;
3343  }
3344
3345  /**
3346   * check rendered resources for html and raw properties that could indicate if resource is from an advanced text editor.
3347   * strips out raw proprties and returns only HTML if it exists.
3348   * @param {Object} resources a collection retrieved from the database
3349   * @return {Object} the newly modified object.
3350   */
3351  function recursivelyParse(resources) {
3352    forEach(resources, function (value, key) {
3353      if (!value) {
3354        return;
3355      }
3356      if (value instanceof Object) {
3357        if (isTextEditorValue(value)) {
3358          resources[key] = getTextEditorValue(value);
3359          return;
3360        } else {
3361          return recursivelyParse(value);
3362        }
3363      }
3364      try {
3365        var parsedData = JSON.parse(value);
3366        if (isTextEditorValue(parsedData)) {
3367          resources[key] = getTextEditorValue(parsedData);
3368        }
3369      } catch (e) {
3370        // do nothing if we failed to parse value as JSON
3371      }
3372    });
3373    return resources;
3374  }
3375  function forEach(collection, iteratee) {
3376    var func = Array.isArray(collection) ? arrayEach : baseFor;
3377    return func(collection, iteratee);
3378  }
3379  function baseFor(object, iteratee) {
3380    if (!object) {
3381      return;
3382    }
3383    var iterable = Object(object);
3384    var props = Object.keys(object);
3385    var length = props.length;
3386    var index = -1;
3387    while (length--) {
3388      var key = props[++index];
3389      if (iteratee(iterable[key], key, iterable) === false) {
3390        break;
3391      }
3392    }
3393    return object;
3394  }
3395  function objSet(obj, path, value) {
3396    const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g);
3397    pathArray.reduce((acc, key, i) => {
3398      if (acc[key] === undefined) acc[key] = {};
3399      if (i === pathArray.length - 1) acc[key] = value;
3400      return acc[key];
3401    }, obj);
3402  }
3403  function arrayEach(array, iteratee) {
3404    var index = -1;
3405    var length = array.length;
3406    while (++index < length) {
3407      if (iteratee(array[index], index, array) === false) {
3408        break;
3409      }
3410    }
3411    return array;
3412  }
3413  function selectPageRangeMode(e) {
3414    pageRange = e.matches ? mobilePageRange : desktopPageRange;
3415    renderPaginationList();
3416  }
3417  paginationMql.addEventListener('change', selectPageRangeMode);
3418})('section-da28ff70-b32c-4718-98b5-01a5d85656ab', JSON.parse("{\"pageSize\":\"10\",\"resource\":\"properties\",\"pageRange\":0,\"variables\":{\"limit\":10,\"order\":\"salesPrice\",\"offset\":0,\"sortDir\":\"ASC\",\"statusId\":\"{{variables.statusId}}\",\"companyId\":\"850552e9-2cd2-407f-a7ee-18f5819cdb5f\",\"categoryId\":\"{{pageElement.categoryId}}\",\"tag\":\"floorplan\",\"sort\":\"salesPrice\",\"propertyIds\":[\"3306e69c-88c6-40c5-ba51-228baeee8368\",\"7e44e3aa-39a1-4f8f-b2b0-a74116004be2\",\"621e3d10-5562-4b04-af27-5923ce4ae66b\",\"cd3614e1-b522-49d8-9fac-186d352a2333\",\"b588d15d-4ba7-45ca-b82a-9bc4df9a6943\"],\"websiteId\":\"5c8ab3ef-2f1d-45fe-9125-fcc3c56486bf\"},\"searchFormParams\":[{\"param\":\"search\",\"global\":true,\"urlKey\":\"search\"},{\"type\":\"int\",\"param\":\"salesPriceGTE\",\"global\":true,\"urlKey\":\"pricemin\"},{\"type\":\"int\",\"param\":\"salesPriceLTE\",\"global\":true,\"urlKey\":\"pricemax\"},{\"type\":\"int\",\"param\":\"livingSpaceSizeGTE\",\"global\":true,\"urlKey\":\"areamin\"},{\"type\":\"int\",\"param\":\"livingSpaceSizeLTE\",\"global\":true,\"urlKey\":\"areamax\"},{\"type\":\"int\",\"param\":\"bedroomCountGTE\",\"global\":true,\"urlKey\":\"bedmin\"},{\"type\":\"int\",\"param\":\"bedroomCountLTE\",\"global\":true,\"urlKey\":\"bedmax\"},{\"type\":\"int\",\"param\":\"bathCountGTE\",\"global\":true,\"urlKey\":\"bathmin\"},{\"type\":\"int\",\"param\":\"bathCountLTE\",\"global\":true,\"urlKey\":\"bathmax\"},{\"type\":\"string\",\"param\":\"neighborhoodId\",\"global\":true,\"urlKey\":\"neighborhoodId\"},{\"type\":\"string\",\"param\":\"propertyTypeId\",\"global\":true,\"urlKey\":\"propertyTypeId\"},{\"type\":\"string\",\"param\":\"sortDir\",\"global\":true,\"urlKey\":\"sortDir\"},{\"type\":\"string\",\"param\":\"seasonalPriceId\",\"global\":true,\"urlKey\":\"seasonalPriceId\"}],\"hidePaginationOnFirstPage\":true,\"companyId\":\"850552e9-2cd2-407f-a7ee-18f5819cdb5f\",\"usePageResource\":false,\"sectionIndex\":2,\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}"));
3419} catch(e) {
3420console.log(e);
3421}
3422                try {
3423(function init(sectionDomId) {
3424  const $section = $('#' + sectionDomId);
3425  const emptyResultElement = $('#' + sectionDomId + ' .empty-result');
3426  const searchContainer = $('#' + sectionDomId + ' .search-container');
3427  const dataContainer = $('#' + sectionDomId + ' .data-container');
3428  const priceSlider = searchContainer.find('input[name="price-slider"]');
3429  const areaSlider = searchContainer.find('input[name="area-slider"]');
3430  const bedsSlider = searchContainer.find('input[name="beds-slider"]');
3431  const bathsSlider = searchContainer.find('input[name="baths-slider"]');
3432  const priceMin = parseInt(priceSlider.attr('data-min'));
3433  const priceMax = parseInt(priceSlider.attr('data-max'));
3434  const areaMin = parseInt(areaSlider.attr('data-min'));
3435  const areaMax = parseInt(areaSlider.attr('data-max'));
3436  const rangeSliderInitialized = $(`#${sectionDomId} .search-item .irs`).length >= 1;
3437  const $inputs = $(`#${sectionDomId} .search-dropdown`);
3438  const $neighborhoodInput = $section.find('.neighborhood-select');
3439  const $seasonalPriceInput = $section.find('.seasonal-price-select');
3440  const $pricesortInput = $section.find('.price-sort');
3441  const $typesInput = $section.find('.property-type');
3442  const searchInput = $section.find('input[name="search-input"]');
3443  function onSearch() {
3444    let params = getFilterParams();
3445    searchContainer[0]?.dispatchEvent(new CustomEvent('search', {
3446      detail: params
3447    }));
3448  }
3449  function getFilterParams() {
3450    let params = {};
3451    params.salesPriceGTE = $(priceSlider).data('from') !== $(priceSlider).data('min') ? $(priceSlider).data('from') : null;
3452    params.salesPriceLTE = $(priceSlider).data('to') !== $(priceSlider).data('max') ? $(priceSlider).data('to') : null;
3453    params.livingSpaceSizeGTE = $(areaSlider).data('from') !== $(areaSlider).data('min') ? $(areaSlider).data('from') : null;
3454    params.livingSpaceSizeLTE = $(areaSlider).data('to') !== $(areaSlider).data('max') ? $(areaSlider).data('to') : null;
3455    params.bedroomCountGTE = $(bedsSlider).data('from') !== $(bedsSlider).data('min') ? $(bedsSlider).data('from') : null;
3456    params.bedroomCountLTE = $(bedsSlider).data('to') !== $(bedsSlider).data('max') ? $(bedsSlider).data('to') : null;
3457    params.bathCountGTE = $(bathsSlider).data('from') !== $(bathsSlider).data('min') ? $(bathsSlider).data('from') : null;
3458    params.bathCountLTE = $(bathsSlider).data('to') !== $(bathsSlider).data('max') ? $(bathsSlider).data('to') : null;
3459    params.neighborhoodId = $neighborhoodInput.data('selected');
3460    params.seasonalPriceId = $seasonalPriceInput.data('selected');
3461    params.sortDir = $pricesortInput.data('selected');
3462    params.propertyTypeId = $typesInput.data('selected');
3463    params.search = searchInput.val() == "" || undefined ? null : searchInput.val();
3464    return params;
3465  }
3466  searchContainer.on('rental-rates-data', function (ev) {
3467    const rentalRates = ev?.detail?.data || [];
3468    if (rentalRates.length) {
3469      $seasonalPriceInput.removeClass('hidden');
3470    } else {
3471      $seasonalPriceInput.addClass('hidden');
3472    }
3473    rentalRates.forEach(item => {
3474      $seasonalPriceInput.find('.dropdown').append(`<div class="option" data-id="${item.rentalRateId}" data-name="${item.label}">${item.label}</div>`);
3475    });
3476    const DEFAULT_LABEL_TEXT = $seasonalPriceInput.find('.label span').text();
3477    $seasonalPriceInput.find('.option').click(evt => {
3478      $seasonalPriceInput.find('.option').removeClass('selected');
3479      if ($seasonalPriceInput.data('selected') !== $(evt.target).data('id')) {
3480        $seasonalPriceInput.data('selected', $(evt.target).data('id'));
3481        $seasonalPriceInput.find('.dropdown .reset').removeClass('hidden');
3482        $seasonalPriceInput.find('.label span').text($(evt.target).data('name'));
3483        $(evt.target).addClass('selected');
3484      } else {
3485        $seasonalPriceInput.data('selected', null);
3486        $seasonalPriceInput.find('.reset').addClass('hidden');
3487        $seasonalPriceInput.find('.label span').text(DEFAULT_LABEL_TEXT);
3488      }
3489      onSearch();
3490    });
3491    if (rentalRates.length > 5) $seasonalPriceInput.find('.dropdown').css("overflow-y", "scroll");
3492    const searchParamsId = new URLSearchParams(window.location.search).get('seasonalPriceId');
3493    if (searchParamsId) {
3494      updateSeasonalPrice(searchParamsId);
3495    }
3496  });
3497  searchInput.on('input', window.luxuryPresence.debounce(onSearch, 1000));
3498  searchContainer.on('sync', function (ev, params) {
3499    params = ev.detail || params;
3500    priceSlider.data('ionRangeSlider').update({
3501      from: params.salesPriceGTE,
3502      to: params.salesPriceLTE
3503    });
3504    areaSlider.data('ionRangeSlider').update({
3505      from: params.livingSpaceSizeGTE,
3506      to: params.livingSpaceSizeLTE
3507    });
3508    bathsSlider.data('ionRangeSlider').update({
3509      from: params.bathCountGTE,
3510      to: params.bathCountLTE
3511    });
3512    bedsSlider.data('ionRangeSlider').update({
3513      from: params.bedroomCountGTE,
3514      to: params.bedroomCountLTE
3515    });
3516    searchInput.val(params.search);
3517    updateNeighborhoods(params.neighborhoodId);
3518    updateSeasonalPrice(params.seasonalPriceId);
3519    updateTypes(params.neighborhoodId);
3520    updatePrice(params.neighborhoodId);
3521  });
3522  dataContainer.on('no-data', function () {
3523    emptyResultElement.show();
3524  });
3525  dataContainer.on('data', function () {
3526    emptyResultElement.hide();
3527  });
3528  $inputs.on('click', function (evt) {
3529    let el = $(evt.target).closest('.search-dropdown');
3530    let ddHidden = el.find('.dropdown').hasClass('hidden');
3531    $inputs.find('.dropdown').addClass('hidden');
3532    $inputs.removeClass('active');
3533    if (!ddHidden) {
3534      el.find('.dropdown').addClass('hidden');
3535      el.removeClass('active');
3536    } else {
3537      el.find('.dropdown').removeClass('hidden');
3538      el.addClass('active');
3539    }
3540  });
3541  $(document.body).click(function (evt) {
3542    if (!$(evt.target).closest('#' + sectionDomId + ' .search-dropdown').length) {
3543      $inputs.find('.dropdown').addClass('hidden');
3544      $inputs.removeClass('active');
3545    }
3546  });
3547  $(document).on("click", '#' + sectionDomId + ' .property-list__share .btn', function () {
3548    if ($(this).parent().hasClass('property-list__share--opened')) {
3549      $(this).parent().removeClass('property-list__share--opened');
3550    } else {
3551      $('#' + sectionDomId + ' .property-list__share').removeClass('property-list__share--opened');
3552      $(this).parent().addClass('property-list__share--opened');
3553    }
3554  });
3555  $pricesortInput.find('.dropdown .option').click(evt => {
3556    $pricesortInput.find('.dropdown .option').each((i, e) => {
3557      $(e).removeClass('selected');
3558    });
3559    if ($pricesortInput.data('selected') !== $(evt.target).data('value')) {
3560      $pricesortInput.data('selected', $(evt.target).data('value'));
3561      $pricesortInput.find('.dropdown .reset').removeClass('hidden');
3562      $pricesortInput.find('.label span').html($(evt.target).data('name'));
3563      $(evt.target).addClass('selected');
3564    } else {
3565      $pricesortInput.data('selected', null);
3566      $pricesortInput.find('.reset').addClass('hidden');
3567      $pricesortInput.find('.label span').html('Sort by Price');
3568    }
3569    onSearch();
3570  });
3571  $typesInput.find('.dropdown .option').click(evt => {
3572    $typesInput.find('.dropdown .option').each((i, e) => {
3573      $(e).removeClass('selected');
3574    });
3575    if ($typesInput.data('selected') !== $(evt.target).data('value')) {
3576      $typesInput.data('selected', $(evt.target).data('value'));
3577      $typesInput.find('.dropdown .reset').removeClass('hidden');
3578      $typesInput.find('.label span').html($(evt.target).data('name'));
3579      $(evt.target).addClass('selected');
3580    } else {
3581      $typesInput.data('selected', null);
3582      $typesInput.find('.reset').addClass('hidden');
3583      $typesInput.find('.label span').html('Sort by Property Type');
3584    }
3585    onSearch();
3586  });
3587  function populateNeighborhoods() {
3588    getLocations().then(res => {
3589      res.forEach(n => {
3590        $section.find('.neighborhood-select .dropdown').append(`<div class="option" data-id="${n.id}" data-name="${n.name}">${n.name}</div>`);
3591      });
3592      $neighborhoodInput.find('.dropdown .option').click(evt => {
3593        $neighborhoodInput.find('.dropdown .option').each((i, e) => {
3594          $(e).removeClass('selected');
3595        });
3596        if ($neighborhoodInput.data('selected') !== $(evt.target).data('id')) {
3597          $neighborhoodInput.data('selected', $(evt.target).data('id'));
3598          $neighborhoodInput.find('.dropdown .reset').removeClass('hidden');
3599          $neighborhoodInput.find('.label span').html($(evt.target).data('name'));
3600          $(evt.target).addClass('selected');
3601        } else {
3602          $neighborhoodInput.data('selected', null);
3603          $neighborhoodInput.find('.reset').addClass('hidden');
3604          $neighborhoodInput.find('.label span').html('Select Neighborhood');
3605        }
3606        onSearch();
3607      });
3608      if (res.length > 5) $neighborhoodInput.find('.dropdown').css("overflow-y", "scroll");
3609      const id = new URLSearchParams(window.location.search).get('neighborhoodId');
3610      updateNeighborhoods(id);
3611    });
3612  }
3613  function getLocations() {
3614    var url = window.luxuryPresence.defaults.apiGatewayUrl;
3615    var gqlQuery = 'query ($companyId: String) {' + 'neighborhoods (companyId: $companyId) {id, name, mlsLink}}';
3616    var payload = {
3617      offset: 0,
3618      companyId: window.luxuryPresence.defaults.companyId
3619    };
3620    return superagent.post(url + '/graphql').withCredentials().send({
3621      query: gqlQuery,
3622      variables: payload
3623    }).then(function (res) {
3624      return (res.body.data || {}).neighborhoods || [];
3625    }, function (err) {
3626      return [];
3627    });
3628  }
3629  function updateNeighborhoods(id) {
3630    $neighborhoodInput.data('selected', id);
3631    let opt = $neighborhoodInput.find(`div[data-id='${id}']`);
3632    $neighborhoodInput.find('.label span').html(opt.data("name"));
3633    opt.addClass("selected");
3634    reset($neighborhoodInput.find('.dropdown').data("default"), $neighborhoodInput);
3635  }
3636  function updateSeasonalPrice(id) {
3637    $seasonalPriceInput.data('selected', id);
3638    let opt = $seasonalPriceInput.find(`.option[data-id='${id}']`);
3639    $seasonalPriceInput.find('.label span').text(opt.data("name"));
3640    opt.addClass("selected");
3641    reset($seasonalPriceInput.find('.dropdown').data("default"), $seasonalPriceInput);
3642  }
3643  function updateTypes(id) {
3644    $typesInput.data('selected', id);
3645    let opt = $typesInput.find(`div[data-value='${id}']`);
3646    $typesInput.find('.label span').html(opt.data("name"));
3647    opt.addClass("selected");
3648    reset($typesInput.find('.dropdown').data("default"), $typesInput);
3649  }
3650  function updatePrice(id) {
3651    $pricesortInput.data('selected', id);
3652    let opt = $pricesortInput.find(`div[data-value='${id}']`);
3653    $pricesortInput.find('.label span').html(opt.data("name"));
3654    opt.addClass("selected");
3655    reset($pricesortInput.find('.dropdown').data("default"), $pricesortInput);
3656  }
3657  populateNeighborhoods();
3658  $section.find('.reset').click(evt => {
3659    reset($(evt.target).parent().data("default"), $(evt.target).parent().parent());
3660    onSearch();
3661  });
3662  function reset(text, input) {
3663    input.find('.reset').addClass('hidden');
3664    input.data('selected', null);
3665    input.find('.dropdown .option').each((i, e) => {
3666      $(e).removeClass('selected');
3667    });
3668    input.find('.label span').html(text);
3669  }
3670  $section.find('.clear-btn').click(function () {
3671    [$neighborhoodInput, $typesInput, $pricesortInput, $seasonalPriceInput].forEach(e => {
3672      reset(e.find('.dropdown').data("default"), e);
3673    });
3674    searchContainer[0]?.dispatchEvent(new Event('clear-search'));
3675  });
3676  if (rangeSliderInitialized) {
3677    if (!priceSlider.destroy) {
3678      $(`#${sectionDomId} .search-item.price >.irs`).remove();
3679      initPriceSlider();
3680    }
3681    if (!areaSlider.destroy) {
3682      $(`#${sectionDomId} .search-item.area >.irs`).remove();
3683      initAreaSlider();
3684    }
3685    if (!bedsSlider.destroy) {
3686      $(`#${sectionDomId} .search-item.beds >.irs`).remove();
3687      initBedsSlider();
3688    }
3689    if (!bathsSlider.destroy) {
3690      $(`#${sectionDomId} .search-item.baths >.irs`).remove();
3691      initBathsSlider();
3692    }
3693  } else {
3694    initPriceSlider();
3695    initAreaSlider();
3696    initBedsSlider();
3697    initBathsSlider();
3698  }
3699  function initPriceSlider() {
3700    priceSlider.ionRangeSlider({
3701      type: "double",
3702      skin: 'round',
3703      grid: false,
3704      force_edges: false,
3705      hide_min_max: false,
3706      hide_from_to: false,
3707      block: false,
3708      prettify: function (val) {
3709        return window.luxuryPresence.formatSliderPriceRange(val, {
3710          min: priceMin,
3711          max: priceMax
3712        }, "", {
3713          lowPrefix: "",
3714          highSuffix: ""
3715        });
3716      },
3717      onFinish: onSearch
3718    });
3719  }
3720  function initAreaSlider() {
3721    areaSlider.ionRangeSlider({
3722      type: "double",
3723      skin: 'round',
3724      grid: false,
3725      force_edges: false,
3726      hide_min_max: false,
3727      hide_from_to: false,
3728      block: false,
3729      prettify: function (val) {
3730        return window.luxuryPresence.formatSliderAreaRange(val, {
3731          min: areaMin,
3732          max: areaMax
3733        }, "SF", {
3734          lowPrefix: "<",
3735          highSuffix: "+"
3736        });
3737      },
3738      onFinish: onSearch
3739    });
3740  }
3741  function initBedsSlider() {
3742    bedsSlider.ionRangeSlider({
3743      type: "double",
3744      skin: 'round',
3745      grid: false,
3746      force_edges: false,
3747      hide_min_max: false,
3748      hide_from_to: false,
3749      block: false,
3750      prettify: function (val) {
3751        return val <= 1 ? `<1 BED MIN` : `${val} BEDS`;
3752      },
3753      onFinish: onSearch
3754    });
3755  }
3756  function initBathsSlider() {
3757    bathsSlider.ionRangeSlider({
3758      type: "double",
3759      skin: 'round',
3760      grid: false,
3761      force_edges: false,
3762      hide_min_max: false,
3763      hide_from_to: false,
3764      block: false,
3765      prettify: function (val) {
3766        return val <= 1 ? `<1 BATH MIN` : `${val} BATHS`;
3767      },
3768      onFinish: onSearch
3769    });
3770  }
3771})('section-da28ff70-b32c-4718-98b5-01a5d85656ab', JSON.parse("{\"resource\":\"properties\",\"useRouterApi\":false,\"companyId\":\"850552e9-2cd2-407f-a7ee-18f5819cdb5f\",\"usePageResource\":false,\"sectionIndex\":2,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}"));
3772} catch(e) {
3773console.log(e);
3774}
3775                try {
3776(function init(sectionDomId) {
3777  var $section = $('#' + sectionDomId);
3778  $section.find('.media-card__description').each(function () {
3779    var $desc = $(this);
3780    var fullHtml = $desc.html();
3781    var text = $desc.text();
3782    if (text.length > 188) {
3783      var substring = text.substring(0, 188);
3784      $desc.empty().append(`<span class="substring">${substring}... <a class="btn-more">VIEW MORE</a></span>`).append(`<div class="more-text">${fullHtml} <a class="btn-more">VIEW LESS</a></div>`);
3785      $desc.addClass('cropped');
3786    }
3787  });
3788  $section.find('.btn-more').on('click', function (e) {
3789    e.preventDefault();
3790    $(this).closest('.media-card__description').toggleClass('cropped');
3791  });
3792})('section-3bd492d6-c0b9-4b2b-acf6-883219de6476', 'undefined');
3793} catch(e) {
3794console.log(e);
3795}
3796                try {
3797(function init(sectionDomId) {
3798  const $section = $('#' + sectionDomId);
3799  if ($section.find('.parallax').length) $section.addClass('parallax-enabled');
3800  if ($section.find('.video-wrapper').length) $section.addClass('video');
3801})('section-ac7b98db-fd2c-445d-a1fd-0d9a94bda4f5', 'undefined');
3802} catch(e) {
3803console.log(e);
3804}
3805                try {
3806(function init(sectionDomId, options) {
3807  let section = null;
3808  switch (sectionDomId) {
3809    case 'NAVBAR':
3810      section = document.querySelector('body > nav, #global-navbar');
3811      break;
3812    case 'FOOTER':
3813      section = document.querySelector('body > footer, #global-footer');
3814      break;
3815    case 'SIDEMENU':
3816      section = document.querySelector('body > div.sidemenu, #global-sidemenu');
3817      break;
3818    case 'CONTACT':
3819      section = document.querySelector('#modal-global-contact-us');
3820      break;
3821    case 'MOBILE_CONTACT':
3822      section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact');
3823      break;
3824    case 'SUBSCRIBE':
3825      // Subscribe Not Implemented
3826      section = null;
3827      break;
3828    case 'ACCOUNT':
3829      // Account Not Implemented
3830      section = null;
3831      break;
3832    default:
3833      section = document.querySelector('#' + sectionDomId);
3834  }
3835  if (!section) {
3836    return;
3837  }
3838  var url = window.luxuryPresence.defaults.routerUrl;
3839  var companyId = window.luxuryPresence.defaults.companyId;
3840  var limit = options.limit || 8;
3841  if (typeof limit === 'string') {
3842    limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected
3843  }
3844  var templateSelector = options.templateSelector || '.jsIGTemplate';
3845  var containerSelector = options.containerSelector || '.jsIGContainer';
3846  var hasDataClass = options.hasDataClass || 'has-data';
3847  var hideActivateMessage = options.hasDataClass || false;
3848  var payload = {
3849    companyId: companyId,
3850    limit: limit
3851  };
3852  if (options.resourceId && typeof options.resourceId === 'string' && !
3852options.resourceId.match(/^{{.*}}$/)) {
3853    payload.resourceId = options.resourceId;
3854    // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase
3855    payload.resource = String(options.resource || 'agent').toUpperCase();
3856    payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true;
3857  }
3858  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';
3859  var templateHTML = section.querySelector(templateSelector)?.innerHTML || '';
3860  var template = Handlebars.compile(templateHTML);
3861  var container = section.querySelector(containerSelector);
3862  if (options.variables) {
3863    Object.keys(options.variables).forEach(function (key) {
3864      if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) {
3865        payload[key] = options.variables[key];
3866      }
3867    });
3868  }
3869  function getData() {
3870    var feed = {
3871      error: true
3872    };
3873    if (payload.companyId == null || payload.companyId === '') {
3874      // instagramContentFeed requires companyId (ID!) — nothing to fetch without it.
3875      // Checked after the options.variables merge, which may override the default.
3876      // Deferred so element listeners (attached after this template runs) still receive it.
3877      setTimeout(function () {
3878        section.dispatchEvent(new CustomEvent('ig-data', {
3879          detail: feed
3880        }));
3881      }, 0);
3882      return;
3883    }
3884    superagent.post(url + '/graphql').send({
3885      query: query,
3886      variables: payload
3887    }).then(res => {
3888      try {
3889        if (!res.body.errors) {
3890          feed = res.body.data.instagramContentFeed;
3891          if (!feed.active) {
3892            if (!hideActivateMessage && sectionDomId === 'section-temp' && container) {
3893              if (payload.resourceId) {
3894                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>';
3895              } else {
3896                container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>';
3897              }
3898            }
3899          } else {
3900            if (feed.items.length) {
3901              if (hasDataClass) {
3902                section.classList.add(hasDataClass);
3903              }
3904              const feedName = feed.username;
3905              section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl));
3906              section.querySelectorAll('.jsIGName').forEach(name => {
3907                name.textContent = '@' + feedName;
3908                name.setAttribute('title', '@' + feedName);
3909              });
3910              if (container && template) {
3911                container.innerHTML = template(feed);
3912              }
3913            }
3914          }
3915        }
3916      } catch (e) {}
3917      section.dispatchEvent(new CustomEvent('ig-data', {
3918        detail: feed
3919      }));
3920    }).catch(e => {
3921      console.log('err', e);
3922      section.dispatchEvent(new CustomEvent('ig-data', {
3923        detail: feed
3924      }));
3925    });
3926  }
3927  getData();
3928})('section-739c3d68-8237-4212-b354-6f93e6c00751', JSON.parse("{\"limit\":33,\"resource\":\"agent\",\"resourceId\":\"\",\"fallbackToNoResource\":\"true\",\"companyId\":\"850552e9-2cd2-407f-a7ee-18f5819cdb5f\",\"usePageResource\":false,\"sectionIndex\":5,\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}"));
3929} catch(e) {
3930console.log(e);
3931}
3932                try {
3933(function init(sectionDomId) {
3934  const $section = $('#' + sectionDomId);
3935  var templateHTML = $section.find('.jsIGItem').html();
3936  var itemTemplate = templateHTML && Handlebars.compile(templateHTML);
3937  const $container = $section.find('.ig-feed-feed');
3938  const $topPrev = $section.find('.top-nav-prev');
3939  const $topNext = $section.find('.top-nav-next');
3940  const $bottomPrev = $section.find('.bottom-nav-prev');
3941  const $bottomNext = $section.find('.bottom-nav-next');
3942  let limit = 33;
3943  try {
3944    limit = parseInt($container[0].dataset['limit']);
3945  } catch (e) {}
3946  if (!limit) {
3947    limit = 33;
3948  }
3949  let igFeed = {};
3950  let usedWidth = 0;
3951  let slider = null;
3952  $section.on('ig-data', function (ev, feed) {
3953    feed = ev.detail || feed;
3954    igFeed = feed;
3955    if (feed.active && feed.items.length) {
3956      buildSlider();
3957    }
3958  });
3959  $(window).on('resize.lpui-auto-clean', onResize);
3960  let timer = null;
3961  function onResize() {
3962    clearTimeout(timer);
3963    timer = window.setTimeout(buildSlider, 50);
3964  }
3965  function getLayout(w, n) {
3966    if (w > 1100) {
3967      if (n > 7) {
3968        return {
3969          type: 'type1',
3970          single: 1,
3971          multi: n,
3972          slides: 3,
3973          slider: n > 9
3974        };
3975      }
3976      if (n > 5) {
3977        return {
3978          type: 'type1',
3979          single: 2,
3980          multi: n,
3981          slides: 3,
3982          slider: false
3983        };
3984      }
3985      return {
3986        type: 'type1',
3987        single: n,
3988        multi: n,
3989        slides: 3,
3990        slider: n > 3
3991      };
3992    } else if (w > 880) {
3993      if (n > 4) {
3994        return {
3995          type: 'type2',
3996          single: 1,
3997          multi: n,
3998          slides: 2.5,
3999          slider: n > 7
4000        };
4001      }
4002      return {
4003        type: 'type1',
4004        single: n,
4005        multi: n,
4006        slides: 3,
4007        slider: n > 3
4008      };
4009    } else if (w > 767) {
4010      if (n > 4) {
4011        return {
4012          type: 'type3',
4013          single: 1,
4014          multi: n,
4015          slides: 2,
4016          slider: n > 5
4017        };
4018      }
4019      return {
4020        type: 'type4',
4021        single: n,
4022        multi: n,
4023        slides: 2,
4024        slider: n > 2
4025      };
4026    } else if (w > 460) {
4027      return {
4028        type: 'type4',
4029        single: n,
4030        multi: n,
4031        slides: 2,
4032        slider: n > 2
4033      };
4034    }
4035    return {
4036      type: 'type5',
4037      single: n,
4038      multi: n,
4039      slides: 1,
4040      slider: n > 1
4041    };
4042  }
4043  function ensureClass($el, className) {
4044    if ($el.hasClass(className)) {
4045      return;
4046    }
4047    $el.addClass(className);
4048  }
4049  function makeSquare($el) {
4050    const el = $el[0];
4051    el.style.width = '';
4052    el.style.height = '';
4053    const rect = el.getBoundingClientRect();
4054    if (rect.width !== rect.height) {
4055      el.style.width = rect.height + 'px';
4056    }
4057  }
4058  function buildSlider() {
4059    const cWidth = $container[0].getBoundingClientRect().width;
4060    if (cWidth === usedWidth) {
4061      return;
4062    }
4063    $container.empty();
4064    slider = $('<div class="ig-feed-slider"></div>');
4065    const items = igFeed.items.slice(0, limit);
4066    const layout = getLayout(cWidth, items.length);
4067    let i = 0;
4068    let slide = null;
4069    while (i < layout.single) {
4070      slide = $(`<div class="slide-single ${layout.type}"></div>`).append(itemTemplate(items[i])).appendTo(slider);
4071      i++;
4072    }
4073    while (i < layout.multi) {
4074      slide = $(`<div class="slide-multi ${layout.type}"></div>`).appendTo(slider);
4075      let slideContent = $('<div class="slide-multi-content"></div>').appendTo(slide);
4076      const lim = i + 4;
4077      while (i < lim && i < layout.multi) {
4078        slideContent.append(itemTemplate(items[i]));
4079        i++;
4080      }
4081    }
4082    $container.append(slider);
4083    if (layout.slider) {
4084      $topPrev.removeClass('hidden-control');
4085      $topNext.removeClass('hidden-control');
4086      $bottomPrev.removeClass('hidden-control');
4087      $bottomNext.removeClass('hidden-control');
4088      let prev, next;
4089      if ($bottomPrev.parent()[0].getBoundingClientRect().width) {
4090        prev = $bottomPrev;
4091        next = $bottomNext;
4092      } else {
4093        prev = $topPrev;
4094        next = $topNext;
4095        makeSquare($topPrev);
4096        makeSquare($topNext);
4097      }
4098      slider.children().each(function () {
4099        this.style.width = this.getBoundingClientRect().width + 'px';
4100      });
4101      slider.slick({
4102        dots: false,
4103        prevArrow: prev,
4104        nextArrow: next,
4105        slidesToScroll: 1,
4106        infinite: false,
4107        slidesToShow: layout.slides
4108      });
4109    } else {
4110      ensureClass($topPrev, 'hidden-control');
4111      ensureClass($topNext, 'hidden-control');
4112      ensureClass($bottomPrev, 'hidden-control');
4113      ensureClass($bottomNext, 'hidden-control');
4114    }
4115  }
4116})('section-739c3d68-8237-4212-b354-6f93e6c00751', JSON.parse("{\"resource\":\"agent\",\"useRouterApi\":false,\"companyId\":\"850552e9-2cd2-407f-a7ee-18f5819cdb5f\",\"usePageResource\":false,\"sectionIndex\":5,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}"));
4117} catch(e) {
4118console.log(e);
4119}
4120
4121            var { body } = document;
4122            var globalNav = body.querySelector(':scope > nav');
4123            var globalSideMenu = body.querySelector(':scope > div.sidemenu');
4124
4125            document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => {
4126                modalCloseBtn.addEventListener('click', function() {
4127                window.lpUI.hideClosestModal(modalCloseBtn);
4128              });
4129            });
4130
4131            window.addEventListener('click', function() {
4132                document.querySelectorAll('.share-popup').forEach(sharedPopup => {
4133                    sharedPopup.style.display = 'none' ;
4134                });
4135            });
4136
4137            /* Misc Partials / Addons */
4138            function initWOW() {
4139                if (wow) {
4140                    wow.init();
4141                    wow.scrollHandler();
4142                    setTimeout(function () {
4143                        const wowHideStyle = document.getElementById('wow-hide-elements');
4144                        if(wowHideStyle) {
4145                            wowHideStyle.disabled = true;
4146                        }
4147                    }, 1);
4148                }
4149            }
4150
4151            const wowHideElements =  document.getElementById('wow-hide-elements');
4152            if (wowHideElements) {
4153               wowHideElements.disabled = false;
4154            }
4155
4156                initWOW();
4157
4158            /* Generic Navbar Handling */
4159            globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => {
4160                hamburgerComponent.addEventListener('click', function() {
4161                window.lpUI.sideMenuToggle();
4162              });
4163            });
4164            globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => {
4165                toggleEl.addEventListener('click', function() {
4166                window.lpUI.sideMenuToggle();
4167              });
4168            });
4169
4170            document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => {
4171                linkEl.addEventListener('click', function(e) {
4172                  e.preventDefault();
4173                  e.stopPropagation();
4174                  var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav');
4175                  if (subNav && subNav.classList.contains('visible')){
4176                    subNav.classList.remove('visible');
4177                  } else {
4178                    globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => {
4179                      globalSubNav.classList.remove('visible');
4180                    });
4181                    globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => {
4182                        sideMenuSubNav.classList.remove('visible');
4183                    });
4184                    subNav?.classList.add('visible');
4185                  }
4186                });
4187            });
4188            window.addEventListener('click', function() {
4189                document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => {
4190                    subNavEl.classList.remove('visible');
4191                });
4192            });
4193
4194        }
4195
4196        document.addEventListener('DOMContentLoaded', lpGlobalInit);
4197
4198    </script>
4198
4199
4200    
4200<script type="module">
4201    function selectorExists(selector) {
4202        return document.querySelector(selector) !== null;
4203    }
4204
4205    // Function to initialize the third-party library
4206    function initParoller(selector = '.my-paroller') {
4207        var $parollerElements = $(selector);
4208        if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') {
4209            $parollerElements.paroller();
4210        }
4211    }
4212
4213    const parollerSelector = '.my-paroller';
4214
4215    if (selectorExists(parollerSelector)) {
4216        window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() {
4217            initParoller(parollerSelector);
4218            window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true;
4219        });
4220    }
4221    </script>
4221
4222
4223            <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 4223-4224
4223
4224            <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
4224GTM-T9SFQGHZ
vendor: 107 bytes, lines 4224-4226
4224"
4225            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
4226            
4226<!-- End Google Tag Manager -->
4227        
4227<script>
4228    window.addEventListener('load', function() {
4229        var myInterval = setInterval(function() {
4230            var buttonSelector = document.querySelector('button.submitButton');
4231
4232            if (buttonSelector) {
4233                buttonSelector.addEventListener('click', function() {
4234                    gtag('event', 'ContactFormSubmission', {'send_to': 'G-JP7X59867S'});
4235                })
4236                clearInterval(myInterval);
4237            };
4238        }, 3000);
4239    });
4240</script>
4240
4241
4242<script>
4243    window.addEventListener('load', function() {
4244        document.querySelectorAll('a[href^=tel]').forEach(function(link) {
4245            link.addEventListener('click', function() {
4246                gtag('event', 'PhoneClick', {'send_to': 'G-JP7X59867S'});
4247            });
4248        });
4249    });
4250</script>
4250
4251            
4251<script
4252                src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js"
4253                data-website-id="5c8ab3ef-2f1d-45fe-9125-fcc3c56486bf"
4254                
4255                defer></script>
vendor: 1 bytes, line 4255
4255
4256<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:'a47472ebefa2b07e',t:'MTc5MTQ1NTIwMw=='};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>
4256<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>
4256
4257</body>
4258</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.