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>Get in Touch | Ricardo Rodriguez & Associates</title> 10 <meta property="og:title" content="Get in Touch | Ricardo Rodriguez & Associates"> 11 <meta name="twitter:title" content="Get in Touch | Ricardo Rodriguez & Associates"> 12 <meta name="description" content="Get in touch with Ricardo Rodriguez & Associates to start your home buying or selling journey with trusted local experts."> 13 <meta property="og:description" content="Get in touch with Ricardo Rodriguez & Associates to start your home buying or selling journey with trusted local experts."> 14 <meta name="twitter:description" content="Get in touch with Ricardo Rodriguez & Associates to start your home buying or selling journey with trusted local experts."> 15 <meta property="og:url" content="https://ricardohome.com/contact"> 16 <link rel="canonical" href="https://ricardohome.com/contact"> 17
17<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
17 18 <link rel="preconnect" href="https://fonts.googleapis.com"> 19 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 20 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Playfair%20Display:400,500,600,700,800,900,400i,500i,600i,700i,800i,900i"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:100,200,300,400,500,600,700,800,900"> 21 <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'"> 22 <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript> 23 <link rel="icon" type="image/x-icon" href="/favicon.ico"> 24 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 25 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 26 <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"> 27 <style id="global-css">:root{--global-primary-font-family:'Playfair Display',serif;--global-primary-font-family-short:Playfair Display;--global-secondary-font-family:Inter,sans-serif;--global-secondary-font-family-short:Inter;--global-body-padding:0px;--global-background-color:#fff;--global-body-font-size:15px;--global-h1-font-size:64px;--global-h2-font-size:40px;--global-h3-font-size:30px;--global-h4-font-size:24px;--global-h5-font-size:12px;--global-h6-font-size:32px;--global-section-padding:96px;}@media (max-width: 768px){:root{--global-section-padding:64px;}}body{padding:0px;background-color:#fff;font-family:Inter,sans-serif;font-size:15px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:'Playfair Display',serif;}h1{font-size:64px;}h2{font-size:40px;}h3{font-size:30px;}h4{font-size:24px;}h5{font-size:12px;}h6{font-size:32px;}</style> 28 <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/visionary/index.css" /> 29 <style id="website-css">@media(max-width:769px){.custom-title-container .signature.mobile{left:0;right:0;bottom:-7px;text-align:left!important;}}#global-mobile-contact>div>div.floating-contact-button-pop-up.js-pop-up{border:1px solid #000;border-radius:15px;}.mobile-contact-wrapper{position:fixed;z-index:101!important;}@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Rouge+Script&display=swap');@font-face{font-family:'Northwell';src:url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1770746680939-roucx6ja/northwell.woff2') format('woff2'),url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1770746680939-roucx6ja/northwell.woff') format('woff');font-weight:400;font-style:normal;font-display:swap;}:root{--custom-h1-size:140px;--custom-h2-size:80px;--custom-h3-size:50px;--global-h4-font-size:32px;--global-h5-font-size:24px;--global-h6-font-size:20px;--lp-body-font-weight:400;--custom-dark:#101010;--custom-white:#FFFFFF;--custom-off-white:#F8F7F6;--custom-dark-brown:#6E6359;--custom-brown-1:#8D8379;--custom-brown-2:#9D998F;--custom-beige-2:#DBD6D2;--custom-beige:#EAE6E0;--custom-text-dark:#7A7A7A;--custom-brown-op:rgba(110, 99, 89, .24);--custom-quote-icon:url("data:image/svg+xml,%3Csvg version='1.2' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 135 98' width='135' height='98'%3E%3Cdefs%3E%3Cimage width='226' height='226' id='img1' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOIAAADiCAMAAABkzuvlAAAAAXNSR0IB2cksfwAAAqNQTFRF////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAynk2PwAAAOF0Uk5TAAAsU
29QpbGBVvzv/3GQFAnvOQA1Cy+/RNHoLgvxF28IMUPq38wEcrmPXsehAIYc+4OIANDHjrPYjvyERBlxfZN8KzKAt88mwEJmfn+YcPjvprRdMlAmUWIbHhUjHYPAd7/Y3URt/QNA6bjOLcNpWhBf61WCPKc1PxTtcnNX7BYPhXMqgG9jB1H+Qkkoou5qmZ7S27rDm+xQnJWTOqaErbrpTSxKTaHJac3iAqp1UT6a8/L2YionDohupDw6W8bu5qj7nNaXTMkyl/YrobTMZJ3aZ3S3kafYtIEuOEVMdkcjuFbkeVZwAACdRJREFUeJztnHtcVUUewGdE0YVriSF2sV30s1oJq4aK20IpaMhS7ELeusvia+1xtYfk8pFw3STEIM2sECTCx7qalogiSptKiyzGuoYpWUb5aFndzTTd5VPZ5+OjXM8593HunMc9v+tnzr07O99/ZvidmR/nyz33PGbmgBHz4EDvAH24IgtwRRbgiizAFVmAK7IAV2QBrsgCXJEFuCILcEUW4IoswBVZgCuyAFdkAa7IAlyRBbgiC3BFFuCKLMAVWYArsgBXZAGuyAJckQW4IgtwRRbgiizAFVmAK7IAV2QBrsgCMMXr/oNg/P31pgjB+BLsd1JsTRKKBS5cTwrLtQSXev4H1Mc0xQjJzoLP+p+jP8ZdQqp/gXqZpDgAfyfsXCTG//A3BRqI8elrRTQ+fhXUzxTFIRifvFbEYPyxfwkQisP4uJjqq06Egk5xxNVjQhF5Ez7kT3eBkRgfEcrovm1CEWSKvXuLJwfLoG/8/gRjQ3seFsoReJ8UCCrFxDOfC4XVit+FdnUxoN/5c0I5utV9vQkixbH4PbH8Kd4D6+hhPMatQhkXgXe7g0GjmHb0C7Ec3Pk16JfImNgNNwtlCsYNsnCQKMb+GDcK5fCbW2BXahlZeKdYDhm81SseFIo23CmeAlGPtM2g3yDDjreLZSZ+g9gSDIo5n30glpPw66D8MqbiWtHEjtd/R24LvGLIvX1rhNIaeeEIKL2MhFulYzP74AfKjQFXfAhvFMvJeCUouQxH8ymxDO+eul5lc4AV48eskyrTL6jtnSGyrGvFcgZeobo9sIq97dJHmGxdA8osY3zsaqnySOtB9RaBVMw9MbharMyshD22ysg5dUAsk4a9rNUkgIp5uFKq3Hb8G1BeD5ZZH0t3QpM+174jCpxiPi4Xy6RRS0BZZQwYsl+qhNmqtVsFSjF33UWp8hR+HpRUxvwz0jcZ5ZXpHQYBUrwreZlUie7p91PTArxULFMSFuq2C4xi0Sf1UmUeLgSl9BBx1XkYzN7Tpt8yIIrdFpZKlR9+6e9Nd8bJY1IlLusZH00DoVhy1nlyGPYeKJ+M0mNvSpVCPM9XW/MVbWOKnLWFT4PSyViKF0iVRVd8GpqvWBzuOrBKCv29HA60S9cbVIrn+G5ttmLIS64/+5Jn/f0eFpQ793p+n9kGmpusGFKW76y9iB8HJfNQ0NEoVezrDU15mKsY78hz1jK3+ntbWrWvxlm76Z+GOpiq6PkM8wfMBKXy4P4MUVmese+ymYrFfV2GaPmjoEweVm13GVZUGBwuN1ExYmGBq7riIVAiD+VdzpsGFF5i9DgwUfEP7vNL3GE/v4gpp91TVbe1G+1knuIt593Vp/XvmzV58N0uV/XVg8uN9jJNMSrddSJEi58CpXFTHDPLXbcZH480S/GVEvfpzxrj55zF7FXu6mvTjHczSdFxt8Ndn/YaKIublbnuamqvGp2GBOYoWvp94a6n2qeAsriY3+758FdNBnQ0RzFVNl+4OgeUxIUjxXOhsZZmA3qaorhphuzX3OnfN1H2RUR/tEN6mqGY++0GTzD6BCiHi83y80t30BSkGYoT/ioLXr4CyuGkFsu+wNWPgR40TVBM+YHs0MS3awzL6yM/TFG/k6C+JihGyx99N0wCpXBS53WKeiML1Jm+Yn6FPPZmJiiFRIRN9mVGi+bCelNXnBq6UR7b9EtQCol6r2tEzS9gvakrNjwoD9XeB8ogUbmjWf4j9FmTtiKxe2Hn1Zvq4v1XQgVFsO60Fed6z9xuuReUQaRykNcpyvEOcEkAZcWJfeu9QnMXgTKIPPCW1499TgP7U1as+q13qO7noAwClkzvlULb0oAJKCvuIi5ha38FyiCw837vn8sc6u00oauY1kKERsGXKO4mrqQjW4EJ6Cr+yUaEBoEnTDOaiF3s2aXeUBO6iqufJEJwxe49iEBwKeJeZCgDvIxveQERAD3xC1BVHNpJhp71PR3oTXE5+eAEGZkSoarYqLghhT3MXmPKFjICfqamqZh2dykZ2nEPKANCygOhYQIwBU3FauUUbo+vQBkQSt6vCN1wBpaCpmLhi4pQ7RrFgaePVXn+fGs8LAVNxWaVe+4XjExde8j4szL2djIoBVXF7O3KWP1EUIqcOmXMEQZbUkZTsUXlntv6yHxIiii1MzBwxoCm4la1kX3Y7GmL2mOFdVoRJAdNxSjV4c6LkDdL96oe1401hicXEV3FMNVow4qtqnFV7vhUNfxOEmA3zFdEMxKNT01pKKLY943vRgAU0ZqYRKMp9mldA7fYDQ/601T80TmNDaG77jSYghh8k9GMxxjMQVNx2QLNTWEOY9e2eu2JxFLL5t2aG+XQVGxN1d5mfe6sgUWIqG2szsaKzlLFC1Iq0FRcqb8yY2/XAZ9Pj5t+o7s5cvHt+32uFqSp+DY5cqOgFWO8p1UaCchIrDt0sIJ4GWFqrc9d6rOhKSrmd+Lw8dSWJ5O/3kW+E0FTsegFY+2slxH6tbSItiWB2DavzFgOSy+EhonzmI13EZtoKraNAzUXGNhBBGaug6ZIJW/+qQ5sZNf7buTN9Coi8BP40oChxDw0VcVbT4HaI5UV8R+u0nlVSJ1LxGmWqmIi+B8s7LuDjDyzDJgCf0sEqCrafqZ98VdHcbqRLwszhqmnG4w+UuyxD5RDyfHntG4DNXi4ggjQVYz5EpZ/xN+UsSOjQSnQ+7FEgPLkW5+LoB5qw6wfblOMxurx+l/Ix2XKih07IUM1kelqp0/NBypV8krICO25/ibIEg31ZVGVLYDLa1KH4v8w0Va0lBifqDmUo754rG6b8QW23yu/GdTX3YQPNbzAQnPg6lPF1VKLnSXKZ0j6C8QS0pcaa145Q2tLRDfycq7B7CsvKYMmLPM7WmLoODtcrP3/GUI+GW4khfp7YmasR+0+2YDjq7UNOlsz7svT2epij+qQkCkLp6Ou+hwuaxyv/wLOyLE+R/ntCwarxs1Z/p4y/TH9pmFdvkZhbF1/1182Fdo0Sn2DSe9pxFU8rLOD+WOyDYyKTrlFbwRg70aVM42IaS8U4fJ8rXbNncbWVOX2r9K6JR++cbTma7smvvn2WcIUtfuzqgTyvlmbjPY5ao9nw9d0G6rdydS3UPvnjtvsbVnYkO7rPw94kzvrRFiGVyT8xvh/N+l1MfuN8I61456Y0J5ZipIm1Ofe0L7Yj/febfFtN+9I3z2pOvXo7+ccuJzla0EWTcX/SbgiC3BFFuCKLMAVWYArsgBXZAGuyAJckQW4IgtwRRbgiizAFVmAK7IAV2QBrsgCXJEFuCILcEUW4IoswBVZgCuyAFdkAa7IAlyRBbgiC3BFFuCKLMAVWYArsgBXZAGuyAL/B4r/BWm/awFYrRvOAAAAAElFTkSuQmCC'/%3E%3C/defs%3E%3Cstyle%3E%3C/style%3E%3Cuse id='Background' href='%23img1' x='-45' y='-64'/%3E%3C/svg%3E");--custom-arrows:url("data:image/svg+xml,%3Csvg width='19' height='10' viewBox='0 0 19 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.1895 8.06055L15.9395 5.31055L0 5.31055V3.81055L15.9395 3.81055L13.1895 1.06055L14.25 0L18.8105 4.56055L14.25 9.12109L13.1895 8.06055Z' fill='%23101010'/%3E%3C/svg%3E%0A");--custom-play-icon:url("data:image/svg+xml,%3Csvg width='12' height='15' viewBox='0 0 12 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.15234 0.733398L10.3193 6.56641L11.3135 7.19922L10.3193 7.83203L1.15234 13.666L0 14.3994L0 0L1.15234 0.733398ZM1.5 11.666L8.51855 7.19922L1.5 2.73145L1.5 11.666Z' fill='white'/%3E%3C/svg%3E%0A");--ricardo-signature:url("data:image/svg+xml,%3Csvg width='236' height='37' viewB
29ox='0 0 236 37' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M23.9802 1.18803C26.0482 1.01203 27.1482 2.06803 26.9282 4.13603C26.7962 4.88403 26.5322 5.63203 26.2242 6.33603C25.6522 7.61203 24.8602 8.71203 23.9802 9.76803C20.5482 13.904 16.4562 17.204 11.9242 19.932C11.2202 20.372 10.5602 20.768 9.81223 21.12C7.96424 22.088 6.11623 23.012 3.82823 23.1C4.57623 24.948 5.19223 26.708 6.46823 28.116C7.78823 29.656 9.46024 30.184 11.3962 29.568C12.3202 29.304 13.2442 28.908 14.0802 28.424C17.2042 26.576 19.9762 24.332 22.4402 21.692C23.0562 21.032 23.5842 20.284 24.1122 19.58C24.5082 19.096 24.9042 18.964 25.2122 19.228C25.4762 19.448 25.4322 19.8 25.0802 20.284C23.0562 22.968 20.5922 25.124 17.9082 27.06C16.8522 27.852 15.7082 28.556 14.5642 29.216C13.3762 29.876 12.1442 30.316 10.7802 30.492C9.10823 30.624 7.70023 30.096 6.46823 28.952C5.63223 28.16 5.06023 27.192 4.53223 26.18C4.22423 25.608 3.91623 24.992 3.56423 24.288C3.47623 24.596 3.38823 24.772 3.34423 24.948C2.90423 26.752 2.50823 28.556 2.06823 30.404C1.93623 30.888 1.84823 31.416 1.62823 31.944C1.40823 32.604 0.924235 32.604 0.440234 32.076C0.0882345 31.592 0.0002345 31.064 0.0442344 30.492C0.352234 27.852 0.792234 25.256 1.54023 22.66C1.62823 22.264 1.67223 21.824 1.76023 21.384C1.76023 21.252 1.80423 21.12 1.89223 20.988C2.06823 20.636 2.28823 20.284 2.46423 19.932C3.38823 17.556 4.62023 15.312 6.11623 13.244C6.42423 12.804 6.64424 12.32 6.86423 11.836C8.14023 8.49203 9.41623 5.14803 10.6922 1.80403C10.8682 1.36403 11.0442 0.968027 11.2642 0.572027C11.3962 0.264028 11.6602 2.64645e-05 12.0122 0.132027C12.3642 0.220029 12.4962 0.484028 12.5402 0.836029C12.6722 1.54003 12.3642 1.84803 11.4402 1.89203C10.0322 4.79603 8.97624 7.78803 7.96424 10.868C8.09623 10.736 8.22823 10.648 8.31624 10.516C11.9242 6.64403 16.2362 3.87203 21.1202 1.93603C22.0442 1.54003 23.0122 1.27603 23.9802 1.18803ZM2.94823 23.936C3.12423 23.32 2.99223 22.924 2.46423 22.484C1.80423 24.948 1.32023 27.324 1.27623 29.832C1.36423 29.612 1.45223 29.392 1.49623 29.172C1.98023 27.412 2.42023 25.652 2.94823 23.936ZM3.47623 21.956C4.13623 19.888 4.75223 17.996 5.36823 16.06C5.32423 16.06 5.28023 16.016 5.28023 16.016C5.14823 16.192 5.01623 16.412 4.92823 16.588C4.35623 17.732 3.87223 18.876 3.30023 20.02C2.99223 20.68 3.12423 21.252 3.47623 21.956ZM25.8282 5.94003C26.1802 5.28003 26.4002 4.48803 26.4002 3.69603C26.4002 2.42003 25.7842 1.80403 24.4642 1.80403C23.5842 1.76003 22.7482 2.02403 21.9562 2.33203C20.0642 2.99203 18.3042 3.87203 16.5442 4.88403C12.9802 6.95203 9.81223 9.54803 7.30424 12.936C7.04023 13.244 6.82023 13.64 6.68823 14.08C5.94023 16.28 5.23623 18.524 4.53223 20.768C4.35623 21.208 4.26823 21.692 4.09223 22.264C4.44423 22.264 4.70823 22.264 4.92823 22.22C5.72023 22 6.60023 21.824 7.34824 21.516C14.0362 18.612 19.6682 14.344 24.2002 8.62403C24.8162 7.78803 25.3002 6.86403 25.8282 5.94003ZM37.0874 18.348C37.2634 18.612 37.0874 18.876 36.9114 19.096C36.1194 19.668 30.9714 23.628 27.8474 24.244C27.5834 24.332 27.2754 24.332 26.8354 24.376C26.5274 24.288 26.0434 24.244 25.6034 24.068C24.8114 23.76 24.2834 23.144 24.1514 22.264C23.9314 20.856 24.3274 19.492 24.8994 18.216C24.8994 18.172 24.9434 18.128 24.9874 18.084C25.2514 17.732 25.6474 17.644 25.9114 17.908C26.2194 18.128 26.2634 18.48 25.9554 18.788C25.3394 19.492 25.1194 20.328 24.9434 21.208C24.8994 21.384 24.8994 21.516 24.8994 21.648C24.8554 22.792 25.4714 23.54 26.5714 23.584C27.0994 23.584 27.6274 23.54 28.1114 23.408C30.8834 22.66 33.6554 20.548 35.9874 18.612C36.2074 18.524 36.3834 18.392 36.5594 18.304C36.8234 18.216 36.9554 18.128 37.0874 18.348ZM27.9354 14.476C27.7594 14.916 27.2314 14.96 26.9234 14.608C26.6594 14.3 26.7034 13.992 26.8794 13.64C27.0554 13.288 27.1874 12.936 27.6274 12.892C28.0234 12.892 28.2874 13.2 28.1994 13.596C28.1554 13.904 28.0674 14.168 27.9354 14.476ZM48.1445 17.996C48.5405 17.82 48.7165 17.732 48.8925 17.996C49.1125 18.568 42.2485 21.208 39.3005 22.176C38.5965 22.396 37.8925 22.572 37.1445 22.748C36.8805 22.792 36.6165 22.748 36.3525 22.704C35.6485 22.572 35.2965 22.088 35.3405 21.384C35.3845 21.12 35.4285 20.9 35.4725 20.68C36.0885 19.008 37.1005 17.644 38.5965 16.676C39.1685 16.324 39.6965 16.28 39.9605 16.588C40.3125 17.028 40.0925 17.424 39.8725 17.864C39.7405 18.128 39.6085 18.348 39.4765 18.612C39.3005 18.92 38.9925 19.008 38.7285 18.876C38.4205 18.744 38.3325 18.436 38.5085 18.084C38.5525 17.952 38.6845 17.82 38.7725 17.688C38.6845 17.644 38.6845 17.644 38.6405 17.644C37.2325 18.524 36.2645 19.756 35.8245 21.34C35.6045 22 35.9565 22.396 36.6605 22.396C37.1005 22.396 37.5405 22.308 37.9365 22.176C38.7285 21.868 44.8005 19.404 47.0445 18.524C47.3965 18.348 47.7925 18.172 48.1445 17.996ZM60.5277 17.952C60.7917 18.128 60.7037 18.392 60.4397 18.744C60.3077 18.92 60.1317 19.14 59.9117 19.272C58.5037 20.284 57.0077 21.12 55.2917 21.428C54.9837 21.516 54.6317 21.516 54.2797 21.516C53.1357 21.56 52.3437 21.032 51.8597 20.02C51.6837 19.58 51.5517 19.14 51.3757 18.612C51.1557 18.788 50.9797 18.964 50.8037 19.14C50.0557 19.844 49.2197 20.46 48.2517 20.856C47.9437 20.988 47.6357 21.076 47.3277 21.076C46.7557 21.076 46.4477 20.636 46.6237 20.108C46.7117 19.932 46.7557 19.8 46.8877 19.668C47.6357 18.656 48.5597 17.776 49.7037 17.204C50.1877 16.94 50.7157 16.808 51.2437 16.984C51.8597 17.204 52.0357 17.468 52.0797 18.128C52.1237 18.656 52.2117 19.228 52.387
297 19.712C52.6517 20.592 53.3557 21.032 54.2357 20.944C57.6237 20.548 59.5157 18.524 59.7797 18.26C60.0437 17.952 60.2637 17.776 60.5277 17.952ZM47.8997 19.932C48.9117 19.58 49.7037 18.92 50.4517 18.084C49.3957 18.436 48.6037 19.096 47.8997 19.932ZM61.5222 15.928C61.3902 16.456 61.2582 16.984 61.0822 17.644C61.3022 17.644 61.4782 17.688 61.6542 17.688C62.4462 17.82 62.9742 18.392 62.7982 18.832C62.3582 20.02 61.8742 20.856 61.3902 22.044C60.9942 23.144 60.5542 24.244 60.1582 25.388C60.0702 25.652 60.0702 26.488 60.8622 25.872C61.4342 25.388 62.0062 24.904 62.5342 24.376C63.7662 22.968 64.9982 21.56 66.1862 20.152C66.6262 19.624 66.9342 19.008 67.3302 18.436C67.3742 18.348 67.8142 17.644 68.0782 17.82C68.3862 17.952 68.3422 18.26 68.2102 18.612C68.0342 18.964 63.4142 24.464 62.1822 25.652C61.6982 26.048 61.2582 26.532 60.6862 26.796C59.8062 27.192 59.2782 26.752 59.4542 25.828C59.5422 25.388 59.6742 24.948 59.8062 24.552C60.4222 22.968 60.9502 21.648 61.5662 20.064C61.8302 19.36 62.0062 18.48 61.5222 18.436C61.1262 18.436 60.7302 18.48 60.3782 18.524C59.8942 18.568 59.4982 18.436 59.1462 18.172C58.7502 17.864 58.5742 17.424 58.6622 16.94C58.8822 16.104 59.3222 15.444 60.0702 15.004C60.4222 14.784 60.7742 14.696 61.1262 14.916C61.5222 15.136 61.6102 15.532 61.5222 15.928ZM59.7182 17.512C59.8942 17.16 60.0262 16.808 60.1582 16.456C59.5422 16.94 59.4542 17.072 59.7182 17.512ZM83.129 18.04C83.349 18.172 83.129 18.48 83.041 18.744C82.953 18.876 79.389 23.54 76.705 24.904C76.353 25.08 76.001 25.212 75.605 25.3C74.505 25.608 73.625 25.256 73.053 24.2C72.613 23.364 72.393 22.44 72.437 21.472C72.437 20.284 72.569 19.052 72.613 17.864C72.657 17.732 72.657 17.6 72.657 17.336C72.437 17.6 72.261 17.776 72.085 17.908C71.161 18.832 70.281 19.8 69.313 20.68C68.917 21.032 68.389 21.296 67.905 21.516C67.025 21.868 66.453 21.34 66.585 20.416C66.673 20.152 66.761 19.844 66.893 19.58C67.641 17.996 68.741 16.72 70.193 15.752C70.501 15.532 70.897 15.356 71.249 15.312C71.821 15.18 72.085 15.532 72.041 16.104C72.129 16.104 72.305 16.104 72.349 16.016C72.745 15.488 73.141 14.96 73.317 14.256C74.021 11.088 74.945 8.05203 76.485 5.14803C77.145 3.87203 77.937 2.59603 78.905 1.45203C79.213 1.14403 79.521 0.792027 79.917 0.528028C80.445 0.176027 80.929 0.440029 81.017 1.05603C81.061 1.45203 81.017 1.89203 80.885 2.28803C80.709 2.99203 80.445 3.74003 80.181 4.40003C78.421 8.49203 76.177 12.232 73.669 15.884C73.361 16.324 73.141 16.808 73.053 17.336C72.833 18.832 72.701 20.328 72.833 21.824C72.877 22.572 73.009 23.276 73.405 23.892C73.889 24.772 74.505 24.992 75.385 24.684C75.869 24.552 76.309 24.332 76.705 24.112C78.993 22.748 80.885 21.032 82.249 18.744C82.381 18.568 82.865 17.908 83.129 18.04ZM76.133 6.90803C75.121 9.10803 73.977 12.54 74.021 13.508C74.153 13.288 74.285 13.112 74.373 12.892C75.605 10.736 76.881 8.58003 78.069 6.38003C78.685 5.23603 79.213 4.04803 79.741 2.86003C79.917 2.37603 80.049 1.84803 80.225 1.36403C78.993 1.84803 77.453 4.09203 76.133 6.90803ZM68.653 20.152C69.841 19.184 70.853 18.04 71.777 16.764C71.909 16.632 71.953 16.456 71.997 16.28C71.865 16.5 71.601 16.5 71.381 16.5C71.029 16.544 70.677 16.544 70.413 16.72C69.093 17.512 68.081 18.612 67.465 20.02C67.333 20.284 67.333 20.548 67.289 20.812C67.333 20.856 67.377 20.9 67.421 20.944C67.861 20.68 68.257 20.46 68.653 20.152ZM94.691 18.26C94.823 18.568 94.779 18.832 94.515 19.008C94.339 19.14 94.163 19.184 93.943 19.228C92.403 19.36 90.907 19.536 89.323 19.624C87.959 19.712 86.639 19.404 85.495 18.612C85.407 18.568 85.319 18.524 85.231 18.524C85.011 19.448 84.791 20.372 84.527 21.252C84.219 22.44 83.779 23.54 83.031 24.552C82.723 24.992 82.371 25.388 81.975 25.74C81.667 26.004 81.271 26.18 80.831 25.96C80.479 25.74 80.347 25.344 80.347 24.948C80.347 24.684 80.391 24.42 80.435 24.156C80.919 21.956 81.667 19.888 82.811 17.952C83.075 17.556 83.339 17.204 83.647 16.852C83.779 16.676 84.043 16.5 84.263 16.368C84.791 16.148 85.363 16.544 85.319 17.116C85.231 17.6 85.495 17.864 85.847 18.084C86.639 18.656 87.563 18.964 88.575 18.92C89.895 18.832 91.259 18.612 92.579 18.392C93.063 18.348 93.503 18.172 93.987 17.996C94.339 17.908 94.603 17.996 94.691 18.26ZM81.447 24.772C82.723 23.54 84.307 19.36 84.087 17.864C82.811 19.052 81.051 23.716 81.447 24.772ZM132.734 1.18803C134.802 1.01203
29135.902 2.06803 135.682 4.13603C135.55 4.88403 135.286 5.63203 134.978 6.33603C134.406 7.61203 133.614 8.71203 132.734 9.76803C129.302 13.904 125.21 17.204 120.678 19.932C119.974 20.372 119.314 20.768 118.566 21.12C116.718 22.088 114.87 23.012 112.582 23.1C113.33 24.948 113.946 26.708 115.222 28.116C116.542 29.656 118.214 30.184 120.15 29.568C121.074 29.304 121.998 28.908 122.834 28.424C125.958 26.576 128.73 24.332 131.194 21.692C131.81 21.032 132.338 20.284 132.866 19.58C133.262 19.096 133.658 18.964 133.966 19.228C134.23 19.448 134.186 19.8 133.834 20.284C131.81 22.968 129.346 25.124 126.662 27.06C125.606 27.852 124.462 28.556 123.318 29.216C122.13 29.876 120.898 30.316 119.534 30.492C117.862 30.624 116.454 30.096 115.222 28.952C114.386 28.16 113.814 27.192 113.286 26.18C112.978 25.608 112.67 24.992 112.318 24.288C112.23 24.596 112.142 24.772 112.098 24.948C111.658 26.752 111.262 28.556 110.822 30.404C110.69 30.888 110.602 31.416 110.382 31.944C110.162 32.604 109.678 32.604 109.194 32.076C108.842 31.592 108.754 31.064 108.798 30.492C109.106 27.852 109.546 25.256 110.294 22.66C110.382 22.264 110.426 21.824 110.514 21.384C110.514 21.252 110.558 21.12 110.646 20.988C110.822 20.636 111.042 20.284 111.218 19.932C112.142 17.556 113.374 15.312 114.87 13.244C115.178 12.804 115.398 12.32 115.618 11.836C116.894 8.49203 118.17 5.14803 119.446 1.80403C119.622 1.36403 119.798 0.968027 120.018 0.572027C120.15 0.264028 120.414 2.64645e-05 120.766 0.132027C121.118 0.220029 121.25 0.484028 121.294 0.836029C121.426 1.54003 121.118 1.84803 120.194 1.89203C118.786 4.79603 117.73 7.78803 116.718 10.868C116.85 10.736 116.982 10.648 117.07 10.516C120.678 6.64403 124.99 3.87203 129.874 1.93603C130.798 1.54003 131.766 1.27603 132.734 1.18803ZM111.702 23.936C111.878 23.32 111.746 22.924 111.218 22.484C110.558 24.948 110.074 27.324 110.03 29.832C110.118 29.612 110.206 29.392 110.25 29.172C110.734 27.412 111.174 25.652 111.702 23.936ZM112.23 21.956C112.89 19.888 113.506 17.996 114.122 16.06C114.078 16.06 114.034 16.016 114.034 16.016C113.902 16.192 113.77 16.412 113.682 16.588C113.11 17.732 112.626 18.876 112.054 20.02C111.746 20.68 111.878 21.252 112.23 21.956ZM134.582 5.94003C134.934 5.28003 135.154 4.48803 135.154 3.69603C135.154 2.42003 134.538 1.80403 133.218 1.80403C132.338 1.76003 131.502 2.02403 130.71 2.33203C128.818 2.99203 127.058 3.87203 125.298 4.88403C121.734 6.95203 118.566 9.54803 116.058 12.936C115.794 13.244 115.574 13.64 115.442 14.08C114.694 16.28 113.99 18.524 113.286 20.768C113.11 21.208 113.022 21.692 112.846 22.264C113.198 22.264 113.462 22.264 113.682 22.22C114.474 22 115.354 21.824 116.102 21.516C122.79 18.612 128.422 14.344 132.954 8.62403C133.57 7.78803 134.054 6.86403 134.582 5.94003ZM145.996 18.26C146.128 18.568 146.084 18.832 145.82 19.008C145.644 19.14 145.468 19.184 145.248 19.228C143.708 19.36 142.212 19.536 140.628 19.624C139.264 19.712 137.944 19.404 136.8 18.612C136.712 18.568 136.624 18.524 136.536 18.524C136.316 19.448 136.096 20.372 135.832 21.252C135.524 22.44 135.084 23.54 134.336 24.552C134.028 24.992 133.676 25.388 133.28 25.74C132.972 26.004 132.576 26.18 132.136 25.96C131.784 25.74 131.652 25.344 131.652 24.948C131.652 24.684 131.696 24.42 131.74 24.156C132.224 21.956 132.972 19.888 134.116 17.952C134.38 17.556 134.644 17.204 134.952 16.852C135.084 16.676 135.348 16.5 135.568 16.368C136.096 16.148 136.668 16.544 136.624 17.116C136.536 17.6 136.8 17.864 137.152 18.084C137.944 18.656 138.868 18.964 139.88 18.92C141.2 18.832 142.564 18.612 143.884 18.392C144.368 18.348 144.808 18.172 145.292 17.996C145.644 17.908 145.908 17.996 145.996 18.26ZM132.752 24.772C134.028 23.54 135.612 19.36 135.392 17.864C134.116 19.052 132.356 23.716 132.752 24.772ZM161.074 18.04C161.294 18.172 161.074 18.48 160.986 18.744C160.898 18.876 157.334 23.54 154.65 24.904C154.298 25.08 153.946 25.212 153.55 25.3C152.45 25.608 151.57 25.256 150.998 24.2C150.558 23.364 150.338 22.44 150.382 21.472C150.382 20.284 150.514 19.052 150.558 17.864C150.602 17.732 150.602 17.6 150.602 17.336C150.382 17.6 150.206 17.776 150.03 17.908C149.106 18.832 148.226 19.8 147.258 20.68C146.862 21.032 146.334 21.296 145.85 21.516C144.97 21.868 144.398 21.34 144.53 20.416C144.618 20.152 144.706 19.844 144.838 19.58C145.586 17.996 146.686 16.72 148.138 15.752C148.446 15.532 148.842 15.356 149.194 15.312C149.766 15.18 150.03 15.532 149.986 16.104C150.074 16.104 150.25 16.104 150.294 16.016C150.69 15.488 151.086 14.96 151.262 14.256C151.966 11.088 152.89 8.05203 154.43 5.14803C155.09 3.87203 155.882 2.59603 156.85 1.45203C157.158 1.14403 157.466 0.792027 157.862 0.528028C158.39 0.176027 158.874 0.440029 158.962 1.05603C159.006 1.45203 158.962 1.89203 158.83 2.28803C158.654 2.99203 158.39 3.74003 158.126 4.40003C156.366 8.49203 154.122 12.232 151.614 15.884C151.306 16.324 151.086 16.808 150.998 17.336C150.778 18.832 150.646 20.328 150.778 21.824C150.822 22.572 150.954 23.276 151.35 23.892C151.834 24.772 152.45 24.992 153.33 24.684C153.814 24.552 154.254 24.332 154.65 24.112C156.938 22.748 158.83 21.032 160.194 18.744C160.326 18.568 160.81 17.908 161.074 18.04ZM154.078 6.90803C153.066 9.10803 151.922 12.54 151.966 13.508C152.098 13.288 152.23 13.112 152.318 12.892C153.55 10.736 154.826 8.58003 156.014 6.38003C156.63 5.23603 157.158 4.04803 157.686 2.86003C157.862 2.37603 157.994 1.84803 158.17 1.36403C156.938 1.84803 155.398 4.09203 154.078 6.90803ZM146.598 20.152C147.786 19.184 148.798 18.04 149.722 16.764C149.854 16.632 149.898 16.456 149.942 16.28C149.81 16.5 149.546 16.5 149.326 16.5C148.974 16.544 148.622 16.544 148.358 16.72C147.038 17.512 146.026 18.612 145.41 20.02C145.278 20.284 145.278 20.548 145.234 20.812C145.278 20.856 145.322 20.9 145.366 20.944C145.806 20.68 146.202 20.46 146.598 20.152ZM162.026 15.928C161.894 16.456 161.762 16.984 161.586 17.644C161.806 17.644 161.982
2917.688 162.158 17.688C162.95 17.82 163.478 18.392 163.302 18.832C162.862 20.02 162.378 20.856 161.894 22.044C161.498 23.144 161.058 24.244 160.662 25.388C160.574 25.652 160.574 26.488 161.366 25.872C161.938 25.388 162.51 24.904 163.038 24.376C164.27 22.968 165.502 21.56 166.69 20.152C167.13 19.624 167.438 19.008 167.834 18.436C167.878 18.348 168.318 17.644 168.582 17.82C168.89 17.952 168.846 18.26 168.714 18.612C168.538 18.964 163.918 24.464 162.686 25.652C162.202 26.048 161.762 26.532 161.19 26.796C160.31 27.192 159.782 26.752 159.958 25.828C160.046 25.388 160.178 24.948 160.31 24.552C160.926 22.968 161.454 21.648 162.07 20.064C162.334 19.36 162.51 18.48 162.026 18.436C161.63 18.436 161.234 18.48 160.882 18.524C160.398 18.568 160.002 18.436 159.65 18.172C159.254 17.864 159.078 17.424 159.166 16.94C159.386 16.104 159.826 15.444 160.574 15.004C160.926 14.784 161.278 14.696 161.63 14.916C162.026 15.136 162.114 15.532 162.026 15.928ZM160.222 17.512C160.398 17.16 160.53 16.808 160.662 16.456C160.046 16.94 159.958 17.072 160.222 17.512ZM180.13 18.348C180.306 18.612 180.13 18.876 179.954 19.096C179.162 19.668 174.014 23.628 170.89 24.244C170.626 24.332 170.318 24.332 169.878 24.376C169.57 24.288 169.086 24.244 168.646 24.068C167.854 23.76 167.326 23.144 167.194 22.264C166.974 20.856 167.37 19.492 167.942 18.216C167.942 18.172 167.986 18.128 168.03 18.084C168.294 17.732 168.69 17.644 168.954 17.908C169.262 18.128 169.306 18.48 168.998 18.788C168.382 19.492 168.162 20.328 167.986 21.208C167.942 21.384 167.942 21.516 167.942 21.648C167.898 22.792 168.514 23.54 169.614 23.584C170.142 23.584 170.67 23.54 171.154 23.408C173.926 22.66 176.698 20.548 179.03 18.612C179.25 18.524 179.426 18.392 179.602 18.304C179.866 18.216 179.998 18.128 180.13 18.348ZM170.978 14.476C170.802 14.916 170.274 14.96 169.966 14.608C169.702 14.3 169.746 13.992 169.922 13.64C170.098 13.288 170.23 12.936 170.67 12.892C171.066 12.892 171.33 13.2 171.242 13.596C171.198 13.904 171.11 14.168 170.978 14.476ZM181.758 22.968C181.714 23.012 181.758 23.1 181.802 23.232C182.022 23.056 182.242 22.88 182.462 22.748C185.102 20.812 191.878 18.348 193.374 18.348C193.594 18.48 193.682 18.744 193.55 19.008C193.418 19.228 193.198 19.184 192.978 19.272C190.162 19.888 184.706 21.912 181.934 24.156C181.538 24.508 181.274 24.86 181.186 25.388C180.658 27.72 179.91 30.008 178.81 32.164C178.414 33 177.886 33.836 177.358 34.584C177.05 34.98 176.61 35.332 176.17 35.596C175.246 36.08 174.41 35.64 174.322 34.628C174.234 34.144 174.278 33.616 174.41 33.088C174.63 31.944 175.202 30.888 175.818 29.876C177.094 27.764 178.722 25.916 180.57 24.288C180.922 23.98 181.186 23.584 181.274 23.1C181.45 21.912 181.67 20.768 181.89 19.58C181.89 19.492 181.89 19.36 181.89 19.14C181.626 19.404 181.45 19.536 181.274 19.668C180.262 20.592 179.25 21.472 178.194 22.352C177.798 22.704 177.314 23.012 176.83 23.276C176.61 23.408 176.346 23.496 176.082 23.54C175.598 23.584 175.29 23.232 175.422 22.748C175.51 22.484 175.642 22.264 175.774 22.044C176.962 20.46 178.37 19.096 180.174 18.216C180.658 17.952 181.186 17.776 181.758 17.688C182.594 17.6 182.902 18.084 182.682 18.92C182.33 20.24 182.066 21.604 181.758 22.968ZM180.57 25.916C180.57 25.784 180.614 25.652 180.614 25.52C180.57 25.476 180.57 25.476 180.526 25.432C180.174 25.784 179.822 26.136 179.47 26.532C178.018 28.116 176.698 29.788 175.818 31.812C175.554 32.384 175.378 32.956 175.246 33.572C175.158 33.968 174.938 34.54 175.378 34.804C175.862 35.068 176.258 34.628 176.522 34.276C177.006 33.704 177.49 33.044 177.886 32.384C179.074 30.36 179.91 28.16 180.57 25.916ZM179.514 19.844C178.854 20.064 178.15 20.636 177.666 21.428C178.282 20.9 178.898 20.372 179.514 19.844ZM197.54 21.868C197.672 20.812 197.804 20.24 197.98 18.964C197.584 19.316 197.32 19.58 197.056 19.8C196.396 20.284 195.736 20.812 195.076 21.296C194.768 21.516 194.372 21.648 194.02 21.736C193.404 21.868 192.92 21.516 192.876 20.9C192.788 19.712 193.14 18.656 193.756 17.644C194.02 17.204 194.504 17.16 194.856 17.424C195.296 17.732 195.296 18.436 194.812 18.568C194.24 18.744 194.108 19.184 193.976 19.624C193.888 19.932 193.8 20.284 193.712 20.768C193.976 20.68 194.328 20.504 194.416 20.46C194.9 20.152 195.208 19.976 195.648 19.624C196.352 19.052 197.012 18.48 197.716 17.908C197.98 17.688 198.288 17.38 198.684 17.644C199.036 17.908 198.86 18.26 198.772 18.568C198.596 19.624 198.376 20.152 198.2 21.164C198.112 21.824
29198.068 22.528 198.112 23.188C198.2 24.156 198.816 24.508 199.696 24.156C200.18 23.98 201.016 23.496 201.412 23.188C202.864 22.044 205.724 19.008 206.076 18.612C206.164 18.436 206.648 18.04 206.868 18.304C207.132 18.568 206.604 18.876 206.516 19.008C206.296 19.316 202.952 23.188 200.884 24.376C200.444 24.64 200.004 24.816 199.52 24.904C198.42 25.168 197.672 24.64 197.54 23.54C197.496 22.968 197.496 22.396 197.54 21.868ZM216.99 18.26C217.21 18.524 216.506 19.14 216.066 19.448C215.89 19.624 211.446 22.264 208.586 22.484C207.926 22.528 207.222 22.44 206.562 22.264C205.814 22.044 205.374 21.428 205.374 20.548C205.374 20.02 205.462 19.624 205.77 19.14C206.166 18.568 206.562 17.908 207.134 17.468C207.442 17.248 207.794 17.072 208.146 16.94C208.586 16.808 209.07 17.028 209.29 17.38C209.554 17.776 209.554 18.216 209.246 18.524C208.982 18.876 208.674 19.184 208.278 19.404C207.486 19.844 206.65 20.24 205.814 20.68C205.858 21.428 206.078 21.78 206.782 22C207.706 22.264 208.63 22.176 209.51 21.956C211.71 21.384 213.69 20.416 215.538 19.14C215.802 18.964 216.022 18.7 216.286 18.436C216.638 18.128 216.77 18.04 216.99 18.26ZM208.366 17.908C207.53 17.996 207.002 18.568 206.518 19.228C207.266 19.008 207.926 18.612 208.366 17.908ZM234.431 18.04C234.827 18.084 235.047 18.48 234.959 18.788C234.871 19.052 234.607 19.184 234.211 19.14C233.771 19.14 233.331 19.096 232.935 19.228C232.099 19.492 231.263 19.712 230.471 20.108C228.843 20.9 227.215 21.736 225.631 22.572C225.279 22.748 225.059 23.012 224.883 23.32C223.255 26.136 221.143 28.512 218.591 30.492C217.843 31.108 217.007 31.548 216.127 31.988C215.643 32.208 215.071 32.252 214.587 32.208C213.839 32.208 213.443 31.592 213.663 30.888C213.839 30.448 214.059 29.964 214.411 29.656C215.071 28.908 215.775 28.204 216.567 27.588C218.987 25.608 221.627 23.98 224.311 22.352C224.619 22.176 224.971 22.088 225.103 21.692C225.323 21.076 225.499 20.504 225.367 19.888C225.279 19.404 224.971 19.14 224.443 19.184C224.047 19.184 223.651 19.272 223.299 19.36C222.375 19.624 221.495 19.932 220.615 20.196C220.263 20.328 219.911 20.46 219.691 20.108C219.471 19.712 219.823 19.492 220.043 19.228C220.879 18.392 221.759 17.512 222.595 16.632C222.815 16.412 222.991 16.06 223.167 15.796C223.123 15.752 223.079 15.708 223.035 15.664C222.771 15.708 222.507 15.752 222.243 15.84C220.747 16.412 219.383 17.16 218.151 18.172C217.843 18.392 217.491 18.656 217.755 19.184C217.843 19.404 217.711 19.756 217.447 19.8C217.227 19.888 216.919 19.844 216.699 19.756C216.303 19.536 216.171 18.92 216.435 18.436C216.567 18.128 216.831 17.82 217.095 17.6C218.591 16.324 220.263 15.4 222.155 14.872C222.463 14.784 222.771 14.784 223.079 14.784C223.827 14.828 224.179 15.356 223.915 16.06C223.783 16.368 223.563 16.676 223.343 16.984C222.771 17.6 222.155 18.172 221.583 18.788C221.495 18.876 221.451 18.964 221.275 19.184C221.759 19.052 222.111 18.92 222.507 18.832C223.035 18.744 223.563 18.568 224.135 18.524C225.323 18.436 226.071 19.184 225.939 20.416C225.895 20.724 225.807 21.076 225.763 21.472C225.983 21.384 226.159 21.34 226.291 21.252C227.743 20.504 229.151 19.756 230.603 19.096C231.483 18.656 232.451 18.348 233.375 18.084C233.683 17.952 234.079 17.952 234.431 18.04ZM223.915 23.936C224.003 23.804 224.047 23.672 224.179 23.408C223.343 23.936 222.639 24.332 221.935 24.772C219.955 26.004 218.019 27.236 216.259 28.776C215.687 29.26 215.203 29.832 214.719 30.404C214.499 30.668 214.235 30.976 214.367 31.416C214.983 31.592 215.203 31.68 215.731 31.416C216.523 31.064 217.271 30.712 217.975 30.228C220.351 28.512 222.331 26.4 223.915 23.936Z' fill='%23101010'/%3E%3C/svg%3E%0A") left/contain no-repeat;}@media (max-width: 1980px){:root{--padding:var(--lp-grid-gap-large);}}@media (max-width: 1024px){:root{--padding:var(--lp-grid-gap-medium);}}@media (max-width: 560px){:root{--padding:var(--lp-grid-gap-small);}}@media(max-width:560px){:root{--custom-h1-size:80px;--custom-h2-size:60px;--custom-h3-size:35px;}}h1,h2,h3,h4,h5,h6{text-transform:uppercase!important;letter-spacing:1px;font-weight:300!important;}.custom-title-container{position:relative;}.custom-title-container.big h2{font-size:var(--custom-h1-size);}@media(max-width:560px){.custom-title-container.big h2{margin-bottom:20px!important;font-size:70px;}}.custom-title-container h2{font-size:var(--custom-h2-size);}@media(max-width:560px){.custom-title-container h2{margin-bottom:20px!important;font-size:60px;}}.custom-title-container .signature{position:absolute;font-family:Northwell;font-weight:400;font-style:italic;font-size:55px;margin:0;}@media(max-width:992px){.custom-title-container .signature{font-size:55px;}}@media(max-width:769px){.custom-title-container .signature{font-size:45px;}}
29@media(max-width:560px){.custom-title-container .signature{font-size:35px;}}.custom-title-container.beige{color:var(--custom-beige);}.custom-title-container.beige .signature{color:var(--custom-dark);}.custom-title-container.white{color:var(--custom-off-white);}.custom-title-container.white .signature{color:var(--custom-dark);}.custom-title-container.top .signature{top:0;}.custom-title-container.top h2{padding-top:.5rem;}.custom-title-container.bottom{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:end;-webkit-box-align:end;-ms-flex-align:end;align-items:end;position:relative;}.custom-title-container.bottom .signature{bottom:0;right:0;}.custom-title-container.bottom h2{padding-top:.5rem;}.lp-btn{border-radius:0!important;border-top-width:0!important;border-left-width:0!important;border-right-width:0!important;font-weight:500!important;letter-spacing:1px;font-size:14px;}.lp-btn .lp-btn__content{padding:0;}.lp-btn .lp-btn__content::after{display:none;}.custom-link{position:relative;-webkit-text-decoration:none!important;text-decoration:none!important;}.custom-link.dark::before,.custom-link.dark::after{content:'';display:block;position:absolute;bottom:0;left:0;width:100%;height:1px;background:rgba(110, 99, 89, 0.35);-webkit-transition:0.3s;transition:0.3s;}.custom-link.dark::after{width:0;background:var(--custom-dark-brown);}.custom-link.dark:hover::after{width:100%;}.custom-link.light::before,.custom-link.light::after{content:'';display:block;position:absolute;bottom:0;left:0;width:100%;height:1px;background:rgba(255, 255, 255, .5);-webkit-transition:0.3s;transition:0.3s;}.custom-link.light::after{width:0;background:var(--custom-white);}.custom-link.light:hover::after{width:100%;}nav#global-navbar .header-navigation__link{-webkit-transition:0.3s;transition:0.3s;letter-spacing:1px;}nav#global-navbar .header-navigation__link:hover{opacity:0.5;}nav#global-navbar .header-navigation__link::before{display:none;}nav#global-navbar .skiptranslate.goog-te-gadget .VIpgJd-ZVi9od-xl07Ob-lTBxed{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:6px;}nav#global-navbar .skiptranslate.goog-te-gadget .VIpgJd-ZVi9od-xl07Ob-lTBxed span:last-child{font-size:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-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;}nav#global-navbar .skiptranslate.goog-te-gadget .VIpgJd-ZVi9od-xl07Ob-lTBxed span:last-child::before{content:'';display:inline-block;position:relative;width:10px;height:10px;border-bottom:1px solid var(--custom-white);border-right:1px solid var(--custom-white);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);top:-3px;}nav#global-navbar .header.scroll .skiptranslate.goog-te-gadget .VIpgJd-ZVi9od-xl07Ob-lTBxed span:last-child::before{border-bottom:1px solid var(--custom-brown-1);border-right:1px solid var(--custom-brown-1);}.page-properties nav#global-navbar .header{color:var(--custom-dark-brown)!important;}.page-properties nav#global-navbar .header .header-logo .header-logo__img--dark{display:block;}.page-properties nav#global-navbar .header .header-hamburger-btn:hover{color:var(--custom-dark-brown);}.page-properties nav#global-navbar .skiptranslate.goog-te-gadget .VIpgJd-ZVi9od-xl07Ob-lTBxed span:last-child::before{border-color:var(--custom-brown-1);}nav#global-navbar .header{background:transparent!important;}nav#global-navbar .header .header-navigation{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:end;justify-content:end;padding-right:50px;}nav#global-navbar .header .header-buttons-wrapper .header-hamburger-btn{border:0;gap:4px;background:transparent;}nav#global-navbar .header .header-buttons-wrapper .header-hamburger-btn:hover{opacity:.7;}nav#global-navbar .header .header-buttons-wrapper .header-hamburger-btn::before,nav#global-navbar .header .header-buttons-wrapper .header-hamburger-btn::after{height:2px;}nav#global-navbar .header.scroll{background:var(--custom-white)!important;color:var(--custom-dark-brown)!important;}nav#global-navbar .header.scroll .header-logo .header-logo__img--dark{display:block;}nav#global-navbar .header.scroll .header-logo .header-logo__img--ligth{display:none;}nav#global-navbar .header.scroll .header-hamburger-btn:hover{color:var(--custom-dark-brown);}@media(max-width:992px){div#global-sidemenu .sidemenu-wrapper{-webkit-box-pack:start;-ms-flex-pack:start;
29-webkit-justify-content:start;justify-content:start;}div#global-sidemenu .sidemenu-wrapper .sidemenu-navigation-sub-nav{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:20px 30px!important;}}@media(max-width:769px){div#global-sidemenu{padding-top:60px!important;}div#global-sidemenu .sidemenu-wrapper .sidemenu-navigation__link.sidemenu-navigation__link--active+.sidemenu-navigation-sub-nav{display:-webkit-box!important;display:-webkit-flex!important;display:-ms-flexbox!important;display:flex!important;-webkit-flex-direction:column!important;-ms-flex-direction:column!important;flex-direction:column!important;gap:12px!important;-webkit-box-flex-wrap:unset!important;-webkit-flex-wrap:unset!important;-ms-flex-wrap:unset!important;flex-wrap:unset!important;}}div#global-sidemenu{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;background:#fff!important;}div#global-sidemenu .sidemenu-close{right:var(--padding);border:0;-webkit-transition:.3s;transition:.3s;background:transparent;}@media(max-width:769px){div#global-sidemenu .sidemenu-close{top:10px;right:10px;}}div#global-sidemenu .sidemenu-close:hover{opacity:.6;}div#global-sidemenu .sidemenu-close::after{background:var(--custom-brown-1);}div#global-sidemenu .sidemenu-footer{display:none;}div#global-sidemenu .sidemenu-wrapper{width:100%;-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;--gap:30px;}@media(max-width:769px){div#global-sidemenu .sidemenu-wrapper{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:start;justify-content:start;}}div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:var(--gap);}div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation{gap:var(--gap);}div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation .sidemenu-navigation__item{-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;-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;text-align:center;}div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation .sidemenu-navigation__link{text-transform:uppercase;letter-spacing:1px;font-size:40px;color:var(--custom-dark);}@media(max-width:560px){div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation .sidemenu-navigation__link{font-size:30px;}}div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation .sidemenu-navigation__link:hover:not(.sidemenu-navigation__link--sub-nav){opacity:.5;}div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation .sidemenu-navigation-sub-nav{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:30px;}@media(min-width:769px){div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation .sidemenu-navigation-sub-nav{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation .sidemenu-navigation-sub-nav .sidemenu-navigation-sub-nav__item{margin:0;padding:0;}div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation .sidemenu-navigation-sub-nav .sidemenu-navigation-sub-nav__link{text-transform:uppercase;font-size:12px;letter-spacing:1px;-webkit-text-decoration:none;text-decoration:none;-webkit-transition:.3s;transition:.3s;}div#global-sidemenu .sidemenu-wrapper .sidemenu-nav-holder .sidemenu-navigation .sidemenu-navigation-sub-nav .sidemenu-navigation-sub-nav__link:hover{opacity:.5;}.sidemenu-navigation__item{position:relative;}.sidemenu-navigation__item::before,.sidemenu-navigation__item::after{content:"";position:fixed;width:280px;height:180px;-webkit-background-size:cover;background-size:cover;-webkit-background-position:center;background-position:center;opacity:0;pointer-events:none;z-index:-1;-webkit-transition:all 0.6s cubic-bezier(0.19, 1, 0.22, 1);transition:all 0.6s cubic-bezier(0.19, 1, 0.22, 1);}@media(max-width:992px){.sidemenu-navigation__item::before,.sidemenu-navigation__item::after{display:none;}}.sidemenu-navigation__item::before{top:40%;left:8%;}.sidemenu-navigation__item::after{bottom:15%;right:12%;}@media(max-width:1200px){.sidemenu-navigation__item::after{bottom:8%;right:5%;}}.sidemenu-navigation__item:has(a[href="/"])::before{background-image:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fb63ce05-e72e-4dc4-97c2-8ed7f23dcb36');}.sidemenu-navigation__item:has(a[href="/"])::after{background-image:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/3a8a4
29c0c-81c2-4477-969b-ff7893c8ff3d');}.sidemenu-navigation__item:has(a[href*="about"])::before{background-image:url('https://media-production.lp-cdn.com/media/7d41cbbd-ffc3-4573-a64f-27e73b3a1930');}.sidemenu-navigation__item:has(a[href*="about"])::after{background-image:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ff94051d-6f5e-4943-9f97-a9e53f6b757b');}.sidemenu-navigation__item:has(a[href*="properties"])::before{background-image:url('https://media-production.lp-cdn.com/media/58899e50-aca6-4fb4-bec1-2fab131903a9');}.sidemenu-navigation__item:has(a[href*="properties"])::after{background-image:url('https://media-production.lp-cdn.com/media/81e035b5-8e82-4607-9694-6e04bb76512f');}.sidemenu-navigation__item:has(a[href*="neighborhoods"])::before,.sidemenu-navigation__item:has(a[href*="communities"])::before{background-image:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/881d78f3-18f3-44c9-8180-8792e930879e');}.sidemenu-navigation__item:has(a[href*="neighborhoods"])::after,.sidemenu-navigation__item:has(a[href*="communities"])::after{background-image:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/d95b193a-7c92-445c-9235-0237805d9e3d');}.sidemenu-navigation__item:has(a[href*="global-collective"])::before,.sidemenu-navigation__item:has(a[href*="global-collective"])::before{background-image:url('https://media-production.lp-cdn.com/media/58899e50-aca6-4fb4-bec1-2fab131903a9');}.sidemenu-navigation__item:has(a[href*="global-collective"])::after,.sidemenu-navigation__item:has(a[href*="global-collective"])::after{background-image:url('https://media-production.lp-cdn.com/media/81e035b5-8e82-4607-9694-6e04bb76512f');}.sidemenu-navigation__item:has(a[href*="developers"])::before,.sidemenu-navigation__item:has(a[href*="developers"])::before{background-image:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/e669686b-2e78-445d-962c-c3745bd0e37d');}.sidemenu-navigation__item:has(a[href*="developers"])::after,.sidemenu-navigation__item:has(a[href*="developers"])::after{background-image: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/a8428231-f7c7-4633-b6b9-443c44b655cb');}.sidemenu-navigation__item:has(a[href*="blog"])::before,.sidemenu-navigation__item:has(a[href*="blog"])::before{background-image:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/e211f387-612c-4f65-8a12-63c971918900');}.sidemenu-navigation__item:has(a[href*="blog"])::after,.sidemenu-navigation__item:has(a[href*="blog"])::after{background-image:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/280cc89f-e13c-41fa-a8dd-faec8298d2d5');}.sidemenu-navigation__item:has([data-type="CONTACT_US"])::before,.sidemenu-navigation__item:has(a[href*="contact"])::before{background-image: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/a763ca77-bebf-4364-ac0c-28af179614d5');}.sidemenu-navigation__item:has([data-type="CONTACT_US"])::after,.sidemenu-navigation__item:has(a[href*="contact"])::after{background-image:url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/d079a746-d974-4373-95ac-a74f3f307627');}.sidemenu-navigation__item:hover::before{opacity:1;}.sidemenu-navigation__item:hover::after{opacity:1;transition-delay:0.05s;}footer#global-footer .footer{max-width:1400px;padding-top:120px;padding-bottom:120px;}@media(max-width:769px){footer#global-footer .footer{padding-top:64px;padding-bottom:100px;}}footer#global-footer .footer .footer-logos-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;
29-webkit-justify-content:center;justify-content:center;margin-bottom:40px;gap:40px;}footer#global-footer .footer .footer-logos-row .footer-logo{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:100%;max-height:98px;}footer#global-footer .footer .footer-logos-row .footer-logo:nth-child(1){-webkit-order:-1;-ms-flex-order:-1;order:-1;}footer#global-footer .footer .footer-logos-row .footer-logo:nth-child(2){-webkit-order:2;-ms-flex-order:2;order:2;}footer#global-footer .footer .footer-logos-row::before{content:'';display:block;position:relative;width:1px;height:98px;-webkit-order:1;-ms-flex-order:1;order:1;background:var(--custom-brown-1);opacity:0.3;}footer#global-footer .footer .footer-contact-row{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;-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;border-bottom-color:rgba(141, 132, 121, 0.3);margin-bottom:40px;padding-bottom:40px;gap:0;}footer#global-footer .footer .footer-contact-row .lp-socials{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}footer#global-footer .footer .footer-contact-row .footer-info{border:0;padding:0;margin:0;gap:0;min-width:100%;max-width:unset;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col{padding:0;margin:0;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:100%;min-width:100%;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content{width:100%;min-width:100%;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-title{display:none;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description{max-width:unset;white-space:normal;font-weight:400;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description .custom-footer{width:100%;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description .custom-footer .top{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;margin-top:40px;gap:5px;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description .custom-footer .top .title{text-transform:uppercase;font-weight:600;color:var(--custom-dark-brown);letter-spacing:1px;margin-bottom:6px;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description .custom-footer .top p{margin:0;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description .custom-footer .bottom{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;margin-top:40px;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description .custom-footer .bottom .broker{margin:0;text-transform:uppercase;color:var(--custom-dark-brown);font-weight:600;letter-spacing:1px;}footer#global-footer .footer .footer-contact-row .footer-info .footer__c
29ol .footer__section-content .footer__col-content .footer__col-description .custom-footer .bottom .custom-address-grid{display:-ms-grid;display:grid;-ms-grid-columns:repeat(3, 1fr);grid-template-columns:repeat(3, 1fr);gap:30px;margin-top:20px;}@media(max-width:769px){footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description .custom-footer .bottom .custom-address-grid{-ms-grid-columns:repeat(1, 1fr);grid-template-columns:repeat(1, 1fr);gap:15px;}}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description .custom-footer .bottom .custom-address-grid .item{text-align:center;}footer#global-footer .footer .footer-contact-row .footer-info .footer__col .footer__section-content .footer__col-content .footer__col-description .custom-footer .bottom .custom-address-grid .item p{margin:0;}footer#global-footer .footer .footer-disclaimer-row{text-align:center;margin-top:0;margin-bottom:40px;padding:0;}footer#global-footer .footer .footer-disclaimer-row img{-webkit-filter:invert(1);filter:invert(1);}footer#global-footer .footer .footer-disclaimer-row p{margin:0;}footer#global-footer .footer .footer-disclaimer-row .compliance-links{margin-bottom:10px;}footer#global-footer .footer .footer-disclaimer-row .compliance-links a{color:unset;}@media(max-width:769px){footer#global-footer .footer .footer-bottom-row{-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;text-align:center;}}@media(max-width:769px){footer#global-footer .footer .footer-bottom-row .footer-copyright .footer-copyright__powered{margin-top:10px;}}footer#global-footer .footer .footer-bottom-row .footer-copyright a{position:relative;-webkit-text-decoration:none!important;text-decoration:none!important;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:0 auto!important;}footer#global-footer .footer .footer-bottom-row .footer-copyright a::before,footer#global-footer .footer .footer-bottom-row .footer-copyright a::after{content:'';display:block;position:absolute;bottom:0;left:0;width:100%;height:1px;background:rgba(110, 99, 89, 0.35);-webkit-transition:0.3s;transition:0.3s;}footer#global-footer .footer .footer-bottom-row .footer-copyright a::after{width:0;background:var(--custom-dark-brown);}footer#global-footer .footer .footer-bottom-row .footer-copyright a:hover::after{width:100%;}footer#global-footer .footer .footer-bottom-row .footer-copyright .footer-copyright__privacy-policy{margin:0;padding:0;border:0;}footer#global-footer .footer .footer-bottom-row .footer-copyright .footer-copyright__privacy{border:0;margin:0;padding:0;}footer#global-footer .footer .footer-bottom-row .footer-copyright .footer-copyright__privacy span:not(.auto-year-update){border-left:1px solid rgba(0, 0, 0, .2);border-right:1px solid rgba(0, 0, 0, .2);display:inline-block;margin-left:15px;padding-left:15px;margin-right:15px;padding-right:15px;}@media(max-width:769px){footer#global-footer .footer .footer-bottom-row .footer-copyright .footer-copyright__privacy span:not(.auto-year-update){border:0;}}@media(max-width:400px){#global-mobile-contact .floating-contact-button-pop-up{height:100%;overflow:scroll;border:0!important;border-radius:0!important;}#global-mobile-contact .floating-contact-button-pop-up .floating-contact-button-pop-up__close{padding:0!important;margin:0!important;position:absolute;top:20px;right:10px;}}div#global-mobile-contact .floating-contact-button__btn-connect{background:linear-gradient(105.37deg, #866439 17.32%, #AF8E63 34.39%, #866439 70.33%, #C2A681 77.94%);border:0;letter-spacing:1px;}div#global-mobile-contact .floating-contact-button__btn-connect::after{display:none;}div#global-mobile-contact .floating-contact-button-pop-up{background:var(--custom-beige-2)!important;}div#global-mobile-contact .floating-contact-button-pop-up .lp-input{border-radius:0;background:transparent;-webkit-transition:.3s;transition:.3s;border:0;border-bottom:1px solid var(--custom-brown-op);}div#global-mobile-contact .floating-contact-button-pop-up .lp-input:hover{border-color:var(--custom-dark);}div#global-mobile-contact .floating-contact-button-pop-up .custom-select-toggle::after{width:16px;height:30px;-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;background:var(--custom-dark-brown);}div#global-mobile-contact .floating-contact-button-pop-up .custom-select-menu{border-radius:0;border:0;}div#global-mobile-contact .floating-contact-button-pop-up .custom-select-content{background:#fff;}div#global-mobile-contact .floating-contact-button-pop-up .custom-select-content .custom-select-item{font-weight:400;letter-spacing:1px;background:transparent;-webkit-transition:.3s;transition:.3s;color:var(--custom-dark);}div#global-mobile-contact .floating-contact-button-pop-up .custom-select-content .custom-select-item:hover,div#global-mobile-contact .floating-contact-button-pop-up .custom-select-content .custom-select-item.is-selected{opacity:.5;}div#global-mobile-contact .lp-tcr-message{opacity:.6;}div#global-mobile-contact .floating-contact-button-pop-up__btn-submit{background:transparent;color:var(--custom-dark-brown);font-size:12px;letter-spacing:1px;border:0;border-bottom:1px solid var(--custom-brown-op);}div#global-mobile-contact .floating-contact-button-pop-up__btn-submit:hover{color:var(--custom-dark);border-color:var(--custom-dark);}@media(min-width:992px){section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro){background-attachment:fixed;-webkit-background-position:bottom;background-position:bottom;}}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro)::before{content:'';display:block;position:absolute;inset:0;width:100%;height:100%;background:#000;opacity:.4;z-index:1;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro{height:80vh;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__overlay,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__overlay,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__overlay,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__overlay,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__overlay{display:none;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__content-wrapper,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__content-wrapper,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__content-wrapper,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__content-wrapper,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__content-wrapper{-webkit-box-pack:start;-ms-flex-pack:start;
29-webkit-justify-content:start;justify-content:start;-webkit-align-items:end;-webkit-box-align:end;-ms-flex-align:end;align-items:end;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__content-box,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__content-box,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__content-box,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__content-box,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__content-box{background:transparent;color:var(--custom-off-white);max-width:unset;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;padding:0;padding-bottom:60px;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__pre-title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__pre-title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__pre-title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__pre-title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__pre-title{font-family:Northwell;font-weight:400;font-style:italic;font-size:50px;text-transform:none;margin:0;padding:0;position:absolute;top:0;left:0;color:var(--custom-dark);z-index:2;text-shadow:0 0 10px rgba(255, 255, 255, 0.2),0 0 5px rgba(255, 255, 255, 0.2);}@media(max-width:560px){section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__pre-title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__pre-title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__pre-title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__pre-title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__pre-title{font-size:40px;}}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__title{color:var(--custom-off-white);margin:0;padding:0;font-size:80px;margin-top:1rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;text-align:left;}@media(max-width:560px){section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__title,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__title{font-size:60px;}}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__title::before,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__title::before,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__title::before,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__title::before,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__title::before{display:none;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__description,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__description,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__description,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__description,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__description{dis
29play:none;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .custom-intro__scroll-btn,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro__scroll-btn,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .neighborhood-intro__scroll-btn,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .agent-intro__scroll-btn,section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .development-intro__scroll-btn{display:none;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro .blog-post-intro__title{font-size:40px!important;max-width:1000px;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro .blog-post-intro__content-box{margin:0;padding:0;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro .blog-post-intro__author-content{display:none;}section:has(.custom-intro, .blog-post-intro, .neighborhood-intro, .agent-intro, .development-intro) .blog-post-intro .blog-post-intro__content-wrapper{height:calc(100% - 60px);}section:has(.custom-team-slider-devs) .text{font-family:var(--lp-body-font-family);color:var(--custom-text-dark);font-weight:400;font-size:15px;max-width:600px;margin-top:20px;}section:has(.custom-team-slider-devs) .auto-scroll-agents-slider__name-vertical{bottom:75px;}section:has(.custom-team-slider-devs) .auto-scroll-agents-slider__name-script{font-family:Northwell;padding-left:40px;bottom:30px;z-index:20;position:relative;}section:has(.custom-team-slider-devs) .auto-scroll-agents-slider__card{overflow:visible;}section:has(.custom-gsm) .media-blocks .media-blocks-container{padding:0;}section:has(.custom-gsm) .media-blocks .media-blocks-container .lp-title-group{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin-left:unset;max-width:unset;padding-left:var(--padding);padding-right:var(--padding);}section:has(.custom-gsm) .media-blocks .media-blocks-container .lp-title-group .media-blocks-title-subtitle{white-space:normal;}section:has(.custom-gsm) .media-blocks .media-blocks-container .lp-title-group .media-blocks-title-subtitle .custom-title-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:end;-webkit-box-align:end;-ms-flex-align:end;align-items:end;position:relative;}section:has(.custom-gsm) .media-blocks .media-blocks-container .lp-title-group .media-blocks-title-subtitle .custom-title-container h2{margin-top:0;margin-bottom:2.5rem;text-align:left;}@media(max-width:840px){section:has(.custom-gsm) .media-blocks .media-blocks-container .lp-title-group .media-blocks-title-subtitle .custom-title-container h2{margin:0;}}section:has(.custom-gsm) .media-blocks .media-blocks-container .lp-title-group .media-blocks-title-subtitle .custom-title-container .signature{position:absolute;bottom:0;}@media(max-width:840px){section:has(.custom-gsm) .media-blocks .media-blocks-container .lp-title-group .media-blocks-title-subtitle .custom-title-container .signature{position:relative;top:-60px;text-align:right;margin-bottom:-40px;}}@media(max-width:560px){section:has(.custom-gsm) .media-blocks .media-blocks-container .lp-title-group .media-blocks-title-subtitle .custom-title-container .signature{top:-40px;}}section:has(.custom-gsm) .media-blocks .media-blocks-grid{margin:0;display:-ms-grid;display:grid;-ms-grid-columns:repeat(3, 1fr);grid-template-columns:repeat(3, 1fr);gap:0;}@media(max-width:992px){section:has(.custom-gsm) .media-blocks .media-blocks-grid{-ms-grid-columns:repeat(1, 1fr);grid-template-columns:repeat(1, 1fr);}}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item{min-width:100%;max-width:100%;padding:0;margin:0;position:relative;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item:hover .video-wrapper{opacity:1!important;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item:hover .media-blocks-grid__image{opacity:0!important;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__image{padding:0;height:auto;width:100%;aspect-ratio:480/545;position:relative;background:transparent;margin:0;opacity:1;-webkit-transition:opacity 0.5s ease,visibility 0s 0.5s;transition:opacity 0.5s ease,visibility 0s 0.5s;}@media(max-width:992px){section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__image{aspect-ratio:16/9;}}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__image::before{content:'';display:block;position:absolute;inset:0;width:100%;height:100%;background:#000;z-index:1;opacity:.25;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__image img{object-fit:cover;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;max-width:unset;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__title,section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__button{display:none;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description{margin:0;padding:0;height:100%;min-height:100%;display:block;position:relative;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description .custom-text-container{height:100%;min-height:100%;position:relative;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;
29-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;z-index:4;color:#fff;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description .custom-text-container .gsm-link{position:absolute;width:100%;height:100%;font-size:0;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description .custom-text-container .pretitle{text-transform:uppercase;font-weight:500;font-size:14px;margin-bottom:40px;}@media(max-width:560px){section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description .custom-text-container .pretitle{margin-bottom:10px;}}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description .custom-text-container .gsm-name{margin:0;font-size:35px;padding-left:20px;padding-right:20px;}@media(max-width:560px){section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description .custom-text-container .gsm-name{font-size:28px;}}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description .video-wrapper{position:absolute;top:0;width:100%;height:100%;opacity:0;-webkit-transition:opacity 0.5s ease,visibility 0s 0.5s;transition:opacity 0.5s ease,visibility 0s 0.5s;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description .video-wrapper::before{content:'';display:block;position:absolute;inset:0;width:100%;height:100%;background:#000;opacity:.2;}section:has(.custom-gsm) .media-blocks .media-blocks-grid .media-blocks-grid__item .media-blocks-grid__text .media-blocks-grid__description .video-wrapper video{width:100%;height:100%;object-fit:cover;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__title-group,section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__description{max-width:unset;white-space:normal;margin-bottom:20px;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__item{height:100%;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__item:hover .property-showcase-slider__image{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide{height:630px;}@media(max-width:769px){section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide{height:500px;}}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__image-wrapper{overflow:hidden;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__image-wrapper::before{content:'';display:block;position:absolute;inset:unset!important;bottom:0!important;width:100%;height:50%;background-image:linear-gradient(to top, rgba(46, 39, 35, 1), rgba(46, 39, 35, 0));opacity:.8;z-index:1;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__image{height:100%;-webkit-transition:.3s;transition:.3s;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__property-status{display:none;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__item-info{z-index:3;background:transparent;color:#fff;width:100%;padding:40px;bottom:0;background:transparent;min-height:unset;}@media(max-width:769px){section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__item-info{padding:20px;}}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__item-info::before{display:none;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__item-info .property-showcase-slider__item-name{text-transform:unset!important;font-weight:400!important;letter-spacing:1px;font-family:var(--lp-body-font-family);font-size:14px;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__item-info .property-showcase-slider__item-price{font-size:22px;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__slide .property-showcase-slider__item-info .property-showcase-slider__item-features{display:none;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__controls{width:calc(100% - 40px * 2);padding-top:30px;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__controls .lp-arrow{border:0;}section:has(.custom-properties-slider) .property-showcase-slider__container .property-showcase-slider__controls .lp-arrow::after{-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;width:18px;}section:has(.custom-press-slider) div.press-list.lp-container{padding-top:0;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__title-group{max-width:unset;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__title-group .press-list__description{white-space:normal;opacity:1;margin:0;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__title-group .press-list__description .custom-title-container{text-align:left;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;
29-webkit-justify-content:end;justify-content:end;-webkit-align-items:end;-webkit-box-align:end;-ms-flex-align:end;align-items:end;max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__title-group .press-list__description .custom-title-container .lp-h2{margin-top:0;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__title-group .press-list__description .custom-title-container .signature{position:absolute;bottom:0;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection{display:-ms-grid!important;display:grid!important;-ms-grid-columns:65% 1fr;grid-template-columns:65% 1fr;-ms-grid-rows:repeat(3, 1fr);grid-template-rows:repeat(3, 1fr);gap:0px!important;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative!important;}@media (max-width: 992px){section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection{-ms-grid-columns:repeat(1, 1fr)!important;grid-template-columns:repeat(1, 1fr)!important;-ms-grid-rows:repeat(4, 1fr);grid-template-rows:repeat(4, 1fr);}}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured{-ms-grid-column:1;-ms-grid-column-span:1;grid-column:1/2;-ms-grid-row:1;-ms-grid-row-span:4;grid-row:1/5;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;min-width:100%;max-width:100%;}@media (max-width: 992px){section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured{width:100%;-ms-grid-column:2!important;-ms-grid-column-span:1!important;grid-column:2/3!important;margin-bottom:40px;}}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__image-container{width:100%!important;min-width:unset!important;max-width:unset!important;height:auto;aspect-ratio:16/9;min-height:600px;margin:0;}@media (max-width: 769px){section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__image-container{min-height:450px;}}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__image-container::before{content:'';display:block;position:absolute;inset:0;background-image:linear-gradient(to top, rgba(0, 0, 0, .2), rgba(0, 0, 0, 0));width:100%;height:100%;z-index:1;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__image-container img{object-position:50% 15%!important;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__text-block{position:absolute;bottom:0;left:0;-webkit-transform:unset;-moz-transform:unset;-ms-transform:unset;transform:unset;margin:0;min-width:unset;max-width:unset;width:100%;background:transparent;padding-bottom:32px;padding-left:24px;color:#fff;z-index:2;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__text-block .press-list-item__details{opacity:1;font-size:14px;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__text-block .press-list-item__text{border:0;padding:0;margin:0;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__text-block .press-list-item__text .press-list-item__title{max-width:70%;font-size:28px;text-transform:uppercase;}@media (max-width: 769px){section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__text-block .press-list-item__text .press-list-item__title{font-size:24px;max-width:100%;}}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__text-block .press-list-item__text .press-list-item__description{dis
29play:none;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item.is-featured .press-list-item__text-block .press-list-item__more{display:none;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured){-ms-grid-column:2!important;-ms-grid-column-span:1!important;grid-column:2/3!important;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:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;border-bottom:1px solid var(--custom-beige-2);width:calc(100% - 40px);margin-left:auto;min-width:unset;max-width:unset;height:100%!important;padding:30px 0;-webkit-transition:.3s;transition:.3s;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured):hover{opacity:.6;}@media (max-width: 992px){section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured){width:100%;padding-bottom:30px;}}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured) .press-list-item__image-container{display:none;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured) .press-list-item__text-block{border:0;margin:0;padding:0;min-width:unset;max-width:unset;background:transparent!important;color:var(--custom-dark);padding:0 24px;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured) .press-list-item__text-block .press-list-item__text{border:0;margin:0;padding:0;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured) .press-list-item__text-block .press-list-item__details{opacity:1;font-size:14px;margin-bottom:14px;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured) .press-list-item__text-block .press-list-item__title{text-transform:uppercase;font-size:26px!important;margin-bottom:0;margin-top:0;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured) .press-list-item__text-block .press-list-item__description,section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:not(.is-featured) .press-list-item__text-block .press-list-item__more{display:none;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:nth-child(4n + 4){border:0;padding-bottom:0;}section:has(.custom-press-slider) div.press-list.lp-container .press-list__collection .press-list-item:nth-child(4n + 2){padding-top:0;}section:has(.custom-press-slider) div.press-list.lp-container .pagination-controls .nav-arrows{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;gap:15px;}section:has(.custom-press-slider) div.press-list.lp-container .pagination-controls .nav-arrows #prevPress,section:has(.custom-press-slider) div.press-list.lp-container .pagination-controls .nav-arrows #nextPress{font-size:0!important;margin:0!important;-webkit-transition:.3s;transition:.3s;}section:has(.custom-press-slider) div.press-list.lp-container .pagination-controls .nav-arrows #prevPress::before,section:has(.custom-press-slider) div.press-list.lp-container .pagination-controls .nav-arrows #nextPress::before{content:'';display:block;position:relative;width:20px;height:30px;-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;background:var(--custom-dark-brown);}section:has(.custom-press-slider) div.press-list.lp-container .pagination-controls .nav-arrows #prevPress:hover,section:has(.custom-press-slider) div.press-list.lp-container .pagination-controls .nav-arrows #nextPress:hover{opacity:.7;}section:has(.custom-press-slider) div.press-list.lp-container .pagination-controls .nav-arrows #prevPress::before{-webkit-transform:scale
29X(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1);}section:has(.custom-press-slider) div.press-list.lp-container .press-list__pagination{display:none;}section:has(.custom-video-slider) .gallery-style-menu-slider__container{padding-left:var(--padding);padding-right:var(--padding);-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}section:has(.custom-video-slider) .gallery-style-menu-slider-header{padding:0;margin-top:30px;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;margin-bottom:0;}section:has(.custom-video-slider) .gallery-style-menu-slider-header p{margin:0;}section:has(.custom-video-slider) .gallery-style-menu-slider-header .gallery-style-menu-slider-header__arrows .lp-arrow{border:0;background:transparent;}section:has(.custom-video-slider) .gallery-style-menu-slider-header .gallery-style-menu-slider-header__arrows .lp-arrow:hover{opacity:.7;}section:has(.custom-video-slider) .gallery-style-menu-slider-header .gallery-style-menu-slider-header__arrows .lp-arrow::after{content:'';display:block;position:relative;width:20px;height:30px;-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;background:var(--custom-dark-brown);}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item{padding:0;margin-right:100px;position:relative;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item:hover .gallery-style-menu-slider-collection__img-cover img{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__card .gallery-style-menu-slider-collection__img-cover{height:auto;aspect-ratio:309/384;overflow:hidden;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__card .gallery-style-menu-slider-collection__img-cover::before{content:'';display:block;position:absolute;inset:0;background-image:linear-gradient(to top, rgba(0, 0, 0, .2), rgba(0, 0, 0, 0));width:100%;height:100%;z-index:1;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__card .gallery-style-menu-slider-collection__img-cover img{-webkit-transition:.3s;transition:.3s;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__card .gallery-style-menu-slider-collection__title{display:none;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__description{position:absolute;bottom:0;left:0;margin:0;height:100%;width:100%;z-index:2;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__description .gallery-style-menu-slider-collection__card{display:none;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__description .custom-video-player{height:100%;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__description .custom-video-player .video-gallery-card{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;
29-webkit-justify-content:end;justify-content:end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;bottom:0;text-align:center;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__description .custom-video-player .video-gallery-card .play-icon-cont{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%);}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__description .custom-video-player .video-gallery-card .play-icon{background:#fff;width:60px;aspect-ratio:1;border-radius:50%;background:rgba(255, 255, 255, 0.4);font-size:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:0.3s;transition:0.3s;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__description .custom-video-player .video-gallery-card .play-icon::before{content:'';display:block;position:relative;width:17px;aspect-ratio:1;-webkit-mask:var(--custom-play-icon) center/contain no-repeat;-webkit-mask:var(--custom-play-icon) center/contain no-repeat;mask:var(--custom-play-icon) center/contain no-repeat;background:#fff;right:-1px;}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__description .custom-video-player .video-gallery-card .play-icon:hover{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}section:has(.custom-video-slider) .gallery-style-menu-slider-collection .splide__list .gallery-style-menu-slider-collection__item .gallery-style-menu-slider-collection__description .custom-video-player .video-gallery-card h3{text-transform:none!important;font-size:28px;max-width:80%;}section:has(.custom-interactive-gsm) .text-editor{min-height:unset;}@media(min-width:992px){section:has(.custom-interactive-gsm) .text-editor{padding:0;}}section:has(.custom-interactive-gsm) .text-editor .text-editor-container{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;position:relative;}@media(min-width:992px){section:has(.custom-interactive-gsm) .text-editor .text-editor-container{min-height:100vh;}}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm{height:100%;width:100%;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .pre-title{margin:0;letter-spacing:1px;font-weight:400;text-align:center;position:absolute;top:120px;left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);font-family:Northwell;text-transform:none;font-size:40px;z-index:10;}@media(max-width:992px){section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .pre-title{position:relative;-webkit-transform:unset;-moz-transform:unset;-ms-transform:unset;transform:unset;top:unset;left:unset;}}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .items-container{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;
29-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:30px;z-index:10;position:relative;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .items-container .item-container{-webkit-transition:0.6s;transition:0.6s;cursor:pointer;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .items-container .item-container h2{margin:0;text-align:center;}@media(max-width:820px){section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .items-container .item-container h2{font-size:var(--custom-h3-size);}}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .items-container .item-container:hover{color:var(--custom-dark-brown)!important;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-top-left,section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-middle,section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-bottom{position:absolute;pointer-events:none;z-index:1;font-size:0;height:auto;-webkit-transition:all 0.9s cubic-bezier(0.22, 1, 0.36, 1);transition:all 0.9s cubic-bezier(0.22, 1, 0.36, 1);}@media(max-width:820px){section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-top-left,section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-middle,section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-bottom{display:none;}}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-top-left{top:48px;left:var(--padding);width:100%;max-width:310px;aspect-ratio:276/178;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-middle{top:50%;right:var(--padding);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:100%;max-width:300px;aspect-ratio:255/167;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-bottom{bottom:var(--padding);left:40%;-webkit-transform:translateX(-40%);-moz-transform:translateX(-40%);-ms-transform:translateX(-40%);transform:translateX(-40%);width:100%;max-width:281px;aspect-ratio:281/129;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm[data-active="sellers"] .img-top-left{top:60%;left:70%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm[data-active="sellers"] .img-middle{top:10%;right:80%;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm[data-active="sellers"] .img-bottom{bottom:40%;left:15%;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm[data-active="devs"] .img-top-left{top:20%;left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm[data-active="devs"] .img-middle{top:75%;right:var(--padding);-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm[data-active="devs"] .img-bottom{bottom:15%;left:10%;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm .img-reveal{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;-webkit-transition:opacity 0.5s ease;transition:opacity 0.5s ease;}section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm[data-active="buyers"] .img-reveal.buyers,section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm[data-active="sellers"] .img-reveal.sellers,section:has(.custom-interactive-gsm) .text-editor .text-editor-container .custom-interactive-gsm[data-active="devs"] .img-reveal.devs{opacity:1;}section:has(.custom-properties-grid) .properties-list__title-group{dis
29play:none;}@media(max-width:560px){section:has(.custom-properties-grid) .properties-list .lp-btn{width:100%!important;background:var(--custom-brown-op);border:0;color:#fff;}section:has(.custom-properties-grid) .properties-list .lp-btn:hover{background:var(--custom-dark);}}section:has(.custom-properties-grid) .properties-list__filters .properties-list__input{background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--custom-brown-op);}section:has(.custom-properties-grid) .properties-list__filters .properties-list__input:hover{border-color:var(--custom-dark);}section:has(.custom-properties-grid) .properties-list__filters .custom-select .custom-select-toggle.is-placeholder{background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--custom-brown-op);}section:has(.custom-properties-grid) .properties-list__filters .custom-select .custom-select-toggle.is-placeholder:hover{border-color:var(--custom-dark);}section:has(.custom-properties-grid) .properties-list__filters .custom-select-menu.open{border:1px solid var(--custom-brown-op);border-radius:0;}section:has(.custom-properties-grid) .properties-list__filters .custom-select-item{background:transparent!important;}section:has(.custom-properties-grid) .properties-list__filters .custom-select-item.is-selected,section:has(.custom-properties-grid) .properties-list__filters .custom-select-item:hover{color:var(--custom-brown-1)!important;}section:has(.custom-properties-grid) .properties-list__filters .custom-select-toggle:after{background:var(--custom-brown-1);-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;}section:has(.custom-properties-grid) .properties-list__filters .lp-input-icon:after{background:var(--custom-brown-1);}section:has(.custom-properties-grid) .properties-list__filters .lp-input:not(:placeholder-shown){background:transparent;border:1px solid var(--custom-brown-1);}section:has(.custom-properties-grid) .properties-list-range__row .properties-list-range__label{text-transform:uppercase;font-size:12px;letter-spacing:1px;font-weight:normal;}section:has(.custom-properties-grid) .properties-list-range__row .properties-list-range__range .noUi-connects::before{background:var(--custom-brown-op);}section:has(.custom-properties-grid) .properties-list-range__row .properties-list-range__range .noUi-connect{background:var(--custom-brown-op);}section:has(.custom-properties-grid) .properties-list-range__row .properties-list-range__range .noUi-handle{background-color:var(--custom-brown-op);box-shadow:0 0 0 1px var(--custom-brown-op);}section:has(.custom-properties-grid) .properties-list-range__row .properties-list-range__reset{color:var(--custom-brown-1);font-weight:400;}section:has(.custom-properties-grid) .properties-list-range__row .properties-list-range__reset:hover{color:var(--custom-dark);}section:has(.custom-properties-grid) .properties-list .properties-list__title-group{dis
29play:none;}section:has(.custom-properties-grid) .properties-list .properties-list__collection{display:-ms-grid;display:grid;-ms-grid-columns:repeat(2, 1fr);grid-template-columns:repeat(2, 1fr);gap:var(--padding);}@media(max-width:769px){section:has(.custom-properties-grid) .properties-list .properties-list__collection{-ms-grid-columns:repeat(1, 1fr);grid-template-columns:repeat(1, 1fr);}}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item{width:100%;max-width:100%;position:relative;}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__bottom-block{display:none;}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item:hover .properties-list-item__image-container::before{opacity:.8;}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__image-container{background:transparent;aspect-ratio:16/9;border-radius:0;}@media(max-width:1024px){section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__image-container{aspect-ratio:16/16;}}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__image-container::before{content:'';display:block;position:absolute;inset:0;width:100%;height:100%;background-image:linear-gradient(to top, rgba(46, 39, 35, 1), rgba(46, 39, 35, 0));opacity:.5;z-index:2;-webkit-transition:.3s;transition:.3s;}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__image-container .properties-list-item__tag{border-radius:0;background:linear-gradient(105.37deg, #866439 17.32%, #AF8E63 34.39%, #866439 70.33%, #C2A681 77.94%);color:var(--custom-white);text-transform:uppercase;font-weight:500;font-size:12px;letter-spacing:1px;left:unset;right:10px;top:10px;opacity:1;}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__image-container .properties-list-item__open-houses{bottom:unset;top:10px;left:10px;border-radius:0;background:linear-gradient(105.37deg, #866439 17.32%, #AF8E63 34.39%, #866439 70.33%, #C2A681 77.94%);color:var(--custom-white);font-weight:300;font-size:11px;letter-spacing:.5px;max-width:170px;-webkit-line-clamp:unset;opacity:1;}@media(min-width:560px){section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__image-container .properties-list-item__open-houses{max-width:unset;}}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__info{position:absolute;bottom:0;left:0;width:100%;z-index:99;color:#fff;height:unset;min-height:unset;padding:0;margin:0;}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__info .properties-list-item__top-block{padding:20px;}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__info .properties-list-item__top-block .properties-list-item__title{font-size:25px;letter-spacing:1px;}@media(max-width:560px){section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__info .properties-list-item__top-block .properties-list-item__title{font-size:20px;}}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__info .properties-list-item__top-block .properties-list-item__price{position:absolute;bottom:20px;right:20px;font-family:var(--lp-body-font-family);font-size:22px;}@media(max-width:1024px){section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__info .properties-list-item__top-block .properties-list-item__price{position:relative;-webkit-order:2;-ms-flex-order:2;order:2;bottom:unset;left:unset;right:unset;font-size:20px;margin-top:10px;}}@media(max-width:560px){section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__info .properties-list-item__top-block .properties-list-item__price{font-size:18px;}}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__info .properties-list-item__icons-row{gap:10px;}section:has(.custom-properties-grid) .properties-list .properties-list__collection .properties-list-item .properties-list-item__info .properties-list-item__icon-tag{color:#fff;padding:5px;margin:0;height:auto;background:transparent;border-radius:0;}section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-prev,section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-next{-webkit-transition:0.3s;transition:0.3s;}section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-prev:hover,section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-next:hover{opacity:0.6;cursor:pointer;}section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-prev a,section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-next a{border:0;}section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-prev a::after,section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-next a::after{content:'';display:block;position:relative;width:20px;height:30px;-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;background:var(--custom-dark-brown);}section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-page a,section:has(.custom-properties-grid) .properties-list .pagination-container .paginationjs-ellipsis a{border:0;}section:has(.custom-accordion-items){overflow:visible;}section:has(.custom-accordion-items) .accordion-tabs__accordion{max-width:1400px;margin:0 auto;}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-header{padding:30px;width:100%;margin:0;background:transparent;border-bottom:1px solid var(--custom-brown-op);-webkit-transition:.3s;transition:.3s;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;
29-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-align:center;}@media(max-width:769px){section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-header{padding:20px;}}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-header.is-active,section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-header:hover{border-color:var(--custom-dark);}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-header .accordion-tabs__accordion-title{color:var(--custom-text-dark);margin-bottom:20px;}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-header .accordion-tabs__accordion-opener{margin:0;border:0;-webkit-transition:0.3s;transition:0.3s;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;}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-header .accordion-tabs__accordion-opener:hover{opacity:0.6;}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-header .accordion-tabs__accordion-opener::before{content:'';display:block;position:relative;width:20px;height:30px;-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;background:var(--custom-dark-brown);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);left:unset;top:unset;}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-content.is-active{padding:30px;width:100%;margin:0;background:transparent;}@media(max-width:769px){section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-content.is-active{padding:var(--padding);padding-top:20px;}}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-content.is-active .custom-accordion-items{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:40px;}@media(max-width:769px){section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-content.is-active .custom-accordion-items{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:25px;}}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-content.is-active .custom-accordion-items .image{display:none;-webkit-flex-basis:40%;-ms-flex-preferred-size:40%;flex-basis:40%;height:400px;position:-webkit-sticky;position:sticky;top:0;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start;}@media(max-width:769px){section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-content.is-active .custom-accordion-items .image{aspect-ratio:16/9;overflow:hidden;}}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-content.is-active .custom-accordion-items .image img{width:100%;height:100%;object-fit:cover;object-position:center;}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-content.is-active .custom-accordion-items .text{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;text-align:center;color:var(--custom-text-dark);}section:has(.custom-accordion-items) .accordion-tabs__accordion .accordion-tabs__accordion-content.is-active .custom-accordion-items .text a{color:unset;}section:has(.custom-container-nav) .text-editor{padding:40px 0;-webkit-transition:.3s;transition:.3s;}@media(max-width:560px){section:has(.custom-container-nav) .text-editor{padding:30px 0;}}section:has(.custom-container-nav) .text-editor .custom-container-nav{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-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;
29-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:30px;}@media(max-width:992px){section:has(.custom-container-nav) .text-editor .custom-container-nav{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}@media(max-width:560px){section:has(.custom-container-nav) .text-editor .custom-container-nav{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}section:has(.custom-container-nav) .text-editor .custom-container-nav .nav-items{color:unset;text-transform:uppercase;letter-spacing:1px;font-size:14px;-webkit-transition:.3s;transition:.3s;}section:has(.custom-container-nav) .text-editor .custom-container-nav .nav-items:hover{opacity:.4!important;}.solid-section{-webkit-transition:top 0.3s ease-in-out,background-color 0.3s ease;transition:top 0.3s ease-in-out,background-color 0.3s ease;}.custom-scroll{box-shadow:0 4px 12px rgba(0,0,0,0.1);}.custom-scroll .text-editor{padding:25px 0!important;}section:has(.custom-video-gal) .video-gallery .video-gallery__header{max-width:unset;margin:0;}section:has(.custom-video-gal) .video-gallery .video-gallery__header .custom-title-container{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:0 auto;}section:has(.custom-video-gal) .video-gallery .video-gallery__header .custom-title-container .lp-h2{margin:0;padding:0;}section:has(.custom-video-gal) .video-gallery .video-gallery__header .custom-title-container .signature{top:20px;}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card{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;position:relative;}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card:hover .video-gallery-card__preview::before{opacity:.5;}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card:hover .video-gallery-card__btn-play{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card .video-gallery-card__header{position:absolute;bottom:0;z-index:1;color:#fff;padding:20px;min-height:unset;z-index:4;}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card .video-gallery-card__header h6{margin-bottom:10px;}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card .video-gallery-card__header p{margin:0;}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card .video-gallery-card__preview{height:auto;aspect-ratio:1/1;padding:0;}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card .video-gallery-card__preview::before{content:'';display:block;position:absolute;inset:0;width:100%;height:100%;background-image:linear-gradient(to top, rgba(46, 39, 35, 1), rgba(46, 39, 35, 0));opacity:.2;z-index:2;-webkit-transition:.3s;-webkit-transition:.3s;transition:.3s;}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card .video-gallery-card__preview .video-gallery-card__btn-play{color:#fff;width:70px;height:70px;border:0;background:rgba(255, 255, 255, 0.4);z-index:5;-webkit-transition:.3s;transition:.3s;}section:has(.custom-video-gal) .video-gallery .video-gallery__row .video-gallery-card .video-gallery-card__preview .video-gallery-card__btn-play::after{margin:0;background:#fff;-webkit-mask:var(--custom-play-icon) center/contain no-repeat;mask:var(--custom-play-icon) center/contain no-repeat;}section:has(.custom-video-gal) .video-gallery .video-gallery__pagination .video-gallery__controls .paginationjs-prev a,section:has(.custom-video-gal) .video-gallery .video-gallery__pagination .video-gallery__controls .paginationjs-next a{border:0;}section:has(.custom-video-gal) .video-gallery .video-gallery__pagination .video-gallery__controls .paginationjs-prev a::after,section:has(.custom-video-gal) .video-gallery .video-gallery__pagination .video-gallery__controls .paginationjs-next a::after{width:20px;height:30px;-webkit-mask:var(--custom-arrows) center/contain no-repeat;-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;background:var(--custom-dark-brown);}section:has(.custom-video-gal) .video-gallery .video-gallery__pagination .video-gallery__controls .paginationjs-page a{border:0;}
29section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__description{margin:0;opacity:1;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__description .custom-title-container{margin:0 auto;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters{margin:0;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .lp-input{border:0;border-bottom:1px solid var(--custom-brown-op);border-radius:0;-webkit-transition:.3s;transition:.3s;background:transparent;font-weight:normal;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .lp-input:hover{border-color:var(--cusom-dark);}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .mls-properties-with-map-filters__grid-switcher{border-radius:0;background:transparent;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .mls-properties-with-map-filters__grid-switcher .mls-properties-with-map-filters__grid-switcher-tab{border:0;border-bottom:1px solid var(--custom-brown-op);border-radius:0;-webkit-transition:.3s;transition:.3s;background:transparent;font-weight:normal;color:unset;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .mls-properties-with-map-filters__grid-switcher .mls-properties-with-map-filters__grid-switcher-tab.active,section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .mls-properties-with-map-filters__grid-switcher .mls-properties-with-map-filters__grid-switcher-tab:hover{border-color:var(--custom-dark);}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .mls-properties-with-map-filters__grid-btn:after,section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .custom-select-toggle:after{-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;width:15px;height:10px;background:currentcolor;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);border:0;border-radius:0;right:20px;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .custom-select-content .custom-select-item{font-weight:normal;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .custom-select-content .custom-select-item:hover,section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .custom-select-content .custom-select-item.is-selected{background:var(--custom-beige-2);color:var(--custom-dark);}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .more-filters{border-radius:0;border:0;border-bottom:1px solid var(--custom-brown-op);font-weight:normal;text-transform:uppercase;color:var(--custom-brown-1);-webkit-transition:.3s;transition:.3s;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__filters .mls-properties-with-map__filters-grid .more-filters:hover{border-color:var(--custom-dark);color:var(--custom-dark);}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container{display:-ms-grid;display:grid;-ms-grid-columns:repeat(2, 1fr);grid-template-columns:repeat(2, 1fr);gap:var(--padding);margin:0;}@media(max-width:769px){section:has(.custom-mls-grid) .mls-properties-with-ma
29p__container .mls-properties-with-map__grid-container{-ms-grid-columns:repeat(1, 1fr);grid-template-columns:repeat(1, 1fr);gap:30px;}}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item{width:100%;height:100%;padding:0;margin:0;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .lp-listing-card{margin:0;position:relative;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .lp-listing-card:hover .mls-properties-with-map-card__img-wrap::before{opacity:.7!important;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .lp-listing-card:hover img{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__img-wrap{border-radius:0;padding:0;aspect-ratio:16/9;}@media(max-width:1024px){section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__img-wrap{aspect-ratio:16/11;}}@media(max-width:560px){section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__img-wrap{aspect-ratio:16/16;}}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__img-wrap::before{content:'';display:block;position:absolute;inset:0;width:100%;height:100%;background-image:linear-gradient(to top, rgba(46, 39, 35, 1), rgba(46, 39, 35, 0));opacity:.5;z-index:2;-webkit-transition:.3s;-webkit-transition:.3s;transition:.3s;}@media(max-width:560px){section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__img-wrap::before{opacity:.7;}}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__img-wrap img{-webkit-transition:.3s;transition:.3s;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__info{margin:0;padding:0;position:absolute;bottom:0;left:0;z-index:2;color:var(--custom-white);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:20px;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__info .mls-properties-with-map-card__address{-webkit-order:-1;-ms-flex-order:-1;order:-1;font-family:var(--lp-h2-font-family);font-size:25px;opacity:1;}@media(max-width:560px){section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__info .mls-properties-with-map-card__address{font-size:22px;}}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__info .mls-properties-with-map-card__attributes{opacity:1;font-size:14px;gap:10px;}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__info .mls-properties-with-map-card__price{position:absolute;bottom:20px;right:20px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;font-family:var(--lp-body-font-family);font-size:22px;font-weight:normal;}@media(max-width:1024px){section:has(.custom-mls-grid) .mls-properties-with-ma
29p__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__info .mls-properties-with-map-card__price{position:relative;bottom:unset;right:unset;margin-top:6px;margin-bottom:10px;font-size:18px;}}@media(max-width:560px){section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__grid-container .mls-properties-with-map__grid-item .mls-properties-with-map-card__info .mls-properties-with-map-card__price{font-size:16px;margin-bottom:0;}}section:has(.custom-mls-grid) .mls-properties-with-map__container .mls-properties-with-map__footer{margin:0;padding:0;margin-top:40px;}.neighborhoods-list-section{padding-top:50px!important;}@media(max-width:769px){.neighborhoods-list-section{padding-top:40px!important;}}.neighborhoods-list-section .lp-title-group .custom-title-container{margin:0 auto;}.neighborhoods-list-section .neighborhoods-list{gap:30px;}.neighborhoods-list-section .neighborhoods-list__item{position:relative;margin:0;padding:0;}.neighborhoods-list-section .neighborhoods-list__item:hover .neighborhoods-list__img-holder img{opacity:0.6;}.neighborhoods-list-section .neighborhoods-list__item .neighborhoods-list__img-holder{margin:0;height:auto;aspect-ratio:16/11;}.neighborhoods-list-section .neighborhoods-list__item .neighborhoods-list__img-holder img{-webkit-transition:0.3s;transition:0.3s;}.neighborhoods-list-section .neighborhoods-list__item .neighborhoods-list__img-holder::before{content:'';display:block;position:absolute;inset:0;width:100%;height:100%;background-image:linear-gradient(to top, rgba(0, 0, 0, .2), rgba(0, 0, 0, 0));z-index:1;}.neighborhoods-list-section .neighborhoods-list__item .neighborhoods-list__text{position:absolute;bottom:0;left:0;color:#fff;min-height:unset;padding:20px;margin:0;border:0;z-index:2;}.neighborhoods-list-section .neighborhoods-list__item .neighborhoods-list__text .neighborhoods-list__desc{display:none;}.neighborhoods-list-section .neighborhoods-list__item .neighborhoods-list__link{display:none;}.neighborhoods-list-section .pagination-container .paginationjs-prev,.neighborhoods-list-section .pagination-container .paginationjs-next{-webkit-transition:0.3s;transition:0.3s;}.neighborhoods-list-section .pagination-container .paginationjs-prev:hover,.neighborhoods-list-section .pagination-container .paginationjs-next:hover{opacity:0.6;cursor:pointer;}.neighborhoods-list-section .pagination-container .paginationjs-prev a,.neighborhoods-list-section .pagination-container .paginationjs-next a{border:0;}.neighborhoods-list-section .pagination-container .paginationjs-prev a::after,.neighborhoods-list-section .pagination-container .paginationjs-next a::after{content:'';display:block;position:relative;width:20px;height:30px;-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;background:var(--custom-dark-brown);}.neighborhoods-list-section .pagination-container .paginationjs-page a{border:0;}.neighborhoods-list .neighborhoods-list__item{overflow:visible;}.neighborhoods-list .neighborhoods-list__item:nth-child(6n+1) .neighborhoods-list__text .neighborhoods-list__title:not(.vertical),.neighborhoods-list .neighborhoods-list__item:nth-child(6n+3) .neighborhoods-list__text .neighborhoods-list__title:not(.vertical),.neighborhoods-list .neighborhoods-list__item:nth-child(6n+5) .neighborhoods-list__text .neighborhoods-list__title:not(.vertical),.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__text .neighborhoods-list__title:not(.vertical){display:none;}.neighborhoods-list .neighborhoods-list__item:nth-child(6n+1) .neighborhoods-list__text .neighborhoods-list__title.vertical,.neighborhoods-list .neighborhoods-list__item:nth-child(6n+3) .neighborhoods-list__text .neighborhoods-list__title.vertical,.neighborhoods-list .neighborhoods-list__item:nth-child(6n+5) .neighborhoods-list__text .neighborhoods-list__title.vertical,.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__text .neighborhoods-list__title.vertical{display:block!important;}.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__img-holder{border-left:15px solid #DBD6D2;}.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__text{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-ms-flex-pack:end;
29-webkit-justify-content:end;justify-content:end;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;}@media(max-width:560px){.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__text{font-size:30px!important;}}.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__text .vertical{position:absolute;bottom:25px;-webkit-writing-mode:vertical-rl;-ms-writing-mode:tb-rl;writing-mode:vertical-rl;-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);left:-10px;font-family:var(--lp-body-font-family);font-weight:400!important;font-size:43px;color:var(--custom-white)!important;text-shadow:0px 2px 30px rgba(0, 0, 0, 0.1);z-index:2;margin:0;padding:0;display:none;}@media(max-width:560px){.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__text .vertical{font-size:30px!important;left:-5px;}}.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__text .neighborhoods-list__title:not(.vertical){font-size:55px;font-family:Northwell;font-weight:400;font-style:italic;margin:0;text-transform:none!important;text-align:right;width:100%;padding:0;margin:0;bottom:0!important;line-height:1;margin-bottom:-20px;display:block;}@media(max-width:560px){.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__text .neighborhoods-list__title:not(.vertical){font-size:40px;}}.neighborhoods-list .neighborhoods-list__item .neighborhoods-list__text .neighborhoods-list__title.vertical{display:none!important;}section:has(.custom-video-properties-slider) .properties-video-slider__container{padding-left:var(--padding);padding-right:var(--padding);}section:has(.custom-video-properties-slider) .properties-video-slider .properties-video-slider-hero__slide{padding-left:var(--padding);}@media(max-width:1024px){section:has(.custom-video-properties-slider) .properties-video-slider .properties-video-slider-hero__slide{padding-bottom:70px!important;}}section:has(.custom-video-properties-slider) .properties-video-slider .properties-video-slider-hero__slide .properties-video-slider-hero__price{font-weight:normal!important;font-family:var(--lp-h2-font-family);}section:has(.custom-video-properties-slider) .properties-video-slider .properties-video-slider-hero__arrows{gap:30px;padding-left:var(--padding);left:0;}@media(max-width:1024px){section:has(.custom-video-properties-slider) .properties-video-slider .properties-video-slider-hero__arrows{position:relative;width:100%;bottom:unset;top:-60px;margin-bottom:-60px;z-index:5;}}@media(max-width:560px){section:has(.custom-video-properties-slider) .properties-video-slider .properties-video-slider-hero__arrows{margin-bottom:-50px;}}section:has(.custom-video-properties-slider) .properties-video-slider .properties-video-slider-hero__arrow{-webkit-transition:.3s;transition:.3s;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}section:has(.custom-video-properties-slider) .properties-video-slider .properties-video-slider-hero__arrow:hover{opacity:.5;}section:has(.custom-video-properties-slider) .properties-video-slider .properties-video-slider-hero__arrow::after{-webkit-mask:var(--custom-arrows) center/contain no-repeat;mask:var(--custom-arrows) center/contain no-repeat;width:18px;background:#fff;}@media(min-width:992px){section:has(.neighborhods-banner){background-attachment:fixed;}}section:has(.neighborhods-banner) .text-editor{min-height:60vh;}section:has(.neighborhods-banner) .text-editor *{font-size:0;}.lp-h1,.lp-h2,.lp-h3{font-variation-settings:'opsz' 44,'GRAD' 0,'slnt' 0,'XTRA' 510,'XOPQ' 96,'YOPQ' 40,'YTLC' 540,'YTUC' 712,'YTAS' 750,'YTDE' -220,'YTFI' 738;}.watermark{font-variation-settings:'GRAD' 0,'slnt' 0,'XTRA' 511,'XOPQ' 96,'YOPQ' 50,'YTLC' 537,'YTUC' 712,'YTAS' 750,'YTDE' -221,'YTFI' 738,'opsz' 44;}.header.scroll .header-logo__img--light{display:none!important;}.header-logo{height:80px;}footer#global-footer .footer-contact-row{position:relative!important;overflow:visible!important;}footer#global-footer .footer-contact-row::after{content:""!important;position:absolute!important;bottom:0!important;left:50%!important;-webkit-transform:translate(-50%, 50%)!important;-moz-transform:translate(-50%, 50%)!important;-ms-transform:translate(-50%, 50%)!important;transform:translate(-50%, 50%)!important;width:110px!important;height:75px!important;background:transparent url("https://media-production.lp-cdn.com/media/ef4f8536-be04-4b11-ba22-bf76d33a786b") center/contain no-repeat!important;box-shadow:15px 0 transparent,-15px 0 transparent;z-index:10!important;}footer#global-footer .footer-navigation-row{padding-top:45px!important;}@media (max-width: 768px){footer#global-footer .footer-contact-row::after{width:75px!important;height:55px!important;box-shadow:10px 0 transparent,-10px 0 transparent;}footer#global-footer .footer-navigation-row{padding-top:35px!important;}}div#global-mobile-contact .floating-contact-button-pop-up .lp-input::-webkit-input-placeholder{opacity:.5;}div#global-mobile-contact .floating-contact-button-pop-up .lp-input::-moz-placeholder{opacity:.5;}div#global-mobile-contact .floating-contact-button-pop-up .lp-input:-ms-input-placeholder{opacity:.5;}div#global-mobile-contact .floating-contact-button-pop-up .lp-input::placeholder{opacity:.5;}</style> 30 <style id="wow-hide-elements">.wow{visibility:hidden!important}</style> 31 <style id="page-css"> 32 #section-8fc9291e-f19e-4157-8d83-15e819748bc8{color:#1A1A1A;--fontColor:#1A1A1A;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:10%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));}@media(min-width:992px){#section-8fc9291e-f19e-4157-8d83-15e819748bc8{background-attachment:fixed;-webkit-background-position:bottom;background-position:bottom;}}#section-8fc9291e-f19e-4157-8d83-15e819748bc8::before{content:'';display:block;position:absolute;inset:0;width:100%;height:100%;background:#000;opacity:.3;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form{color:#fff;z-index:1;position:relative;height:100vh;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;
32-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form .contact-form__container{border:0;padding:0;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form .contact-form__container .custom-title-container{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:0 auto;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form .contact-form__container .custom-title-container h2{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:0;padding:0;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form .contact-form__container .lp-input{background:transparent;border-radius:0;border:0;border-bottom:1px solid silver;-webkit-transition:.3s;transition:.3s;color:#fff;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form .contact-form__container .lp-input:hover{border-color:#fff;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form .contact-form__container .lp-label{text-transform:uppercase;font-weight:500;letter-spacing:1px;font-size:12px;color:#fff;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form .contact-form__container .lp-tcr-message{opacity:.7;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form__error{position:absolute;}@media(max-width:769px){#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;}@media(max-width:769px){#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .contact-form .contact-form__container{padding-top:30px!important;}}}#section-8fc9291e-f19e-4157-8d83-15e819748bc8>div:last-child{padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 >*:last-child{position:relative;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .overlay-component{position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--overlay-color, var(--section-overlay, rgba(0, 0, 0, 0.3)));transition-property:opacity;transition-timing-function:linear;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .video-wrapper{position:absolute;top:0;left:0;height:100%;width:100%;}@media screen and (max-width: 900px){#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .video-wrapper.hidable{display:none;}}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .full-screen-video-component{position:relative;height:100%;overflow:hidden;}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 video{position:absolute;z-index:-1000;width:100%;object-fit:cover;}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){#section-8fc9291e-f19e-4157-8d83-15e819748bc8 video{overflow:hidden;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-moz-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);min-width:100%;min-height:100%;width:auto;height:auto!important;}}#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .poster{display:none;position:absolute;top:0;left:0;bottom:0;right:0;z-index:-1000;background:center center/cover;}@media screen and (max-width: 900px){#section-8fc9291e-f19e-4157-8d83-15e819748bc8 .poster{display:block;}}#section-99576cd8-bea1-4c71-8729-1626de58e72f{color:#1a1a1a;--fontColor:#1a1a1a;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:10%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#ffffff;}body>div.sidemenu{background-color:rgba(238, 237, 233, 1);color:rgba(26, 26, 26, 1);--fontColor:rgba(26, 26, 26, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:10%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(238, 237, 233, 1);--bgColor_H:48;--bgColor_S:13%;--bgColor_L:92%;--bgColor_A:1;--bgColor_darkenDir:-1;}footer{background-color:rgba(219, 214, 210, 1);color:rgba(122, 122, 122, 1);--fontColor:rgba(122, 122, 122, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:48%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(219, 214, 210, 1);--bgColor_H:27;--bgColor_S:11%;--bgColor_L:84%;--bgColor_A:1;--bgColor_darkenDir:-1;} 33 </style> 34 <style id="custom-style-css">.social_icons-style-1 a{border-color:#6E6359!important;background-color:rgba(0, 0, 0, 0)!important;color:#6E6359!important;}.social_icons-style-1 a:hover{border-color:#6E6359!important;background-color:#6E6359!important;color:#FFFFFF!important;}.social_icons-style-1 a i{color:inherit!important;}
34.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.pagination-style-1 li a{color:rgba(110, 99, 89, 0.25)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(110, 99, 89, 0.25)!important;}.pagination-style-1 li a:hover{color:#6E6359!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#6E6359!important;}.pagination-style-1 li.active a{color:#6E6359!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#6E6359!important;}.button-style-1{color:#6E6359!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(110, 99, 89, 0.25)!important;}.button-style-1:hover{color:#101010!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#101010!important;}.hyperlink-style-1{color:#6E6359!important;}.hyperlink-style-1:hover{color:#6E6359!important;}.button-style-2{color:#DBD6D2!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#DBD6D2!important;}.button-style-2:hover{color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#FFFFFF!important;}.social_icons-style-2 a{border-color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;color:#FFFFFF!important;}.social_icons-style-2 a:hover{border-color:#FFFFFF!important;background-color:#FFFFFF!important;color:#6E6359!important;}.social_icons-style-2 a i{color:inherit!important;}
34.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.pagination-style-2 li a{color:#DBD6D2!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#DBD6D2!important;}.pagination-style-2 li a:hover{color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#FFFFFF!important;}.pagination-style-2 li.active a{color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#FFFFFF!important;}.hyperlink-style-2{color:#FFFFFF!important;}.hyperlink-style-2:hover{color:#FFFFFF!important;}</style> 35 <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode 36 defaults, and dynamically loads the locale + main (and banner if needed). --> 37
37<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="0de14d64-da82-4bec-9862-7f827d40ab3f"></script>
37 38 39 40
40<script> 41 (function utmParse() { 42 const url = new URL(window.location.href); 43 if (url.search) { 44 const utm = url.search.split(/\?|&/g).reduce((acc, current) => { 45 const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g); 46 if (matched) { 47 acc[matched[0]] = current.replace(`${matched[0]}=`, ''); 48 } 49 return acc; 50 }, {}); 51 if (Object.keys(utm).length) { 52 window.localStorage.setItem('utm_vars', JSON.stringify(utm)); 53 } else { 54 // Remove old utm vars 55 window.localStorage.removeItem('utm_vars'); 56 } 57 } 58 // Set referrer in local storage 59 // This is meant to be stored once to avoid self-referrals and to have the first referrer only. 60 if (!window.localStorage.getItem('referrer')) { 61 // Capture the Referrer URL 62 const referrer = document.referrer; 63 if (referrer) { 64 // Only store the referrer if it comes from outside the current domain (to avoid self-referrals) 65 const currentDomain = window.location.hostname; 66 const referrerDomain = new URL(referrer).hostname; 67 68 if (referrerDomain !== currentDomain) { 69 // Store it in localStorage 70 localStorage.setItem('referrer', referrer); 71 } 72 } 73 } 74 })(); 75 </script>
75 76 <!-- Bing Webmaster Tools Verification -->
77<script> 78 // Check if on the homepage before the body loads 79 if (window.location.pathname === '/' || window.location.pathname === '/index.html') { 80 document.write('<meta name="msvalidate.01" content="2541349B2B44CBF9143FF93D5E4ABB31" />'); 81 } 82</script>
82 83 <!-- GOOGLE TRANSLATE STYLES are moved to external CSS --> 84</head> 85<body> 86 <div id="google_translate_element" style="display: none"></div> 87 88 <nav id="global-navbar" data-el-id="3242b8f0-253e-46f7-b814-162ccf958ec2"> 89 90<header class="header js-header" style="--textColor: rgba(255, 255, 255, 1); --backgroundColor: rgba(26, 26, 26, 1);"> 91 <div class="header-container "> 92 93 <a href="/" class="header-logo"> 94 <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/106b32a5-f3e4-48fb-865e-2c0531d83a8b" 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/106b32a5-f3e4-48fb-865e-2c0531d83a8b 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/106b32a5-f3e4-48fb-865e-2c0531d83a8b 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/106b32a5-f3e4-48fb-865e-2c0531d83a8b 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/106b32a5-f3e4-48fb-865e-2c0531d83a8b 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/106b32a5-f3e4-48fb-865e-2c0531d83a8b 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/106b32a5-f3e4-48fb-865e-2c0531d83a8b 3456w" sizes="350px" alt="Company logo" class="header-logo__img header-logo__img--dark"> 95 <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/09796551-e3e2-4a8e-8d4d-028460014a09" 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/09796551-e3e2-4a8e-8d4d-028460014a09 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/09796551-e3e2-4a8e-8d4d-028460014a09 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/09796551-e3e2-4a8e-8d4d-028460014a09 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/09796551-e3e2-4a8e-8d4d-028460014a09 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/09796551-e3e2-4a8e-8d4d-028460014a09 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/09796551-e3e2-4a8e-8d4d-028460014a09 3456w" sizes="350px" alt="Company logo" class="header-logo__img header-logo__img--light"> 96 </a> 97 98 <ul class="header-navigation"> 99 <li class="header-navigation__item "> 100 101 <a class="header-navigation__link " data-type="TRANSLATE" tabindex="0" style="--delay: 0s">Language</a> 102 </li> 103 </ul> 104 105 106 <div class="header-buttons-wrapper"> 107 108 109 110 <button type="button" class="header-hamburger-btn lp-btn hamburger-component hamburger js-sidemenu-opener" 111 title="Toggle Sidemenu"></button> 112 </div> 113 </div> 114 115</header> 116 117 </nav> 118 <div id="global-sidemenu" class="sidemenu" data-el-id="033c3235-a8bd-45bf-a4a8-96977e33190d"> 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135<button class="sidemenu-close toggle close lp-btn lp-icon link-icon--plus"></button> 136 137 138<div class="sidemenu-wrapper sidemenu-wrapper--small" style="--navItemNumberColor: rgba(177, 132, 99, 1);"> 139 <div class="sidemenu-nav-holder "> 140 <ul class="sidemenu-navigation "> 141 <li class="sidemenu-navigation__item js-idemenu-navigation-item "> 142 <a 143 href="/" 144 class="sidemenu-navigation__link">Home</a> 145 146 </li> 147 148 <li class="sidemenu-navigation__item js-idemenu-navigation-item sidemenu-navigation__item--sub-nav">
149 <span class="sidemenu-navigation__link sidemenu-navigation__link--sub-nav sidemenu-navigation__link--sub-nav-active js-sub-nav-opener lp-icon"> 150 About 151 </span> 152 153 <ul class="sidemenu-navigation-sub-nav lp-a"> 154 <li class="sidemenu-navigation-sub-nav__item"><a href="/about" class="sidemenu-navigation-sub-nav__link">Meet Ricardo</a></li> 155 <li class="sidemenu-navigation-sub-nav__item"><a href="/team" class="sidemenu-navigation-sub-nav__link">Meet the Team</a></li> 156 <li class="sidemenu-navigation-sub-nav__item"><a href="/press" class="sidemenu-navigation-sub-nav__link">Press & Media</a></li> 157 <li class="sidemenu-navigation-sub-nav__item"><a href="/testimonials" class="sidemenu-navigation-sub-nav__link">Testimonials</a></li> 158 <li class="sidemenu-navigation-sub-nav__item"><a href="/international-luxury-alliance" class="sidemenu-navigation-sub-nav__link">International Luxury Alliance</a></li> 159 <li class="sidemenu-navigation-sub-nav__item"><a href="/recognitions" class="sidemenu-navigation-sub-nav__link">Recognitions</a></li> 160 <li class="sidemenu-navigation-sub-nav__item"><a href="/cervone-deegan" class="sidemenu-navigation-sub-nav__link">Cervone Deegan</a></li> 161 </ul> 162 </li> 163 164 <li class="sidemenu-navigation__item js-idemenu-navigation-item sidemenu-navigation__item--sub-nav"> 165 <span class="sidemenu-navigation__link sidemenu-navigation__link--sub-nav sidemenu-navigation__link--sub-nav-active js-sub-nav-opener lp-icon"> 166 Properties 167 </span> 168 169 <ul class="sidemenu-navigation-sub-nav lp-a"> 170 <li class="sidemenu-navigation-sub-nav__item"><a href="/properties/sale" class="sidemenu-navigation-sub-nav__link">RR&A On Markets</a></li> 171 <li class="sidemenu-navigation-sub-nav__item"><a href="/properties/off-markets" class="sidemenu-navigation-sub-nav__link">Exclusive Off Markets</a></li> 172 <li class="sidemenu-navigation-sub-nav__item"><a href="/properties/sold" class="sidemenu-navigation-sub-nav__link">Notable Luxury Sales</a></li> 173 <li class="sidemenu-navigation-sub-nav__item"><a href="/boston-luxury-real-estate" class="sidemenu-navigation-sub-nav__link">Boston Luxury Homes</a></li> 174 <li class="sidemenu-navigation-sub-nav__item"><a href="/global-collective" class="sidemenu-navigation-sub-nav__link">Global Collective</a></li> 175 </ul> 176 </li> 177 178 </ul> 179 180 <ul class="sidemenu-navigation "> 181 <li class="sidemenu-navigation__item js-idemenu-navigation-item "> 182 <a 183 href="/neighborhoods" 184 class="sidemenu-navigation__link">Communities</a> 185 186 </li> 187 188 <li class="sidemenu-navigation__item js-idemenu-navigation-item "> 189 <a 190 href="/home-search/listings" 191 class="sidemenu-navigation__link">Home Search</a> 192 193 </li> 194 195 <li class="sidemenu-navigation__item js-idemenu-navigation-item "> 196 <a 197 href="/developers" 198 class="sidemenu-navigation__link">Developers</a> 199 200 </li> 201 202 </ul> 203 204 <ul class="sidemenu-navigation "> 205 <li class="sidemenu-navigation__item js-idemenu-navigation-item sidemenu-navigation__item--sub-nav">
206 <span class="sidemenu-navigation__link sidemenu-navigation__link--sub-nav sidemenu-navigation__link--sub-nav-active js-sub-nav-opener lp-icon"> 207 Resources 208 </span> 209 210 <ul class="sidemenu-navigation-sub-nav lp-a"> 211 <li class="sidemenu-navigation-sub-nav__item"><a href="/blog" class="sidemenu-navigation-sub-nav__link">Blog</a></li> 212 <li class="sidemenu-navigation-sub-nav__item"><a href="/buyers" class="sidemenu-navigation-sub-nav__link">Buyers</a></li> 213 <li class="sidemenu-navigation-sub-nav__item"><a href="/sellers" class="sidemenu-navigation-sub-nav__link">Sellers</a></li> 214 <li class="sidemenu-navigation-sub-nav__item"><a href="/media" class="sidemenu-navigation-sub-nav__link">Media</a></li> 215 </ul> 216 </li> 217 218 <li class="sidemenu-navigation__item js-idemenu-navigation-item "> 219 <a 220 href="/contact" 221 class="sidemenu-navigation__link">Contact</a> 222 223 </li> 224 225 </ul> 226 227 </div> 228 229 <div class="sidemenu-footer"> 230 <div class="sidemenu__info-group sidemenu__col"> 231 <div class="sidemenu__section-content"> 232 <div class="sidemenu__col-content"> 233 <p class="sidemenu__col-title">Contact</p><div class="sidemenu__col-description lp-a"> 234 <p class="sidemenu__col-agent-name">[Agent Name Goes Here]</p> 235 <a href="tel:3105554444" class="sidemenu__col-phone">(310) 555-4444</a> 236 <a href="/cdn-cgi/l/email-protection#05666a6b716466714569707d70777c75776076606b66602b666a68" class="sidemenu__col-email"><span class="__cf_email__" data-cfemail="74171b1a001517003418010c01060d04061107111a17115a171b19">[email protected]</span></a> 237 </div> 238 </div> 239 <div class="sidemenu__col-content"> 240 <p class="sidemenu__col-title">Office</p> <div class="sidemenu__col-description lp-a sidemenu__col-description--pre-line"><p>1808 Stanford Street Santa Monica, CA 90404</p></div> 241 242 </div> 243 </div> 244 245 </div> 246 247 <div class="sidemenu-socials-block"> 248 <p class="sidemenu__col-title">Follow Us</p> 249 <ul class="lp-socials dark"> 250 251 <li> 252 <a 253 href="https://www.facebook.com/" 254 class="lp-socials__link" 255 data-wow-delay="0s" 256 target="_blank" 257 aria-label="FACEBOOK" 258 > 259 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 260 </a> 261 </li> 262 <li> 263 <a 264 href="https://www.instagram.com/" 265 class="lp-socials__link" 266 data-wow-delay="0.1s" 267 target="_blank" 268 aria-label="INSTAGRAM" 269 > 270 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 271 </a> 272 </li> 273 <li> 274 <a 275 href="https://www.linkedin.com/" 276 class="lp-socials__link" 277 data-wow-delay="0.2s" 278 target="_blank" 279 aria-label="LINKEDIN" 280 >
281 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 282 </a> 283 </li> 284 </ul> </div> 285 </div> 286</div> 287 </div> 288 <div id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="4c08210d-8fa1-4e4b-ad13-3209994c2ceb"> 289 <div class="floating-contact-button"> 290 <div class="floating-contact-button__btn-holder js-btn-holder" 291 style="--backgroundColor: rgba(238, 237, 233, 1); --textColor: rgba(26, 26, 26, 1); --pillTextColor: rgba(255, 255, 255, 1); --pillBackgroundColor: rgba(177, 132, 99, 1);"> 292 <button type="button" class="floating-contact-button__btn-connect js-btn-connect lp-icon lp-ico-arrow-top">Let's Connect</button> 293 </div> 294 295 <div class="floating-contact-button-pop-up js-pop-up" style="--backgroundColor: rgba(238, 237, 233, 1); --textColor: rgba(26, 26, 26, 1);"> 296 <form class="floating-contact-button-pop-up__form js-form" data-type="contact-form"> 297 <h3 class="floating-contact-button-pop-up__title">Leave a Message</h3> 298 299 <div class="floating-contact-button-pop-up__input-group lp-input-group"> 300 <input id="__FullName" type="text" name="name" 301 class="lp-input js-input-name lp-input--light" 302 required placeholder="Full Name"> 303 </div> 304 305 <div class="floating-contact-button-pop-up__input-group lp-input-group"> 306 <input id="__Email" type="email" name="email" 307 class="lp-input js-email-input " 308 required placeholder="Email"> 309 </div> 310 311 <div class="floating-contact-button-pop-up__input-group lp-input-group"> 312 <input class="lp-input " type="tel" placeholder="Phone" id="__Phone" 313 name="phone" required> 314 </div> 315 316 <select name="interest" id="-field-interest" 317 class="floating-contact-button-pop-up__input-group lp-input js-select " required> 318 <option value="" selected disabled data-label="Interest">Interested in...</option> 319 <option value="Selling & Buying">Selling & Buying</option> 320 <option value="Selling">Selling</option> 321 <option value="Buying">Buying</option> 322 <option value="Renting">Renting</option> 323 <option value="Other">Other</option> 324 <label for="-field-interest" class="lp-label sr-only">Interest</label> 325 </select> 326 327 <div class="floating-contact-button-pop-up__input-group lp-input-group"> 328 <textarea name="message" rows="4" id="__Message" class="lp-input " 329 placeholder="Message" required></textarea> 330 </div> 331 332 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 333 <label class='lp-tcr-content'> 334 <span class='lp-tcr-checkbox'> 335 <input 336 type='checkbox' 337 id='-termsAccepted' 338 name='termsAccepted' 339 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 340 oninput="this.setCustomValidity('')" 341 required 342 /></span> 343 <span class='lp-tcr-message'> 344 345 I agree to be contacted by 346 Ricardo Rodriguez & Associates 347 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 348 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 349 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 350 </span> 351 </label> 352 353</div> 354 355 <button type="submit" class="floating-contact-button-pop-up__btn-submit lp-btn lp-btn--mob-full-width button-style-1">Submit</button> 356 357 <div class="lp-h-pot"> 358 <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off" 359 tabindex="-1"> 360 </div> 361 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 362 <input type="hidden" name="button_text" value="Let's Connect"> 363 </form> 364 365 <div class="floating-contact-button-pop-up__success js-success"> 366 <h3 class="floating-contact-button-pop-up__title">Thank you for your message. We will be in touch with you shortly.</h3> 367 368 <a 369 href="/properties" 370 371 class="lp-btn floating-contact-button-pop-up__success-btn button-style-1" 372 373 374 375 376 377 > 378 Explore Our Properties 379 </a> 380 </div> 381 <button type="button" class="floating-contact-button-pop-up__close js-close-btn lp-icon"></button> 382 </div> 383 384</div> 385 386 </div> 387 <section id="section-8fc9291e-f19e-4157-8d83-15e819748bc8" class="video-section is-font-color-dark is-background-color-light" data-el-id="ebc5d50e-a4a6-419c-8f09-726c01970aad">
388 <div class="video-wrapper"> 389 <div class="full-screen-video-component"> 390 <div class="video-wrapper"> 391 <video class="lazy" 392 poster="https://res.cloudinary.com/luxuryp/videos/f_auto,q_auto/so_0,eo_0/sqawwvjpuzf01f3wnatn/luxury-modern-living-room-interior.jpg" 393 style="height:100%;" 394 loop 395 muted 396 autoplay 397 playsinline> 398 <source data-src="https://res.cloudinary.com/luxuryp/videos/f_webm,vc_vp9,q_auto:best,w_1920,c_limit/sqawwvjpuzf01f3wnatn/luxury-modern-living-room-interior.webm" type="video/webm;codecs=vp9"> 399<source data-src="https://res.cloudinary.com/luxuryp/videos/f_mp4,vc_h265,q_auto:best,w_1920,c_limit/sqawwvjpuzf01f3wnatn/luxury-modern-living-room-interior.mp4" type="video/mp4;codecs=hvc1"> 400<source data-src="https://res.cloudinary.com/luxuryp/videos/f_mp4,vc_h264,q_auto:best,w_1920,c_limit/sqawwvjpuzf01f3wnatn/luxury-modern-living-room-interior.mp4" type="video/mp4"> 401 </video> 402 </div> 403 </div> 404 </div> 405 <div class="overlay-component"style="--section-overlay: rgba(255, 255, 255, 0.5);"></div> 406 <div class="contact-form lp-vertical-paddings"> 407 <div class="contact-form__container"> 408 <div class="contact-form__title-group lp-title-group"> 409 410 <div class="contact-form__subtitle lp-a"><div class="custom-title-container left top big beige"> 411<h2 class="lp-h2">Contact</h2> 412<p class="signature">Get in Touch</p> 413</div></div> 414 </div> 415 <form action="" class="contact-form__form js-form" data-type="contact-form"> 416 <div class="lp-h-pot"> 417 <label for="section-8fc9291e-f19e-4157-8d83-15e819748bc8-if-middleName">Middle Name</label> 418 <input id="section-8fc9291e-f19e-4157-8d83-15e819748bc8-if-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 419 </div> 420 <div class="contact-form__group"> 421 <div class="contact-form__group-container lp-input-group"> 422 <input required id="section-8fc9291e-f19e-4157-8d83-15e819748bc8-name" name="name" type="text" class="contact-form__input lp-input js-input-name" 423 placeholder="Enter Your Full Name"> 424 <label for="section-8fc9291e-f19e-4157-8d83-15e819748bc8-name" class="contact-form__label lp-label">Name</label> 425 </div> 426 <div class="contact-form__group-container lp-input-group"> 427 <input required id="section-8fc9291e-f19e-4157-8d83-15e819748bc8-phone" name="phone" type="tel" class="contact-form__input lp-input" 428 placeholder="Your Phone"> 429 <label for="section-8fc9291e-f19e-4157-8d83-15e819748bc8-phone" class="contact-form__label lp-label">Phone</label> 430 </div> 431 <div class="contact-form__group-container lp-input-group"> 432 <div class="contact-form__input-container"> 433 <input required id="section-8fc9291e-f19e-4157-8d83-15e819748bc8-email" name="email" type="email" class="contact-form__input lp-input js-email-input" 434 placeholder="@"> 435 <div class="contact-form__error error">Enter a valid email</div> 436 </div> 437 438 <label for="section-8fc9291e-f19e-4157-8d83-15e819748bc8-email" class="contact-form__label lp-label">Email</label> 439 </div> 440 </div> 441 442 <div class="contact-form__input-group lp-input-group"> 443 <textarea id="section-8fc9291e-f19e-4157-8d83-15e819748bc8-message" name="message" class="contact-form__input lp-input" 444 placeholder="Type Your Message"></textarea> 445 <label for="section-8fc9291e-f19e-4157-8d83-15e819748bc8-message" class="contact-form__label lp-label">Your Message</label> 446 </div> 447 <div class="contact-form__disclaimer lp-disclaimer"> <label style='display: none;' for='section-8fc9291e-f19e-4157-8d83-15e819748bc8-termsAccepted'>Opt In/Disclaimer Consent:</label> 448 <label class='lp-tcr-content'> 449 <span class='lp-tcr-checkbox'> 450 <input 451 type='checkbox' 452 id='section-8fc9291e-f19e-4157-8d83-15e819748bc8-termsAccepted' 453 name='termsAccepted' 454 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 455 oninput="this.setCustomValidity('')" 456 required 457 /></span> 458 <span class='lp-tcr-message'> 459 460 I agree to be contacted by 461 Ricardo Rodriguez & Associates 462 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 463 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 464 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 465 </span> 466 </label> 467 468</div> 469 <button type="submit" class="contact-form-submit lp-btn lp-icon button-style-2"> 470 <div class="contact-form-submit__default">
471 <span class="contact-form-submit__content lp-btn__content">Send Message</span> 472 </div> 473 <div class="contact-form-submit__loading"> 474 <span class="contact-form-submit__content lp-btn__content">Sending</span> 475 </div> 476 <div class="contact-form-submit__success"> 477 <div class="contact-form-submit__content lp-btn__content">Message Sent!</div> 478 </div> 479 </button> 480 </form> 481 482 </div> 483</div> 484 485</section> 486<section id="section-99576cd8-bea1-4c71-8729-1626de58e72f" class="solid-section is-font-color-dark is-background-color-light" data-el-id="85dc9e17-a4c7-449c-8890-869fdc11b485"> 487 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/css/splide-core.min.css"/>
vendor: 109 bytes, lines 487-488
487 488<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
488<script src="https://cdn.jsdelivr.net/npm/@splidejs/[email protected]/dist/js/splide.min.js"></script>
vendor: 1 bytes, line 488
488
489<script type="text/x-handlebars-template" class="jsIGTemplate"> 490 {{#each items}} 491 <a href="{{permalink}}" target="_blank" class="instagram-feed__item lp_animation-img-zoom splide__slide insta-item insta-type-{{mediaType}}"> 492 <img class="instagram-feed__image" src="{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{else}}{{mediaUrl}}{{/ifEquals}}" alt="Instagram post by @{{username}}"> 493 </a> 494 {{/each}} 495</script>
495 496 497<div class="instagram-feed lp-vertical-paddings"> 498 <div class="instagram-feed__container" style="--titleColor: #B18463; --boxColor: rgba(238, 237, 233, 1);"> 499 <div class="instagram-feed__title-group lp-title-group"> 500 <div class="instagram-feed__icon lp-icon"></div> 501 <p class="instagram-feed__pretitle">Follow Us On Instagram</p> 502 <h2 class="instagram-feed__title instagram-feed__title--with-pretitle"><a href="#" target="_blank" class="instagram-feed__link jsIGLink jsIGName"></a></h2> 503 </div> 504 505 <div class="instagram-feed__collection splide js-slider"> 506 <div class="splide__track"> 507 <ul class="splide__list jsIGContainer"> 508 </ul> 509 </div> 510 </div> 511 </div> 512</div> 513 514 515 516 517</section> 518 519 <div id="modals" class="modals"></div> 520 <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="b8c9ffd0-3b1f-4577-96fc-828efdac86e7"> 521 522 523<div class="footer"> 524 <div class="footer-logos-row"> 525 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/b73459dd-d071-4c12-a585-3449838e09e1" class="footer-logo" alt=""> 526 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/f3e65b90-01fa-46c7-a5ec-e7188991070c" 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/f3e65b90-01fa-46c7-a5ec-e7188991070c 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/f3e65b90-01fa-46c7-a5ec-e7188991070c 687w" class="footer-logo" sizes="350px" alt=""> 527 </div> 528 <div class="footer-contact-row"> 529 <div class="footer-info "> 530 <div class="footer__col"> 531 532 <div class="footer__section-content"> 533 <div class="footer__col-content"> 534 <p class="footer__col-title"></p> <div class="footer__col-description lp-a lp-pre-line"><div class="custom-footer"> 535 <div class="top"> 536 <p class="title">Contact</p> 537 <p>Ricardo Rodriguez & Associates</p> 538 <a class="custom-link dark" href="/cdn-cgi/l/email-protection#2f5d464c4e5d4b40015d404b5d46485a4a556f414a4240594a5c014c4042"><span class="__cf_email__" data-cfemail="097b606a687b6d66277b666d7b606e7c6c7349676c64667f6c7a276a6664">[email protected]</span></a> <a class="custom-link dark" href="tel:+6178230072">(617) 823-0072</a></div> 539 <div class="bottom"> 540 <p class="broker">Coldwell Banker Realty Office</p> 541 <div class="custom-address-grid"> 542 <div class="item"> 543 <p>399 Boylston Street, Suite 200<br>Boston, MA</p> 544 </div> 545 <div class="item"> 546 <p>196 Waterman Street <br>Providence, RI</p> 547 </div> 548 <div class="item"> 549 <p>111 Maplewood Ave., Ste. C <br>Portsmouth, NH</p> 550 </div> 551 </div> 552 </div> 553 </div></div> 554 </div> 555 556 </div> 557 </div> 558 559 560 561 </div> 562 563 <ul class="lp-socials social_icons-style-1 footer-socials"> 564 565 <li> 566 <a 567 href="https://www.facebook.com/RRABoston/" 568 class="lp-socials__link socials__link" 569 data-wow-delay="0s" 570 target="_blank" 571 aria-label="FACEBOOK" 572 >
573 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 574 </a> 575 </li> 576 <li> 577 <a 578 href="https://www.instagram.com/rraboston/?hl=en" 579 class="lp-socials__link socials__link" 580 data-wow-delay="0.1s" 581 target="_blank" 582 aria-label="INSTAGRAM" 583 > 584 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 585 </a> 586 </li> 587 <li> 588 <a 589 href="https://www.linkedin.com/in/ricardo-rodriguez-48b3b6a" 590 class="lp-socials__link socials__link" 591 data-wow-delay="0.2s" 592 target="_blank" 593 aria-label="LINKEDIN" 594 > 595 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 596 </a> 597 </li> 598 <li> 599 <a 600 href="https://www.youtube.com/c/ricardorodriguezassociates" 601 class="lp-socials__link socials__link" 602 data-wow-delay="0.3s" 603 target="_blank" 604 aria-label="YOUTUBE" 605 > 606 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 607 </a> 608 </li> 609 </ul> </div> 610 611 612 <div class="footer-navigation-row"> 613 <p class="footer-navigation-title">navigation</p> 614 615 <ul class="footer-navigation lp-a"> 616 <li class="footer-navigation__item"> 617 <a href="/about" class="footer-navigation__link ">Meet Ricardo</a> 618 619 </li> 620 <li class="footer-navigation__item"> 621 <a href="/team" class="footer-navigation__link ">Meet the Team</a> 622 623 </li> 624 <li class="footer-navigation__item"> 625 <a href="/properties" class="footer-navigation__link ">RR&A Exclusive Properties</a> 626 627 </li> 628 <li class="footer-navigation__item"> 629 <a href="/neighborhoods" class="footer-navigation__link ">Communities</a> 630 631 </li> 632 <li class="footer-navigation__item"> 633 <a href="/developers" class="footer-navigation__link ">New Construction</a> 634 635 </li> 636 <li class="footer-navigation__item"> 637 <a href="/home-search/listings" class="footer-navigation__link ">Home Search</a> 638 639 </li> 640 <li class="footer-navigation__item"> 641 <a href="/html-sitemap" class="footer-navigation__link ">HTML Sitemap</a> 642 643 </li> 644 </ul> 645 </div> 646 647 648 649 <div class="footer-disclaimer-row"> 650 <div class="footer-disclaimer"><div class="compliance-links"><a class="custom-link dark" href="https://coldwellbankerconnections.com/privacy-policy/" target="_blank" rel="noopener">Coldwell Banker Realty Privacy Policy</a></div> 651<p>The 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. Affiliated real estate agents are independent contractor sales associates, not employees. ©<span class="auto-year-update">2026</span> Coldwell Banker. All Rights Reserved. Coldwell Banker and the Coldwell Banker logo are trademarks of Coldwell Banker Real Estate LLC. The Coldwell Banker® 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-top: 0;" src="https://media-production.lp-cdn.com/media/efaf1535-e302-495a-acb4-7e8c20809fd0" alt="Realtor and Equal Housing Opportunity logo" width="25" height="auto"></p></div> 652 653 654 </div> 655 656 657 <div class="footer-bottom-row"> 658 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/jnymuan6tigs629jigsz" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/jnymuan6tigs629jigsz 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/jnymuan6tigs629jigsz 390w" class="footer-logo" sizes="350px" alt=""> 659 660 <div class="footer-copyright lp-a"> 661 <div class="footer-copyright__powered"> 662 Powered by <a href="https://www.luxurypresence.com/" class="" target="_blank">Luxury Presence</a> 663 </div> 664 665 <div class="footer-copyright__privacy">
666 <span>Copyright © <span class="auto-year-update">2026</span></span> 667 668 669 <a href="/terms-and-conditions" class="footer-copyright__privacy-policy">Privacy Policy</a> 670 </div> 671 </div> 672 </div> 673 674</div> 675 676 </footer> 677 678 <div id="modal-global-contact-us" class="modal " 679 data-el-id="" 680 style="background-color: ;" 681 > 682 <div class="modal-content"> 683 684 685 <div class="contact-form-modal lp-vertical-paddings" style="--leftPanelBgColor: rgba(26, 26, 26, 1); --textColor:rgba(255, 255, 255, 1); --formBgColor: rgba(255, 255, 255, 1); --formTextColor: rgba(26, 26, 26, 1)"> 686 <div class="contact-form-modal__bg"> 687 <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/5517869e-0fc4-45b3-bc3c-173b72c39dec" 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/5517869e-0fc4-45b3-bc3c-173b72c39dec 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/5517869e-0fc4-45b3-bc3c-173b72c39dec 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/5517869e-0fc4-45b3-bc3c-173b72c39dec 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/5517869e-0fc4-45b3-bc3c-173b72c39dec 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/5517869e-0fc4-45b3-bc3c-173b72c39dec 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/5517869e-0fc4-45b3-bc3c-173b72c39dec 3456w" sizes="(min-width: 1981px) 12.2222vw, (min-width: 1025px) 424px, 100vw" class="contact-form-modal__bg-image portrait" alt=""> 688 </div> 689 <div class="contact-form-modal__close-container"> 690 <button class="contact-form-modal__close toggle close lp-btn lp-icon link-icon--plus"></button> 691 </div> 692 <div class="contact-form-modal__container"> 693 <div class="contact-form-modal-details only-desktop"> 694 <h2 class="contact-form-modal-details__title only-desktop js-contact-title">Get in Touch</h2> 695 <div class="contact-form-modal-agent"> 696 <div class="contact-form-modal-agent__contact"> 697 <p class="contact-form-modal-agent__name">[Team/Agent Name Goes here]</p> 698 <p class="contact-form-modal-agent__phone lp-a"> 699 <a class="contact-form-modal-agent__link" href="tel:+1222333344444">+1 222 3333 44444</a> 700 </p> 701 <p class="contact-form-modal-agent__email lp-a"> 702 <a class="contact-form-modal-agent__link" href="/cdn-cgi/l/email-protection#147d7a727b5478616c61666d64667167717a77713a777b79"><span class="__cf_email__" data-cfemail="e1888f878ea18d949994939891938492848f8284cf828e8c">[email protected]</span></a> 703 </p> 704 </div> 705 <div class="contact-form-modal-agent__contact"> 706 <p class="contact-form-modal-agent__addres lp-pre-line">Mon - Fri, 9 am - 6 pm 707 Address Goes Here</p> 708 </div> 709 </div> 710 711 712 <div class="contact-form-modal-details__description">Coldwell Banker Residential Brokerage 713 Beverly Hills Real Estate Agent</div> 714 715 <div class="contact-form-modal-details__socials"> 716 <ul class="lp-socials social_icons-style-1 contact-form-modal-details__socials-l
716ist lp-socials"> 717 718 <li> 719 <a 720 href="https://www.facebook.com/" 721 class="lp-socials__link contact-form-modal-details__socials-link" 722 data-wow-delay="0s" 723 target="_blank" 724 aria-label="FACEBOOK" 725 > 726 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 727 </a> 728 </li> 729 <li> 730 <a 731 href="https://www.instagram.com/" 732 class="lp-socials__link contact-form-modal-details__socials-link" 733 data-wow-delay="0.1s" 734 target="_blank" 735 aria-label="INSTAGRAM" 736 > 737 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 738 </a> 739 </li> 740 </ul> </div> 741 </div> 742 <div class="contact-form-modal-form"> 743 <h2 class="contact-form-modal-form__title only-mobile js-contact-title">Get in Touch</h2> 744 <form action="" class="contact-form-modal-form__form js-form" data-type="contact-form"> 745 <div class="lp-h-pot"> 746 <label for="-if-middleName">Middle Name</label> 747 <input id="-if-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 748 </div> 749 <div class="contact-form-modal-form__group"> 750 <div class="contact-form-modal-form__group-container lp-input-group"> 751 <input required id="-name" name="name" type="text" class="lp-input js-input-name" placeholder="Enter your full name"> 752 <label for="-name" class="lp-label contact-form-modal-form__label">Name</label> 753 </div> 754 <div class="contact-form-modal-form__group-container lp-input-group"> 755 <input required id="-phone" name="phone" type="tel" class="lp-input" placeholder="Your phone"> 756 <label for="-phone" class="lp-label contact-form-modal-form__label">Phone</label> 757 </div> 758 </div> 759 <div class="contact-form-modal-form__group lp-input-group"> 760 <div class="contact-form-modal-form__input-container"> 761 <input required id="-email" name="email" type="email" class="lp-input js-email-input" placeholder="@"> 762 <div class="contact-form-modal-form__error error">Enter a valid email</div> 763 </div> 764 765 <label for="-email" class="contact-form-modal-form__label lp-label">Email</label> 766 </div> 767 <div class="contact-form-modal-form__group lp-input-group"> 768 <textarea id="-message" name="message" class="contact-form-modal-form__textarea lp-input" placeholder="Type your message"></textarea> 769 <label for="-message" class="contact-form-modal-form__label lp-label">Your Message</label> 770 </div> 771 772 <div class="contact-form-modal-form__disclaimer lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 773 <label class='lp-tcr-content'>
774 <span class='lp-tcr-checkbox'> 775 <input 776 type='checkbox' 777 id='-termsAccepted' 778 name='termsAccepted' 779 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 780 oninput="this.setCustomValidity('')" 781 required 782 /></span> 783 <span class='lp-tcr-message'> 784 785 I agree to be contacted by 786 [Team/Agent Name Goes Here] 787 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 788 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 789 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 790 </span> 791 </label> 792 793 </div> 794 795 <button type="submit" class="contact-form-modal-submit lp-btn lp-icon button-style-1"> 796 <div class="contact-form-modal-submit__default"> 797 <span class="contact-form-modal-submit__content lp-btn__content">Send Message</span> 798 </div> 799 <div class="contact-form-modal-submit__loading"> 800 <span class="contact-form-modal-submit__content lp-btn__content">Sending</span> 801 </div> 802 <div class="contact-form-modal-submit__success"> 803 <span class="contact-form-modal-submit__content lp-btn__content">Message Sent!</span> 804 </div> 805 </button> 806 </form> 807 </div> 808 809 <div class="contact-form-modal-details only-mobile"> 810 <h2 class="contact-form-modal-details__title only-desktop js-contact-title">Get in Touch</h2> 811 <div class="contact-form-modal-agent"> 812 <div class="contact-form-modal-agent__contact"> 813 <p class="contact-form-modal-agent__name">[Team/Agent Name Goes here]</p> 814 <p class="contact-form-modal-agent__phone lp-a"> 815 <a class="contact-form-modal-agent__link" href="tel:+1222333344444">+1 222 3333 44444</a> 816 </p> 817 <p class="contact-form-modal-agent__email lp-a"> 818 <a class="contact-form-modal-agent__link" href="/cdn-cgi/l/email-protection#c4adaaa2ab84a8b1bcb1b6bdb4b6a1b7a1aaa7a1eaa7aba9"><span class="__cf_email__" data-cfemail="70191e161f301c050805020900021503151e13155e131f1d">[email protected]</span></a> 819 </p> 820 </div> 821 <div class="contact-form-modal-agent__contact"> 822 <p class="contact-form-modal-agent__addres lp-pre-line">Mon - Fri, 9 am - 6 pm 823 Address Goes Here</p> 824 </div> 825 </div> 826 827 828 <div class="contact-form-modal-details__description">Coldwell Banker Residential Brokerage 829 Beverly Hills Real Estate Agent</div> 830 831 <div class="contact-form-modal-details__socials"> 832 <ul class="lp-socials social_icons-style-1 contact-form-modal-details__socials-list lp-socials"> 833 834 <li> 835 <a 836 href="https://www.facebook.com/" 837 class="lp-socials__link contact-form-modal-details__socials-l
837ink" 838 data-wow-delay="0s" 839 target="_blank" 840 aria-label="FACEBOOK" 841 > 842 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 843 </a> 844 </li> 845 <li> 846 <a 847 href="https://www.instagram.com/" 848 class="lp-socials__link contact-form-modal-details__socials-link" 849 data-wow-delay="0.1s" 850 target="_blank" 851 aria-label="INSTAGRAM" 852 > 853 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 854 </a> 855 </li> 856 </ul> </div> 857 </div> 858 </div> 859 </div> 860 861 </div> 862 <button class="close lp-close" type="button" aria-label="close modal"> 863 <span class="lp-close-icon" aria-hidden="true"></span> 864 </button> 865 </div> 866 <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;"> 867 <style> 868 #qualifying-questions-modal .custom-select-toggle { 869 border: 1px solid #848484; 870 border-radius: 8px; 871 padding: 12px 16px; 872 } 873 874 #qualifying-questions-modal .custom-select-toggle.is-placeholder { 875 color: #848484; 876 } 877 878 #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder { 879 color: #848484; 880 opacity: 1; 881 } 882 883 #qualifying-questions-modal .disclaimer-more { 884 display: none; 885 } 886 887 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more { 888 display: inline; 889 } 890 891 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis { 892 display: none; 893 } 894 </style>
vendor: 119 bytes, lines 894-895
894 895 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
895<script> 896 function toggleDisclaimerQualifyingQuestionsModal() { 897 const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text'); 898 const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer'); 899 900 if (disclaimerText.classList.contains('collapsed')) { 901 disclaimerText.classList.remove('collapsed'); 902 toggleButton.textContent = 'Read less'; 903 toggleButton.setAttribute('aria-expanded', 'true'); 904 } else { 905 disclaimerText.classList.add('collapsed'); 906 toggleButton.textContent = 'Read more'; 907 toggleButton.setAttribute('aria-expanded', 'false'); 908 } 909 } 910 </script>
910 911 <div style="max-width: 400px; width: 95%; margin: 0 auto;"> 912 <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;"> 913 <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;"> 914 <span aria-hidden="true">×</span> 915 </button> 916 <div style="padding: 40px 30px 32px;"> 917 <div style="text-align: left; margin-bottom: 32px;"> 918 <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;"> 919 Thanks, please provide more information to help serve you 920 </h2> 921 </div> 922 <form id="qualifying-questions-modal-form" data-type="contact-form"> 923 <input type="hidden" name="source" value="PROFILE_UPDATE" /> 924 <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" /> 925 <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" /> 926 <label for="qualifying-questions-modal-email" style="display:none;"> 927 Email 928 </label> 929 <label for="qualifying-questions-modal-triggerSource" style="display:none;"> 930 Trigger Source 931 </label> 932 933 <div style="margin-bottom: 20px;"> 934 <label for="qualifying-questions-modal-phoneNumber" style="display:none;"> 935 Phone Number 936 </label> 937 <input 938 type="tel" 939 id="qualifying-questions-modal-phoneNumber" 940 name="phoneNumber" 941 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;" 942 pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$" 943 required 944 placeholder="Phone" 945 aria-label="Phone Number" 946 inputmode="tel" 947 autocomplete="tel" 948 onfocus="this.style.borderColor='black';" 949 onblur="this.style.borderColor='#848484';" 950 /> 951 </div> 952 953 <div style="margin-bottom: 20px;"> 954 <label for="qualifying-questions-modal-interest" style="display:none;"> 955 Interest 956 </label> 957 <select 958 id="qualifying-questions-modal-interest" 959 name="interest" 960 required 961 data-label="Interest" 962 aria-label="Interest" 963 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;" 964 onfocus="this.style.borderColor='black'; this.style.color='black';" 965 onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';" 966 > 967 <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option> 968 <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option> 969 <option value="Selling" style="background: #fff; color: black;">Selling</option> 970 <option value="Buying" style="background: #fff; color: black;">Buying</option> 971 <option value="Renting" style="background: #fff; color: black;">Renting</option> 972 <option value="Other" style="background: #fff; color: black;">Other</option> 973 </select> 974 </div> 975 976 <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;"> 977 <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label> 978 <label class='lp-tcr-content'>
979 <span class='lp-tcr-checkbox'> 980 <input 981 type='checkbox' 982 id='qualifying-questions-modal-qualifying-questions-termsAccepted' 983 name='termsAccepted' 984 aria-describedby='qualifying-questions-modal-disclaimer-text' 985 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 986 oninput="this.setCustomValidity('')" 987 required 988 /></span> 989 <span class='lp-tcr-message'> 990 <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;"> 991 992 I agree to be contacted by 993 <strong>Ricardo Rodriguez & Associates</strong> 994 via call, email, and text <span class="disclaimer-more">for real estate services. 995 To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 996 You can also click the unsubscribe link in the emails. 997 Message and data rates may apply. Message frequency may vary.</span> 998 <span class="disclaimer-ellipsis">...</span> 999 <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>. 1000 </div> 1001 <button 1002 id="qualifying-questions-modal-toggle-disclaimer" 1003 type="button" 1004 style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;" 1005 aria-expanded="false" 1006 onclick="toggleDisclaimerQualifyingQuestionsModal()" 1007 > 1008 Read more 1009 </button> 1010 </span> 1011 </label> 1012 </div> 1013 1014 <div> 1015 <button 1016 type="submit" 1017 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;" 1018 onmouseover="this.style.background='transparent'; this.style.color='black';" 1019 onmouseout="this.style.background='black'; this.style.color='white';" 1020 > 1021 Submit 1022 </button> 1023 </div> 1024 </form> 1025 </div> 1026 </div> 1027 </div> 1028 </div> 1029 1030
1030<script> 1031 (function() { 1032 var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy")); 1033 1034 if ("IntersectionObserver" in window && lazyVideos.length > 0) { 1035 var lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 1036 entries.forEach(function(video) { 1037 if (video.isIntersecting) { 1038 for (var source in video.target.children) { 1039 var videoSource = video.target.children[source]; 1040 if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") { 1041 videoSource.src = videoSource.dataset.src; 1042 } 1043 } 1044 1045 video.target.load(); 1046 video.target.classList.remove("lazy"); 1047 lazyVideoObserver.unobserve(video.target); 1048 } 1049 }); 1050 }); 1051 1052 lazyVideos.forEach(function(lazyVideo) { 1053 lazyVideoObserver.observe(lazyVideo); 1054 }); 1055 } 1056 })(); 1057 </script>
1057 1058 1059 <!-- Global site tag (gtag.js) - Google Analytics --> 1060
1060<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1060 1061 1062 <!-- Google Tag Manager --> 1063
1063<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1064 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1065 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1066 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1067 })(window,document,'script','dataLayer','GTM-M589QHP');</script>
1067 1068 <!-- End Google Tag Manager --> 1069 <!-- Google Tag Manager --> 1070
1070<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1071 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1072 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1073 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1074 })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1074 1075 <!-- End Google Tag Manager --> 1076 1077 1078 <!-- LP Tracker (divolte.js) - LP Divolte --> 1079
1079<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1079 1080 <!-- LP Tracker (eventBus) - LP EventBus --> 1081
1081<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1081 1082 1083
1083<script> 1084 window.dataLayer = window.dataLayer || []; 1085 document.sendGoogleTagManagerEvent = function() { 1086 /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */ 1087 if (window.navigator.globalPrivacyControl) { 1088 return; 1089 } 1090 1091 dataLayer.push(arguments); 1092 } 1093 1094 document.sendGoogleTagManagerEvent('js', new Date()); 1095 document.sendGoogleTagManagerEvent('config', 'G-RLW9GKGDQW', { page: location.pathname, location: location.href }); 1096 document.sendGoogleAnalyticsEvent = function(googleEvent) { 1097 document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, { 1098 event_category: googleEvent.eventCategory, 1099 event_label: googleEvent.eventLabel, 1100 value: googleEvent.eventValue, 1101 page: googleEvent.page, 1102 location: googleEvent.location 1103 }) 1104 }; 1105 1106 document.addEventListener("DOMContentLoaded", function() { 1107 (function() { 1108 //If the page has an element with ID of auto-year-update the element will be populated with the current year. 1109 var date = new Date(); 1110 var elements = document.getElementsByClassName('auto-year-update'); 1111 var i; 1112 for (i = 0; i < elements.length; i++) { 1113 elements[i].innerText = date.getFullYear(); 1114 } 1115 })(); 1116 if (window.divolteLp) { 1117 window.divolteLp('sendLpPageView', {}); 1118 } 1119 if (window.eventBusLp) { 1120 window.eventBusLp('sendLpPageView', {}); 1121 } 1122 }); 1123 </script>
1123 1124 1125 1126
1126<script> 1127 // Function to dynamically load a script 1128 function loadScript(url, callback) { 1129 var script = document.createElement('script'); 1130 script.type = 'text/javascript'; 1131 script.src = url; 1132 script.defer = true; 1133 script.async = true; 1134 script.onload = callback; 1135 document.head.appendChild(script); 1136 } 1137 1138 // Function to dynamically load CSS file 1139 function loadCSS(url) { 1140 var link = document.createElement("link"); 1141 link.rel = "stylesheet"; 1142 link.href = url; 1143 document.head.appendChild(link); 1144 } 1145 1146 // Global methods / variables that can be accessed by element js 1147 window.luxuryPresence = { 1148 libs: { 1149 loadJs: loadScript, 1150 loadCss: loadCSS, 1151 jsLibsMap: { 1152 paroller: { 1153 jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js', 1154 isLoaded: false, 1155 }, 1156 ionRangeSlider: { 1157 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js', 1158 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css', 1159 isLoaded: false, 1160 requires: ['jquery'], 1161 }, 1162 splide: { 1163 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js', 1164 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css', 1165 isLoaded: false, 1166 }, 1167 wow: { 1168 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 1169 isLoaded: false, 1170 }, 1171 jquery: { 1172 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', 1173 isLoaded: false, 1174 }, 1175 slick: { 1176 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', 1177 isLoaded: false, 1178 requires: ['jquery'], 1179 }, 1180 libphonenumber: { 1181 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js', 1182 isLoaded: false, 1183 }, 1184 }, 1185 }, 1186 }; 1187 </script>
1187 1188
1188<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>
1188 1189
1189<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1189 1190
1190<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1190 1191
1191<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1191 1192
1192<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>
1192 1193
1193<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>
1193 1194
1194<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>
1194 1195 1196 <!-- GOOGLE TRANSLATE SCRIPT --> 1197
1197<script> 1198 function googleTranslateElementInit() { 1199 // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'` 1200 // Language codes can be taken from here https://cloud.google.com/translate/docs/languages 1201 const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt'; 1202 document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){ 1203 translate.innerText = ''; 1204 new google.translate.TranslateElement({ 1205 pageLanguage: 'en', 1206 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 1207 includedLanguages: window.customLanguages || DEFAULT_LANGUAGES, 1208 }, translate); 1209 }); 1210 } 1211 </script>
1211 1212
1212<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1212 1213
1213<script defer src="https://accounts.google.com/gsi/intermediate"></script>
1213 1214 1215 <!-- GOOGLE TRANSLATE SCRIPT END--> 1216
1216<script> 1217 1218 // UI helpers 1219 (function () { 1220 1221 function getSideMenu () { 1222 return document.querySelector('body > div.sidemenu'); 1223 } 1224 1225 function sideMenuHide (instant) { 1226 var sideMenu = getSideMenu(); 1227 if (!sideMenu || !sideMenu.classList.contains('visible')) { 1228 return; 1229 } 1230 sideMenu.classList.remove('visible'); 1231 sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } })); 1232 window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} })); 1233 } 1234 1235 function sideMenuShow () { 1236 var sideMenu = getSideMenu(); 1237 if (!sideMenu || sideMenu.classList.contains('visible')) { 1238 return; 1239 } 1240 sideMenu.classList.add('visible'); 1241 sideMenu.dispatchEvent(new Event('lpui-show')); 1242 window.dispatchEvent(new Event('lpui-sidemenu-show')); 1243 } 1244 1245 function sideMenuToggle () { 1246 var sideMenu = getSideMenu(); 1247 if (!sideMenu) { 1248 return; 1249 } 1250 var isSideMenuVisible = sideMenu.classList.contains('visible'); 1251 if (isSideMenuVisible) { 1252 sideMenuHide(); 1253 } else { 1254 sideMenuShow(); 1255 } 1256 } 1257 1258 var scrollLockRequests = {}; 1259 window.__debug_scrollLockRequests = scrollLockRequests; 1260 var hideScrollStyles = ''+ 1261 'body {'+ 1262 'overflow: hidden;' + 1263 '}'; 1264 var hideScrollId = 'hide-body-scroll-style'; 1265 1266 function scrollLock () { 1267 var style = document.createElement('style'); 1268 style.id = hideScrollId; 1269 style.textContent = hideScrollStyles; 1270 document.head.appendChild(style); 1271 window.dispatchEvent(new Event('lpui-scroll-locked')); 1272 } 1273 1274 function scrollUnlock () { 1275 document.getElementById(hideScrollId)?.remove(); 1276 window.dispatchEvent(new Event('lpui-scroll-unlocked')); 1277 } 1278 1279 function requestScrollLock (lockId) { 1280 var wasLocked = Object.keys(scrollLockRequests).length > 0; 1281 scrollLockRequests[lockId || '__anonymous_lock'] = true; 1282 if (!wasLocked) { 1283 scrollLock(); 1284 } 1285 } 1286 1287 function releaseScrollLock (lockId) { 1288 if (lockId) { 1289 delete scrollLockRequests[lockId]; 1290 if (!Object.keys(scrollLockRequests).length) { 1291 scrollUnlock(); 1292 } 1293 } else { 1294 scrollLockRequests = {}; 1295 window.__debug_scrollLockRequests = scrollLockRequests; 1296 scrollUnlock(); 1297 } 1298 } 1299 1300 function showModal (modalId, options) { 1301 var modal = document.getElementById(modalId); 1302 if (!modal) { 1303 return; 1304 } 1305 1306 if (!modal.classList.contains('visible')) { 1307 modal.classList.add('visible'); 1308 if (options && options.scrollLock) { 1309 window.lpUI.requestScrollLock(modalId); 1310 } 1311 modal.dispatchEvent(new Event('lpui-show')); 1312 window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } })); 1313 } 1314 1315 const visibleModals = document.querySelectorAll('.modal.visible'); 1316 1317 if (visibleModals.length > 1) { 1318 1319 const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => { 1320 const zIndex = window.getComputedStyle(modal).zIndex; 1321 const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0; 1322 return Math.max(maxZIndex, parsedZIndex); 1323 }, 0); 1324 1325 modal.style.zIndex = maxZIndex + 1; 1326 } 1327 1328 } 1329 1330 function _hideModal (modalEl) { 1331 if (!modalEl) { 1332 return; 1333 } 1334 if (!modalEl.classList.contains('visible')) { 1335 return; 1336 } 1337 modalEl.classList.remove('visible'); 1338 modalEl.style.zIndex = '';
1339 modalEl.dispatchEvent(new Event('lpui-hide')); 1340 var modalId = modalEl.getAttribute('id'); 1341 if (modalId) { 1342 window.lpUI.releaseScrollLock(modalId); 1343 window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } })); 1344 } 1345 } 1346 1347 function hideModal (modalId) { 1348 _hideModal(document.getElementById(modalId)); 1349 } 1350 1351 function hideClosestModal (el) { 1352 const modal = el?.closest('.modal'); 1353 if (!modal) { 1354 return; 1355 } 1356 if (modal.classList) { 1357 _hideModal(modal); 1358 return; 1359 } 1360 if (modal.length && modal[0].classList) { 1361 _hideModal(modal[0]); 1362 } 1363 } 1364 1365 window.lpUI = { 1366 sideMenuHide: sideMenuHide, 1367 sideMenuShow: sideMenuShow, 1368 sideMenuToggle: sideMenuToggle, 1369 requestScrollLock: requestScrollLock, 1370 releaseScrollLock: releaseScrollLock, 1371 showModal: showModal, 1372 hideModal: hideModal, 1373 hideClosestModal: hideClosestModal 1374 } 1375 })(); 1376 1377 var stringifyPrimitive = function(v) { 1378 switch (typeof v) { 1379 case 'string': 1380 return v; 1381 1382 case 'boolean': 1383 return v ? 'true' : 'false'; 1384 1385 case 'number': 1386 return isFinite(v) ? v : ''; 1387 1388 default: 1389 return ''; 1390 } 1391 }; 1392 1393 function objectToQuerystring(obj, sep, eq, name) { 1394 // https://github.com/Gozala/querystring/blob/master/encode.js 1395 sep = sep || '&'; 1396 eq = eq || '='; 1397 if (obj === null) { 1398 obj = undefined; 1399 } 1400 1401 if (typeof obj === 'object') { 1402 return Object.keys(obj).map(function(k) { 1403 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 1404 if (Array.isArray(obj[k])) { 1405 return obj[k].map(function(v) { 1406 return ks + encodeURIComponent(stringifyPrimitive(v)); 1407 }).join(sep); 1408 } else { 1409 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 1410 } 1411 }).filter(Boolean).join(sep); 1412 1413 } 1414 1415 if (!name) return ''; 1416 return encodeURIComponent(stringifyPrimitive(name)) + eq + 1417 encodeURIComponent(stringifyPrimitive(obj)); 1418 } 1419 1420 function getPath(url, options) { 1421 var parser = document.createElement('a'); 1422 parser.href = url || ''; 1423 var path = parser.pathname || ''; 1424 if (path[0] !== '/') { 1425 // IE does not return path starting with a slash 1426 path = '/' + path; 1427 } 1428 1429 if (options && options.queryString) { 1430 path += parser.search; 1431 } 1432 1433 return path; 1434 } 1435 1436 function getMLSAutocomplete(keyword) { 1437 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1438 var query = { 1439 kind: 'listings', 1440 query: keyword 1441 }; 1442 1443 return superagent 1444 .get(searchURL) 1445 .query(query) 1446 .then(function(res) { 1447 var data = res.body || []; 1448 // Array of listing_auto_complete documents: id, display_address, city, state, 1449 // price, sold_price, status, status_modified_at, photo_urls (array of URLs). 1450 1451 return data; 1452 }); 1453 } 1454 1455 function getMLSAutocompleteWithFilters(keyword, filters = {}) { 1456 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1457 1458 return superagent 1459 .get(searchURL) 1460 .query({ kind: 'listings', query: keyword, ...filters }) 1461 .then(function(res) { 1462 // Same response shape as getMLSAutocomplete. 1463 return res.body || []; 1464 }); 1465 } 1466 1467 function makeMlsLink(data) { 1468 // Code Dupe from utils/googlePlace 1469 // mapping of google data type to mls data type 1470 var mapping = { 1471 neighborhood: 'neighborhood', 1472 locality: 'place', 1473 administrative_area_level_2: 'county', 1474 administrative_area_level_1: 'state', 1475 postal_code: 'postalcode', 1476 }; 1477 1478 function _filterTypes(types) { 1479 return types.filter(function(type) { return type !== 'political' }); 1480 } 1481 1482 if (!data || !Object.keys(data).length) { 1483 return '/home-search/listings'; 1484 } 1485 1486 var newData = {};
1487 _filterTypes(data.types).forEach(function(type) { 1488 if (mapping[type]) { 1489 newData.search_type = mapping[type]; 1490 } 1491 }); 1492 newData.omnibox = data.formatted_address; 1493 data.address_components.forEach(function(component) { 1494 _filterTypes(component.types).forEach(function(type) { 1495 if (mapping[type]) { 1496 newData[mapping[type]] = component.long_name; 1497 } 1498 }); 1499 }); 1500 var bounds = data.geometry.bounds; 1501 var convertedData = Object.assign(bounds, newData); 1502 1503 return '/home-search/listings?' + objectToQuerystring(convertedData); 1504 } 1505 1506 function debounce(func, wait) { 1507 let timeout; 1508 return function(...args) { 1509 const context = this; 1510 clearTimeout(timeout); 1511 timeout = setTimeout(() => func.apply(context, args), wait) 1512 } 1513 } 1514 1515 // Global methods / variables that can be accessed by element js 1516 window.luxuryPresence = { 1517 ...window.luxuryPresence, 1518 defaults: { 1519 companyId: 'be9e662d-d28f-4f3b-9f8d-cb20d3c0b372', 1520 apiGatewayUrl: '/api-gw', 1521 routerUrl: '/api-nv', 1522 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\
1522n }\n propertiesCount(\n \n agentIds: $agentIds\n teamIds: $teamIds\n propertyId: $propertyId\n propertyIds: $propertyIds\n prioritizeIds: $prioritizeIds\n companyId: $companyId\n network: $network\n networkId: $networkId\n statusId: $statusId\n statusIds: $statusIds\n excludeStatusId: $excludeStatusId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n officeIds: $officeIds\n addressState: $addressState\n addressCity: $addressCity\n developmentId: $developmentId\n featuredListing: $featuredListing\n leaseProperty: $leaseProperty\n search: $search\n searchTermMode: $searchTermMode\n salesPriceGTE: $salesPriceGTE\n salesPriceLTE: $salesPriceLTE\n leasePriceGTE: $leasePriceGTE\n leasePriceLTE: $leasePriceLTE\n livingSpaceSizeGTE: $livingSpaceSizeGTE\n livingSpaceSizeLTE: $livingSpaceSizeLTE\n bathCountGTE: $bathCountGTE\n bathCountLTE: $bathCountLTE\n bedroomCountGTE: $bedroomCountGTE\n bedroomCountLTE: $bedroomCountLTE\n architectureStyle: $architectureStyle\n lifestyle: $lifestyle\n propertyTypeId: $propertyTypeId\n propertyTypeIds: $propertyTypeIds\n spaceTypeIds: $spaceTypeIds\n tag: $tag\n archived: $archived\n globalProperty: $globalProperty\n withGeo: $withGeo\n openHouse: $openHouse\n displayMLSListings: $displayMLSListings\n advancedFilters: $advancedFilters\n seasonalPriceId: $seasonalPriceId\n\n ) {\n count\n }\n }\n","pressReleases":"\n query PressReleases (\n $companyId: ID\n $pressReleaseIds: [ID!]\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: String\n $search: String\n $categories: [String!]\n $propertyId: [ID!]\n $developmentId: [ID!]\n $agentId: [ID!]\n $teamId: [ID!]\n $year: [Int!]\n ) {\n pressReleases (\n companyId: $companyId\n pressReleaseIds: $pressReleaseIds\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n categories: $categories\n propertyId: $propertyId\n developmentId: $developmentId\n agentId: $agentId\n teamId: $teamId\n year: $year\n ) {\n items {\n id\n title\n description\n author\n externalUrl\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n publishedAt\n categories\n }\n total\n }\n }\n","posts":"\n query Posts (\n $companyId: String\n $postId: [ID!]\n $slug: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: String\n $search: String\n $featured: Boolean\n $categoryId: [String!]\n $neighborhoodId: [String!]\n ) {\n posts (\n companyId: $companyId\n postId: $postId\n slug: $slug\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n featured: $featured\n postStatusId: \"5f528253-abb7-484e-95c3-330269ac1102\"\n categoryId: $categoryId\n neighborhoodId: $neighborhoodId\n ) {\n items {\n id\n postId\n title\n subtitle\n description\n status: postStatus\n featured\n slug\n categories {\n id\n name\n }\n createdAt\n publishedAt\n updatedAt\n scheduledAt\n createdBy {\n ... on Agent {\n firstName\n lastName\n }\n }\n customAuthor\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n seoTitle\n seoDescription\n }\n total\n }\n }\n","testimonials":"\n query Testimonials (\n $companyId: String\n $agentId: ID\n $teamId: ID\n $testimonialIds: [ID!]\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: String\n $search: String\n ) {\n testimonials (\n companyId: $companyId\n agentId: $agentId\n teamId: $teamId\n testimonialIds: $testimonialIds\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n ) {\n items {\n id\n testimonialId\n body\n author\n position\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n seoTitle\n seoDescription\n agents {\n slug\n email\n firstName\n lastName\n avatar {\n smallUrl\n height\n width\n }\n }\n }\n total\n }\n }\n","neighborhoods":"\n query Neighborhoods (\n $neighborhoodId: ID\n $companyId: String\n $search: String\n $tag: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n ) {\n neighborhoods (\n neighborhoodId: $neighborhoodId\n companyId: $companyId\n search: $search\n tag: $tag\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n ) {\n id\n name\n description\n descriptionShort\n slug\n tags\n googlePlaceData\n mlsLink\n createdAt\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n }\n seoTitle\n seoDescription\n }\n neighborhoodsCount(\n companyId: $companyId\n search: $search\n tag: $tag\n ) {\n count\n }\n }\n","developments":"\n query Developments (\n $companyId: ID!\n $developmentIds: [ID!]\n $agentId: String\n $slug: String\n $search: String\n $tag: [String!]\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirection\n $neighborhoodId: ID\n $neighborhoodIds: [ID!]\n ) {\n developments (\n companyId: $companyId\n developmentIds: $developmentIds\n agentId: $agentId\n slug: $slug\n search: $search\n tag: $tag\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n ) {\n items {\n id\n name\n description\n descriptionShort\n slug\n createdAt\n updatedAt\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n logoMedia {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n altTagText\n }\n websiteUrl\n videoUrl\n googlePlaceData\n coordinates\n mlsLink\n seoTitle\n seoDescription\n featuresAndAmenities {\n featureIds\n features {\n featureId\n name\n }\n description\n }\n latitude\n longitude\n addressLine1\n addressLine2\n city\n state\n zipCode\n country\n yearCompleted\n residences\n availability\n neighborhoodId\n developer\n architect\n interiorDesigner\n stories\n buildingHeight\n buildingHeightUnit\n bedMin\n bedMax\n bathMin\n bathMax\n livingSpaceMin\n livingSpaceMa
1522x\n livingSpaceUnit\n lotSizeMin\n lotSizeMax\n lotSizeUnit\n priceMin\n priceMax\n priceCurrency\n tags\n }\n total\n }\n }\n","pois":"\n query PointsOfInterest (\n $regionId: UUID!\n $radius: Int\n $offset: Int\n $limit: Int\n $categories: [AreasOfInterestCategories!]\n $sortBy: AreasOfInterestSorting\n ) {\n pois: areasOfInterest (\n input: {\n regionId: $regionId\n radius: $radius\n offset: $offset\n limit: $limit\n categories: $categories\n sortBy: $sortBy\n }\n ) {\n items {\n name\n imageUrl\n url\n reviewCount\n rating\n price\n displayPhone\n distance\n category\n location {\n address1\n address2\n address3\n city\n zipCode\n country\n state\n }\n }\n total\n }\n }\n","offices":"\n query Offices (\n $companyId: ID!\n $officeIds: [ID!]\n $officeMlsIds: [String!]\n $externalIds: [String!]\n $externalSource: String\n $agentId: ID\n $archived: Boolean\n $tags: [String!]\n $slug: String\n $search: String\n $sort: String\n $sortDir: SortDirection\n $offset: Int\n $limit: Int\n ) {\n offices (\n companyId: $companyId\n officeIds: $officeIds\n officeMlsIds: $officeMlsIds\n externalIds: $externalIds\n externalSource: $externalSource\n agentId: $agentId\n archived: $archived\n tags: $tags\n slug: $slug\n search: $search\n sort: $sort\n sortDir: $sortDir\n offset: $offset\n limit: $limit\n ) {\n items {\n id\n companyId\n name\n slug\n officeMlsId\n shortDescription\n fullDescription\n addressLine1\n addressLine2\n addressCity\n addressState\n addressPostalCode\n addressCountry\n phone\n email\n officeHours\n coordinates\n googlePlaceData\n seoTitle\n seoDescription\n fullAddress\n tags\n media {\n id\n originalUrl\n thumbnailUrl\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n }\n }\n total\n }\n }\n","teams":"\n query Teams (\n $companyId: ID\n $teamIds: [ID!]\n $agentId: ID\n $externalIds: [String!]\n $externalSource: String\n $slug: String\n $search: String\n $sort: String\n $sortDir: String\n $offset: Int\n $limit: Int\n ) {\n teams (\n companyId: $companyId\n teamIds: $teamIds\n agentId: $agentId\n externalIds: $externalIds\n externalSource: $externalSource\n slug: $slug\n search: $search\n sort: $sort\n sortDir: $sortDir\n offset: $offset\n limit: $limit\n ) {\n items {\n id\n companyId\n name\n email\n shortBio\n addressLine1\n addressLine2\n addressCity\n addressState\n addressCountry\n phoneNumber1\n phoneNumber2\n postalCode\n avatar {\n id\n thumbnailUrl\n smallUrl\n mediumUrl\n largeUrl\n }\n urlWebsite\n socialLinks\n socialLinksArray\n tags\n seoTitle\n seoDesc\n slug\n displayOrder\n }\n total\n }\n }\n"}, 1523 propertyPlaceholderImage: {"id":"c8548681-a098-46a0-92b6-b508fad5ce63","alt":null,"bytes":39860,"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/b7a32620-e699-48d6-b2a9-0941d5fbc6ce","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/b7a32620-e699-48d6-b2a9-0941d5fbc6ce","authorUrl":null,"createdAt":"2026-01-28T19:11:12.026Z","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/b7a32620-e699-48d6-b2a9-0941d5fbc6ce","sourceUrl":null,"updatedAt":"2026-01-28T19:11:12.026Z","xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/b7a32620-e699-48d6-b2a9-0941d5fbc6ce","__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/b7a32620-e699-48d6-b2a9-0941d5fbc6ce","description":null,"displayName":"property_lockup_logo-4","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/b7a32620-e699-48d6-b2a9-0941d5fbc6ce","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/b7a32620-e699-48d6-b2a9-0941d5fbc6ce","originalFileName":"Property_lockup_logo (4)","cloudinaryPublicId":"b7a32620-e699-48d6-b2a9-0941d5fbc6ce"} 1524 }, 1525 objectToQuerystring: objectToQuerystring, 1526 getPath: getPath, 1527 getMLSAutocomplete: getMLSAutocomplete, 1528 getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters, 1529 makeMlsLink: makeMlsLink, 1530 debounce: debounce, 1531 }; 1532 1533 var wowOffset = 100; 1534 </script>
1534 1535
1535<script> 1536 (()=>{function e(e){return e&&e.__esModule?e.default:e}var t=globalThis,r={},i={},s=t.parcelRequired4f7;null==s&&((s=function(e){if(e in r)return r[e].exports;if(e in i){var t=i[e];delete i[e];var s={id:e,exports:{}};return r[e]=s,t.call(s.exports,s,s.exports),s.exports}var o=Error("Cannot find module '"+e+"'");throw o.code="MODULE_NOT_FOUND",o}).register=function(e,t){i[e]=t},t.parcelRequired4f7=s);var o=s.register;o("ikl6F",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.formatMoney=e.exports.convertAmount=e.exports.fetchExchangeRates=e.exports.toSupportedToCurrency=e.exports.toSupportedFromCurrency=e.exports.SUPPORTED_TO_CURRENCIES=e.exports.SUPPORTED_FROM_CURRENCIES=e.exports.DISPLAY_CURRENCIES=e.exports.writeCurrencyCookie=e.exports.readValidCurrencyCookie=e.exports.readCurrencyCookie=e.exports.clearCurrencyCookie=e.exports.CURRENCY_COOKIE_SAME_SITE=e.exports.CURRENCY_COOKIE_PATH=e.exports.CURRENCY_COOKIE_NAME=e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS=void 0;var r=s("65bUu");Object.defineProperty(e.exports,"CURRENCY_COOKIE_MAX_AGE_SECONDS",{enumerable:!0,get:function(){return r.CURRENCY_COOKIE_MAX_AGE_SECONDS}}),Object.defineProperty(e.exports,"CURRENCY_COOKIE_NAME",{enumerable:!0,get:function(){return r.CURRENCY_COOKIE_NAME}}),Object.defineProperty(e.exports,"CURRENCY_COOKIE_PATH",{enumerable:!0,get:function(){return r.CURRENCY_COOKIE_PATH}}),Object.defineProperty(e.exports,"CURRENCY_COOKIE_SAME_SITE",{enumerable:!0,get:function(){return r.CURRENCY_COOKIE_SAME_SITE}}),Object.defineProperty(e.exports,"clearCurrencyCookie",{enumerable:!0,get:function(){return r.clearCurrencyCookie}}),Object.defineProperty(e.exports,"readCurrencyCookie",{enumerable:!0,get:function(){return r.readCurrencyCookie}}),Object.defineProperty(e.exports,"readValidCurrencyCookie",{enumerable:!0,get:function(){return r.readValidCurrencyCookie}}),Object.defineProperty(e.exports,"writeCurrencyCookie",{enumerable:!0,get:function(){return r.writeCurrencyCookie}});var i=s("gUuHZ");Object.defineProperty(e.exports,"DISPLAY_CURRENCIES",{enumerable:!0,get:function(){return i.DISPLAY_CURRENCIES}}),Object.defineProperty(e.exports,"SUPPORTED_FROM_CURRENCIES",{enumerable:!0,get:function(){return i.SUPPORTED_FROM_CURRENCIES}}),Object.defineProperty(e.exports,"SUPPORTED_TO_CURRENCIES",{enumerable:!0,get:function(){return i.SUPPORTED_TO_CURRENCIES}}),Object.defineProperty(e.exports,"toSupportedFromCurrency",{enumerable:!0,get:function(){return i.toSupportedFromCurrency}}),Object.defineProperty(e.exports,"toSupportedToCurrency",{enumerable:!0,get:function(){return i.toSupportedToCurrency}});var o=s("jCxYG");Object.defineProperty(e.exports,"fetchExchangeRates",{enumerable:!0,get:function(){return o.fetchExchangeRates}});var n=s("igUcG");Object.defineProperty(e.exports,"convertAmount",{enumerable:!0,get:function(){return n.convertAmount}}),Object.defineProperty(e.exports,"formatMoney",{enumerable:!0,get:function(){return n.formatMoney}})}),o("65bUu",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.readValidCurrencyCookie=e.exports.clearCurrencyCookie=e.exports.writeCurrencyCookie=e.exports.readCurrencyCookie=e.exports.CURRENCY_COOKIE_PATH=e.exports.CURRENCY_COOKIE_SAME_SITE=e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS=e.exports.CURRENCY_COOKIE_NAME=void 0;var r=s("gUuHZ");e.exports.CURRENCY_COOKIE_NAME="lp-currency",e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS=31536e3,e.exports.CURRENCY_COOKIE_SAME_SITE="Lax",e.exports.CURRENCY_COOKIE_PATH="/";let i=e=>e?.trim().toLowerCase().replace(/^\.+/,"")||void 0,o=e=>"undefined"!=typeof DOMException&&e instanceof DOMException,n=({document:t})=>{let r=`${e.exports.CURRENCY_COOKIE_NAME}=`;return t.cookie.split(";").map(e=>e.trim()).filter(e=>e.startsWith(r)).map(e=>e.slice(r.length))},a=e=>{try{return decodeURIComponent(e)}catch{return}};e.exports.readCurrencyCookie=e=>{let t=(e=>{try{return n(e)[0]}catch(e){if(!o(e))throw e;return}})(e);return void 0===t?void 0:a(t)};let l=(t,r,i,s)=>{var o;let n,a;t.document.cookie=`${e.exports.CURRENCY_COOKIE_NAME}=${r}${o=t.location,n="https:"===o.protocol?"; Secure":"",a=s?`; Domain=${s}`:"",`; Path=${e.exports.CURRENCY_COOKIE_PATH}; Max-Age=${i}; SameSite=${e.exports.CURRENCY_COOKIE_SAME_SITE}${n}${a}`}`};e.exports.writeCurrencyCookie=(t,s)=>{let a,d=(0,r.toSupportedToCurrency)(s);if(!d)return!1;let c=i(t.domain);try{if(a=n(t)[0],c&&l(t,"",0,void 0),l(t,encodeURIComponent(d),e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS,c),(0,e.exports.readCurrencyCookie)(t)===d)return!0}catch(e){if(!o(e))throw e}return c&&void 0!==a&&((t,r)=>{try{if(n(t).includes(r))return;l(t,r,e.exports.CURRENCY_COOKIE_MAX_AGE_SECONDS,void 0)}catch(e){if(!o(e))throw e}})(t,a),!1},e.exports.clearCurrencyCookie=e=>{let t=i(e.domain);try{t&&l(e,"",0,void 0),l(e,"",0,t)}catch(e){if(!o(e))throw e}},e.exports.readValidCurrencyCookie=(t,{enabled:s,enabledCurrencies:d})=>{if(!s)return;let c=(e=>{try{let t=n(e);if(!i(e.domain)||t.length<2)return t[0];return l(e,"",0,void 0),n(e)[0]}catch(e){if(!o(e))throw e;return}})(t);if(void 0===c)return;let u=new Set(d.map(r.toSupportedToCurrency).filter(e=>!!e)),h=(0,r.toSupportedToCurrency)(a(c));
1536if(h&&u.has(h))return h;(0,e.exports.clearCurrencyCookie)(t)}}),o("gUuHZ",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toSupportedToCurrency=e.exports.SUPPORTED_TO_CURRENCIES=e.exports.DISPLAY_CURRENCIES=e.exports.toSupportedFromCurrency=e.exports.SUPPORTED_FROM_CURRENCIES=void 0,e.exports.SUPPORTED_FROM_CURRENCIES=["usd","cad","eur","gbp"];let r=(e,t)=>{if("string"!=typeof e)return;let r=e.toLowerCase();return t.includes(r)?r:void 0};e.exports.toSupportedFromCurrency=t=>r(t,e.exports.SUPPORTED_FROM_CURRENCIES),e.exports.DISPLAY_CURRENCIES=[{code:"usd",name:"US dollar"},{code:"eur",name:"Euro"},{code:"gbp",name:"Pound sterling"},{code:"cad",name:"Canadian dollar"},{code:"chf",name:"Swiss franc"},{code:"brl",name:"Brazilian real"},{code:"mxn",name:"Mexican peso"},{code:"sek",name:"Swedish krona"},{code:"nok",name:"Norwegian krone"},{code:"dkk",name:"Danish krone"},{code:"ars",name:"Argentine peso"},{code:"cop",name:"Colombian peso"},{code:"clp",name:"Chilean peso"},{code:"pen",name:"Peruvian sol"},{code:"dop",name:"Dominican peso"},{code:"gtq",name:"Guatemalan quetzal"},{code:"crc",name:"Costa Rican colón"},{code:"bob",name:"Bolivian boliviano"},{code:"pyg",name:"Paraguayan guaranÃ"},{code:"kyd",name:"Cayman Islands dollar"}],e.exports.SUPPORTED_TO_CURRENCIES=e.exports.DISPLAY_CURRENCIES.map(e=>e.code),e.exports.toSupportedToCurrency=t=>r(t,e.exports.SUPPORTED_TO_CURRENCIES)}),o("jCxYG",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.fetchExchangeRates=void 0;var r=s("gUuHZ");let i=async(e,{baseUrl:t,signal:i,fetch:s,onError:o})=>{let n=(0,r.toSupportedFromCurrency)(e);if(!n)return{};let a=`${t.replace(/\/$/,"")}/api/v1/exchange-rates?from=${encodeURIComponent(n)}`;try{let e=await (s??fetch)(a,{credentials:"omit",signal:i});if(!e.ok)throw Error(`Exchange rates HTTP ${e.status}`);var l=await e.json();let t=l?.rates;if("object"!=typeof t||null===t)return{};let o={};return Object.entries(t).forEach(([e,t])=>{let i=(0,r.toSupportedToCurrency)(e);i&&"number"==typeof t&&Number.isFinite(t)&&t>0&&(o[i]=t)}),o}catch(e){try{o?.(e)}catch(e){console.warn("fetchExchangeRates: onError callback threw",e)}return{}}};e.exports.fetchExchangeRates=i}),o("igUcG",function(e,t){"use strict";Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.formatMoney=e.exports.convertAmount=void 0;var r=s("gUuHZ");e.exports.convertAmount=(e,t)=>{if(Number.isFinite(e)&&Number.isFinite(t)&&!(t<=0))return e*t},e.exports.formatMoney=(e,t,{precision:i=0}={})=>{let s=(0,r.toSupportedToCurrency)(t);if(!s||!Number.isFinite(e))return;let o=Number.isInteger(i)?i:0,n=Number.isInteger(e)?0:Math.min(Math.max(o,0),20);return new Intl.NumberFormat("en-US",{style:"currency",currency:s.toUpperCase(),minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}});var n={},a={};a={getVideoFirstFrame(e){let t="https://res.cloudinary.com/";if(!e||!e.startsWith(t))return null;let r=e.replace(t,"").replace("f_auto:video","f_auto").split("/");if(-1===r[1].toLowerCase().indexOf("video"))return null;let i=r[r.length-1];i.lastIndexOf(".")>-1?i=`${i.slice(0,i.lastIndexOf("."))}.jpg`:i+=".jpg",r[r.length-1]=i;let s=3;"videos"===r[1].toLowerCase()&&""!==r[2]&&(s=2);let o=/^(?:[a-z]{1,3}|\$\w+)_\S+$/;for(;s<r.length-1&&o.test(r[s]);)s++;return r.splice(s,0,"so_0,eo_0"),t+r.join("/")}};let l={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "},d=/&(?:amp|lt|gt|quot|apos|nbsp|#(?:[0-9]+|[xX][0-9a-fA-F]+));/y,c=/[<&]/g,u=/["'>]/g,h=/<\/p\s*>|<br\s*\/?>|[\r\n\u2028\u2029]/g;function p(e,t){let r="";for(let i=0;i<e.length;){c.lastIndex=i;let s=c.exec(e);if(!s){r+=e.slice(i);break}let o=s.index;r+=e.slice(i,o);let n="&"===e[o]?function(e,t){d.lastIndex=t;let r=d.exec(e);return{text:r?function(e){if("#"!==e[1])return l[e.slice(1,-1)];
1536let t="x"===e[2]||"X"===e[2],r=parseInt(e.slice(t?3:2,-1),t?16:10);return 0===r||r>1114111||r>=55296&&r<=57343?e:160===r?" ":String.fromCodePoint(r)}(r[0]):"&",end:r?d.lastIndex:t+1}}(e,o):function(e,t,r){let i=function(e,t){let r=null;u.lastIndex=t+1;let i=u.exec(e);for(;i;){let t=i[0];if(r)t===r&&(r=null);else if('"'===t||"'"===t)r=t;else if(">"===t)return u.lastIndex;i=u.exec(e)}return -1}(e,t);return{text:-1===i?"<":function(e,t,r,i){if(!i)return"";let s=e.slice(t,r);if(/^<br\s*\/?>$/.test(s))return" ";if(/^<\/p\s*>$/.test(s)){h.lastIndex=r;let t=h.exec(e);if(t&&"<"===t[0][0])return" "}return""}(e,t,i,r),end:-1===i?t+1:i}}(e,o,t);r+=n.text,i=n.end}return r}n=function(e,{isEqual:t}){let r=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],i=function(e,t,r){let i="en-US";if(!e)return"";if("string"==typeof e){let t=e.trim();if(/[^+\-0-9.]/.test(t))return e;if(!(e=parseFloat(t)))return""}let s="number"==typeof r?r:0,o=Number.isInteger(e)?0:s,n={minimumFractionDigits:o,maximumFractionDigits:o};return"USD"===t?`$${e.toLocaleString(i,n)}`:"CAD"===t?`$${e.toLocaleString(i,n)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(i,n)}`:"GBP"===t?`\xa3${e.toLocaleString(i,n)}`:"PERCENT"===t?`${e}%`:"number"==typeof r&&r>-1?e.toLocaleString(i,{maximumFractionDigits:r}):e.toLocaleString(i)},s=function(e){switch(e){case"DAY":return"daily";case"MONTH":return"monthly";case"WEEK":return"weekly";case"YEAR":return"yearly";case"QUARTER":return"quarterly";case"HALF_YEAR":return"semi-annually";case"NIGHTLY":return"nightly";case"SEASONAL":return"seasonally";default:return""}},o=function(e){switch(e){case"DAY":return"day";case"WEEK":return"wk";case"MONTH":return"mo";case"YEAR":return"yr";case"QUARTER":return"3 mos";case"HALF_YEAR":return"6 mos";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},n=function(e){switch(e){case"DAY":return"day";case"WEEK":return"week";case"MONTH":return"month";case"YEAR":return"year";case"QUARTER":return"quarter";case"HALF_YEAR":return"6 months";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},l=function(e,t){let r,i,a=t||{};switch(a.mode){case"short":r=o(e),i=a.frequencySeparator||"/";break;case"standard":case"std":r=n(e),i=a.frequencySeparator||"/";break;default:r=s(e),i=a.frequencySeparator||" "}return r?a.frequencyTag||a.frequencyClass?`${i}<${a.frequencyTag||"span"}${a.frequencyClass?` class="${a.frequencyClass}"`:""}>${r}</${a.frequencyTag||"span"}>`:i+r:""};return{isEmpty(e,t){let r=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?r?t.fn(this):t.inverse(this):r},ifEquals(e,r,i){return t(e,r)?i.fn(this):i.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?p(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!1):"",striptagsLineBreaks:e=>e?p(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!0):"",truncate:(e,t,r)=>e?e.length>t?"string"==typeof r?e.slice(0,t-r.length)+r:e.slice(0,t):e:"",setSubArray(e=[],t,r,i,s){s.data.root[i]=e.slice(t,r)},formatAreaUnit(e){switch(e){case"ACRE":return"Acres";case"SQUARE_METER":return"Sq.M.";case"SQUARE_YARD":return"Sq.Yd.";default:return"Sq.Ft."}},formatFrequency:s,formatFrequencyShort:o,lpFormatFrequency:(e,t)=>l(e,t&&t.hash),subArray(e,t,r,i){return e>=t&&e<r?i.fn(this):i.inverse(this)},formatPropertyStatus(e,t,r){let i="";switch(e){case"SOLD":i="Sold";break;case"FOR_SALE":i="For Sale";break;case"COMING_SOON":i="Coming Soon";break;case"INACTIVE":i="Inactive";break;case"POCKET_LISTING":i="Pocket Listing";break;case"PENDING":i="Pending";break;case"UNDER_CONTRACT":i="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":i="Active Under Contract";break;default:i=e}return("Sold"===i||"Leased"===i)&&t&&"string"==typeof r&&r&&(i+=` on ${r}`),i},formatGrade(e){switch(e){case"UNDERGRADUATE_COURSES":return"Undergrad";case"PRE_KINDERGARTEN":return"PreK";case"KINDERGARTEN":return"K";case"FIRST_GRADE":return"1st";case"SECOND_GRADE":return"2nd";case"THIRD_GRADE":return"3rd";case"FOURTH_GRADE":return"4th";case"FIFTH_GRADE":return"5th";case"SIXTH_GRADE":return"6th";case"SEVENTH_GRADE":return"7th";case"EIGHTH_GRADE":return"8th";case"NINTH_GRADE":return"9th";case"TENTH_GRADE":return"10th";case"ELEVENTH_GRADE":return"11th";case"TWELFTH_GRADE":return"12th";default:return""}},encodeURI:e=>encodeURI(e),encodeURIComponent:e=>encodeURIComponent(e),hbFormatDate(e,t){if(!e)return"";let r="current"===e?new Date:new Date(e);if(Number.isNaN(r.getTime()))return"";if("YYYY"===t||"year"===t)return`${r.getFullYear()}`;if("MM/DD/YY"===t){let e=r.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${r.getDate()}/${r.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][r.getMonth()]} ${r.getDate()}, ${r.getFullYear()}`},openHousesFormat(e,t,r){if(!e||!t)return"";let i=e=>{let t=e.getHours();t>12&&(t-=12);let r=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?r+="PM":r+="AM",r},s="",o=e,n=t;
1536r&&(o=new Date(e).toLocaleString("en-US",{timeZone:r}),n=new Date(t).toLocaleString("en-US",{timeZone:r}),[,,,s]=new Date(t).toLocaleString("en-US",{timeZone:r,timeZoneName:"short"}).split(" "));let a=new Date(o),l=a.toLocaleDateString("en-US"),d=i(a),c=i(new Date(n));return`${l} ${d} - ${c} ${s}`},math:(e,t,r)=>(e=parseFloat(e),({"+":e+(r=parseFloat(r)),"-":e-r,"*":e*r,"/":e/r,"%":e%r})[t]),findByKey(e,t,r,i){let s=(e||[]).find(e=>e[t]===r);return i.fn(s)},capitalize(e,t,r){let i;return"string"==typeof e&&e.length&&(i=e.toLowerCase().split(t).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").toString()),i},and:(...e)=>Array.prototype.slice.call(e).every(Boolean),or:(...e)=>Array.prototype.slice.call(e,0,-1).some(Boolean),not:e=>!e,orderByIds(t,r,i){let s="",o=null;i.data&&(o=e.createFrame(i.data));let n=(r||[]).filter(Boolean);if(n&&n.length){let e=0;s=n.reduce((r,s,n)=>{let a=(t||[]).find(e=>e.id===s);return a?(o&&(o.index=n-e),r+i.fn(a,{data:o})):(e+=1,r)},"")}else for(let e=0,r=(t||[]).length;e<r;e++)o&&(o.index=e),s+=i.fn(t[e],{data:o});return s},ifIn(e,t,r){return t&&t.indexOf(e)>-1?r.fn(this):r.inverse(this)},partial:(t,r)=>(e.registerPartial(t,e.compile(r.fn())),`
1536<script type="text/x-handlebars-template" class="${t} pagination-script">${r.fn()}<\/script>`),numCompare(e,t,r,i){return({"==":function(e,t){return e==t},"===":function(e,t){return e===t},"!=":function(e,t){return e!=t},"<":function(e,t){return e<t},">":function(e,t){return e>t},"<=":function(e,t){return e<=t},">=":function(e,t){return e>=t}})[r](e,t)?!i.fn||i.fn(this):!!i.fn&&i.inverse(this)},lpFormatNumber:i,arrayToHtmlList:(e,t)=>e.reduce((e,t)=>{try{if("object"==typeof t||null===t)return e;return e+=`<li>${t}</li>`}catch(e){}},""),join:(e,t,r)=>e&&e.join?e.join("string"==typeof t?t:", "):"",dedupe(t,r,i){let s=null,o=0,n=new Set;return i.data&&(s=e.createFrame(i.data)),(t||[]).reduce((e,t,a)=>{let l=r?t[r]:t;return!n.has(l)||r&&void 0===l?(n.add(l),s&&(s.index=a-o),e+i.fn(t,{data:s})):(o+=1,e)},"")},JSONstringify:(e,t)=>JSON.stringify(e),formatPropertyPrice(...t){let r=t[t.length-1].hash,s=t.length>1?t[0]:r.property,o=r.precision||0;t.length>2&&(r.mode=t[1]),r.mode||(r.mode="short");let n=t.length>3?t[2]:r.separator;if("string"!=typeof n&&(n=" | "),s.isPasswordProtected)return"Exclusive Listing";let a=t.length>4?t[3]:r.priceUponRequestText;if("string"!=typeof a&&(a="Price Upon Request"),s.priceUponRequest)return a;let d=s.salesPrice,c=null;"SOLD"!==s.status&&"Leased"!==s.status&&s.reducedPrice&&(r.reducedClass?c=s.reducedPrice:d=s.reducedPrice);let u="";c&&(u+=`<${r.reducedTag||"span"} class="${r.reducedClass}">${i(c,s.currency,o)}</${r.reducedTag||"span"}>`),d&&(d=i(d,s.currency,o),r.priceTag||r.priceClass?u+=`<${r.priceTag||"span"}${r.priceClass?` class="${r.priceClass}"`:""}>${d}</${r.priceTag||"span"}>`:u+=d);let h=s.leasePrice&&i(s.leasePrice,s.currency,o);if(h){u&&(u+=n);let e=`${h}${l(s.leasePeriod,r)}`;r.leaseTag||r.leaseClass?u+=`<${r.leaseTag||"span"}${r.leaseClass?` class="${r.leaseClass}"`:""}>${e}</${r.leaseTag||"span"}>`:u+=e}
1536return new e.SafeString(u)},mediaImage(t,i={}){if(!t)return;let{lazy:s,...o}=i.hash,n="",a="";if("string"==typeof t)n=t;else{let e={},{height:s,width:l,altTagText:d}=t;r.forEach(r=>{t[r.field]&&!e[t[r.field]]&&(e[t[r.field]]=r.w)});let c=Object.keys(e);if(!c.length)return;if(d&&(o.alt=d),s&&l&&(s>=l&&(o.class?o.class+=" portrait":o.class="portrait"),"setDims"in i.hash&&(o.width=l,o.height=s)),c.length>1&&l&&l<e[c[c.length-1]]){let t=c.findIndex(t=>e[t]>=l);c.splice(t+1),e[c[c.length-1]]=l}c.length>1&&(a=c.map(t=>`${t} ${e[t]}w`).join(", "),c.sort((t,r)=>Math.abs(e[t]-1280)-Math.abs(e[r]-1280))),n=c[0]}delete o.setDims,a||delete o.sizes,"alt"in o||(o.alt=""),!("loading"in o)&&(i?.data?.root?.sectionIndex>1||s)&&(o.loading="lazy");let l=Object.keys(o).map(t=>`${e.escapeExpression(t)}="${e.escapeExpression(o[t])}"`).join(" ");return new e.SafeString(`<img src="${n}"${a?` srcset="${a}"`:""}${l?` ${l}`:""}>`)},bgImage:e=>e?"string"==typeof e?e:e.largeUrl||e.url||"":"",concat(...e){let t="";for(let r in e)null!==e[r]&&void 0!==e[r]&&"object"!=typeof e[r]&&(t+=e[r]);return t},setVideoExtension(e,t){if(!e||!t)return"";let r=new URL(e);if("res.cloudinary.com"!==r.host)return r.pathname.endsWith(`.${t}`)?e:"";let i=r.pathname.lastIndexOf("."),s=r.pathname;return -1!==i&&(s=r.pathname.substr(0,i)),r.pathname=`${s}.${t}`,r.toString()},addVideoSources(e){if(!e)return"";if(!e.includes("res.cloudinary.com"))return`<source data-src="${e}">`;let t=e.replace(/\.(?:3gp|mpeg|mp4|m4v|m4p|ogv|ogg|mov|webm)$/,"");return[{format:"webm",codec:"vp9",htmlCodecs:";codecs=vp9"},{format:"mp4",codec:"h265",htmlCodecs:";codecs=hvc1"},{format:"mp4",codec:"h264",htmlCodecs:""}].map(e=>{let r=`${t.replace(/f_auto(?::video)?(?:,q_auto(?::\w+)?)?/,`f_${e.format},vc_${e.codec},q_auto:best,w_1920,c_limit`)}.${e.format}`;return`<source data-src="${r}" type="video/${e.format}${e.htmlCodecs}">`}).join("\n")},cloudinaryVideoFirstFrame:a.getVideoFirstFrame,initials(e,t){if(!e)return"";t?.hash?.endChar&&(e=e.split(t.hash.endChar)[0]);let r=+t?.hash?.maxChars||2,i=e.match(/\b\w/g)?.slice(0,r);return i?(t?.hash?.addText&&(i=i.map(e=>e+t.hash.addText)),i.join(t?.hash?.joinWith||"").toUpperCase()):""},normalizePhone(e){if(!e)return"";let t=String(e).trim();return(t.startsWith("+")?"+":"")+t.replace(/\D/g,"")}}};class m{constructor(e,t,r){if(this.config=e,this.window=t,this.document=r,!this.destroy)throw Error("Controllers must implement a deconstructor")}}let g="lp_lead_form_conversion_fired";function y(e,t){if(e&&t&&"function"==typeof t.sendGoogleTagManagerEvent&&!function(e){try{return"true"===e.sessionStorage.getItem(g)}catch{return!1}}(e))try{t.sendGoogleTagManagerEvent("event","generate_lead");try{e.sessionStorage.setItem(g,"true")}catch{}}catch{}}function f(e){return!!e&&(!!e.expired||Date.now()>=e.expiresAt)}let b="/api/v1/home-valuation";class v extends m{destroy(){}_cleanAddressString(e){if(!e||"string"!=typeof e)return"";let t=e.trim();if(t.includes("User entered address:")){let e=t.match(/User entered address:\s*\n?\s*([^\n]+)/);e&&e[1]&&(t=e[1].trim())}let r=t.indexOf(", call time frame:");return -1!==r&&(t=t.substring(0,r).trim()),t}_transformAddressComponents(e){let t=t=>(e.find(e=>e.componentType===t)||{}).componentName?.text,r={},i=t("street_number"),s=t("route"),o=t("administrative_area_level_1"),n=t("postal_code"),a=t("subpremise"),l=t("locality")||t("sublocality_level_1")||t("neighborhood");return i&&(r.streetNumber=i),s&&(r.streetName=s),l&&(r.city=l),o&&(r.state=o),n&&(r.zipcode=n),a&&(r.addressLine2=a),r}_extractAddressAndCoordinates(e){let t=null,r=null;if(e?.result){let{result:i}=e;i.address?.addressComponents&&(t=this._transformAddressComponents(i.address.addressComponents)),i.geocode?.location&&(r={latitude:i.geocode.location.latitude,longitude:i.geocode.location.longitude})}return{structuredAddress:t,coordinates:r}}_filterEmptyStrings(e){let t={};for(let[r,i]of Object.entries(e))""!==i&&null!=i&&(t[r]=i);return t}_getRawAddress(e){let t=e.activity.content||{},r=e.activity.comments_attributes?.[0]?.text;return[t.address,t["property-address"],t.property_address,t.Property_Address,r,t.message,t.homeValuationAddress,t.propertyAddress].map(e=>e&&this._cleanAddressString(e)).find(Boolean)||""}_logLeadEvent(e,t,r=null){let i={event:e,companyId:this.config.companyId,websiteId:this.config.websiteId,timestamp:new Date().toISOString(),hasEmail:!!t.activity?.author_email,hasAddress:!!this._getRawAddress(t)};if(r&&(i.errorMessage=r.userMessage||(r.status?`Request failed with status ${r.status}`:"An error occurred"),i.errorName=r.name,i.errorStatus=r.status),console.error(`[HomeValuation] ${e}`,JSON.stringify(i)),this.window.posthog)try{this.window.posthog.capture(e,i)}catch(e){console.error("[HomeValuation] PostHog capture failed:",e)}}_getUserFriendlyErrorMessage(e){return"AbortError"===e.name||e.message?.includes("timeout")?"Connection timed out. Please try again.":"TypeError"===e.name&&e.message?.includes("fetch")?"Unable to connect. Please check your internet connection and try again.":503===e.status||502===e.status||504===e.status?"Service temporarily unavailable. Please try again in a moment.":400===e.status?"Please check your information and try again.":"Something went wrong. Please try again or c
1536ontact us directly."}_formatStructuredAddress(e){if(!e||0===Object.keys(e).length)return"";let t=[];return t.push([e.streetNumber,e.streetName,e.addressLine2].filter(Boolean).join(" ")),t.push([[e.city,e.state].filter(Boolean).join(", "),e.zipcode].filter(Boolean).join(" ")),t.filter(Boolean).join(", ")}_buildHomeValuationData(e,t,r,i){let s=this._formatStructuredAddress(r)||this._getRawAddress(e);if(!s)throw Error("Unable to extract home valuation address from form data");let o={companyId:e.companyId,homeValuationAddress:s,homeValuationEstimate:t?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0,minimumFractionDigits:0}).format(t):null,websiteId:e.page.websiteId,sourceUrl:e.activity.source_url},n={leadEmailAddress:e.activity.author_email,leadFullName:e.activity.author_name,leadFirstName:e.activity.firstName,leadLastName:e.activity.lastName,leadPhoneNumber:e.activity.author_phone,parcelId:e.activity.content?.parcelId,resourceId:e.page.pageMeta?.resourceId,pageId:e.page.pageId,sourceResource:e.page.pageMeta?.s
1536ourceResource,pageElementId:e.page.pageMeta?.pageElementId,formId:e.page.pageMeta?.formId,utmSource:e.activity.content?.utm_source,utmMedium:e.activity.content?.utm_medium,utmCampaign:e.activity.content?.utm_campaign,utmTerm:e.activity.content?.utm_term,utmContent:e.activity.content?.utm_content,utmId:e.activity.content?.utm_id,timeToSell:e.activity.content?.timeToSell,lookingToBuy:e.activity.content?.lookingToBuy,consented:!!e.activity.content?.termsAccepted,referrer:e.referrer,content:e.activity.content||{},fields:e.fields||{}},a=this._filterEmptyStrings(n);return{...o,...a,...r&&{address:r},...i&&{coordinates:i}}}async _validateAddressSafely(e){if(!e)return console.error("Home valuation: No address found in form data"),null;try{return await this._validateAddressWithGoogleMaps(e)}catch(e){throw console.error("Error validating address with Google Maps:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}async _getHomeValuationEstimateSafely(e){try{return await this._getHomeValuationEstimate(e)}catch(e){throw console.error("Error getting home valuation estimate:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}_isSafeRedirectUrl(e){try{let{protocol:t}=new URL(e,this.window.location.href);return"https:"===t||"http:"===t}catch{return!1}}_parseResponsePayload(e){try{return e?JSON.parse(e):{}}catch{return{raw:e}}}_createResponseError(e,t){let r=Error(e&&"object"==typeof e&&Object.keys(e).length?e.message||JSON.stringify(e):"Request failed");return e&&"object"==typeof e&&Object.keys(e).length&&Object.assign(r,e),r.status=t,r}_resolveValuationApiBase(){let{config:e}=this;if(void 0!==e.valuationApiBase&&null!==e.valuationApiBase&&(""!==e.valuationApiBase||!e.isBuilder))return e.valuationApiBase;if(e.websiteApiGatewayUrl)return e.websiteApiGatewayUrl;throw Error("websiteApiGatewayUrl/valuationApiBase not configured for home valuation")}async _submitLead(e,t,r){let i=new AbortController,s=setTimeout(()=>i.abort(),1e4);try{let o=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:i.signal});clearTimeout(s);let n=await o.text(),a=this._parseResponsePayload(n);if(!o.ok)throw this._createResponseError(a,o.status);if(a&&"success"===a.status&&a.redirectUrl){if(f(r))return a;if(!this._isSafeRedirectUrl(a.redirectUrl))return console.error("Home valuation: refusing redirect to unsupported protocol"),a;return this.window.location.href=a.redirectUrl,{redirected:!0,url:a.redirectUrl}}return a}catch(e){throw clearTimeout(s),e}}async _submitHomeValuationRequest(e){let t=this._resolveValuationApiBase();this._logLeadEvent("home_valuation_submission_started",e);try{let r=this._getRawAddress(e),i=null;try{i=await this._validateAddressSafely(r)}catch(t){throw this._logLeadEvent("home_valuation_address_validation_failed",e,t),t}let s=null;try{s=await this._getHomeValuationEstimateSafely(i)}catch(t){this._logLeadEvent("home_valuation_estimate_failed",e,t),s=null}let{structuredAddress:o,coordinates:n}=this._extractAddressAndCoordinates(i),a=`${t}${b}`,l=this._buildHomeValuationData(e,s,o,n),d=await this._submitLead(a,l,e.deadline);return this._logLeadEvent("home_valuation_submission_success",e),d}catch(t){throw t.userMessage||(t.userMessage=this._getUserFriendlyErrorMessage(t)),this._logLeadEvent("home_valuation_submission_failed",e,t),t}}async _validateAddressWithGoogleMaps(e){let{config:t,window:r}=this,i=t.googleMapsAPIKey;if(!i&&r.luxuryPresence?.mapApiLoader&&(i=await r.luxuryPresence.mapApiLoader.getMapApiKey()),!i)throw Error("Google Maps API key not configured");let s=new AbortController,o=setTimeout(()=>s.abort(),1e4);try{let t=await fetch(`https://addressvalidation.googleapis.com/v1:validateAddress?key=${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:{addressLines:[e]},enableUspsCass:!1}),signal:s.signal});if(clearTimeout(o),!t.ok){let e=Error(`Address validation failed: ${t.status}`);throw e.status=t.status,e}return t.json()}catch(e){throw clearTimeout(o),e}}_hasMandatoryAddressFields(e){return!!(e.streetNumber&&e.streetName&&e.city&&e.state&&e.zipcode)}_logMissingAddressFields(e){let t=[];e.streetNumber||t.push("streetNumber"),e.streetName||t.push("streetName"),e.city||t.push("city"),e.state||t.push("state"),e.zipcode||t.push("zipcode"),console.log("Home valuation estimate skipped - missing required fields:",t.join(", "),"Available fields:",Object.keys(e).join(", "))}_buildAddressQueryString(e){return Object.entries(e).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}async _getHomeValuationEstimate(e=null){let t=`${this._resolveValuationApiBase()}${b}`;if(!e?.result?.address?.addressComponents)return null;let r=this._transformAddressComponents(e.result.address.addressComponents);if(!this._hasMandatoryAddressFields(r))return this._logMissingAddressFields(r),null;let i=this._buildAddressQueryString(r),s=`${t}?${i}`,o=new AbortController,n=setTimeout(()=>
1536o.abort(),1e4);try{let e=await fetch(s,{headers:{Accept:"application/json"},signal:o.signal});if(clearTimeout(n),!e.ok){let t=Error(`Home valuation estimate failed: ${e.status}`);throw t.status=e.status,t}let t=await e.json();return t?.valueDollars??null}catch(e){throw clearTimeout(n),e}}}let w="middleName",E="redirect-pending",_=["name","firstName","lastName",w,"email","phone","phoneNumber","source","message","mlsId","sourceUrl"],S="lp_map_key_failed",C="oauthSuccess",I={cookieyes:{eventName:"cookieyes_consent_update",hasAnalyticsConsent:e=>(function(e){let t=e.cookie.match(/cookieyes-consent=([^;]+)/);if(!t)return!1;try{let e=decodeURIComponent(t[1]);if(e.includes(",")){let t=e.split(",").map(e=>e.trim());if(t.some(e=>e.includes(":")))return t.some(e=>"analytics:yes"===e);return t.includes("analytics")}return e.includes("analytics")}catch(e){return!1}})(e),isAnalyticsAccepted:e=>Array.isArray(e?.accepted)&&e.accepted.includes("analytics")},"lp-consent":{eventName:"lp_consent_update",hasAnalyticsConsent:(e,t)=>!!t.__lpConsent?.state?.c?.analytics,isAnalyticsAccepted:e=>!!e?.choices?.analytics}};function A(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function x(e,t){t.forEach(t=>{let r=e[t];Array.isArray(r)&&0===r.length&&delete e[t]})}function R(e,t,r,i){let s=t.map(t=>(function e(t){return Array.isArray(t)?t.flatMap(t=>e(t)):"string"==typeof t?t.split(/\s+/).filter(Boolean):null==t?[]:[t]})(e[t])),o=i?.merge?s.flat():s.find(e=>e.length>0)??[];t.forEach(t=>{delete e[t]}),o.length>0&&(e[r]=[...new Set(o)])}function T(e){let t={...e};if(t.urlWebsite||(t.urlWebsite=null),t.urlYoutube=null,t.urlFacebook=null,t.urlInstagram=null,t.urlLinkedin=null,t.urlPodcast=null,t.urlTwitter=null,Array.isArray(e.socialLinks)){let r=[...e.socialLinks].sort((e,t)=>{let r=e.type?.toLowerCase()||"",i=t.type?.toLowerCase()||"";return r.localeCompare(i)});t.socialLinks=r;let i={youtube:"urlYoutube",facebook:"urlFacebook",instagram:"urlInstagram",linkedin:"urlLinkedin",podcast:"urlPodcast",twitter:"urlTwitter"};r.forEach(e=>{let r=i[e.type?.toLowerCase()??""];r&&(t[r]=e.link)})}return t}function L(e){return e&&Array.isArray(e)?e.map(e=>T(e)):e}function k(e){let{region:t}=e;if(!A(t))return e;let{schools:r,pois:i,...s}=t,o={...s,schools:A(r)?r.data??[]:[],...Array.isArray(i)?{pois:i.map(e=>({...e,category:"string"==typeof e.category?e.category.toUpperCase():e.category}))}:{}};return{...e,region:o}}function M(e){return e&&Array.isArray(e)?e.map(e=>k(e)):e}function $(e){let t=e.featuresAndAmenities;if(!Array.isArray(t))return e;let r=t.map(e=>({featureIds:e.featureIds??[],features:e.features??[],description:e.description}));return{...e,featuresAndAmenities:r}}function U(e){return e&&Array.isArray(e)?e.map(e=>$(e)):e}function P(e,t){return A(e)?t(e):e}function O(e,t){return Array.isArray(e)?t(e):e}var N={};N=` 1537 query PropertyDisclaimers($input: PropertyDisclaimersInput!) { 1538 propertyDisclaimers(input: $input) { 1539 feedId 1540 listingId 1541 resolvedFromListing 1542 listingCardAttribution 1543 listingDetailCourtesy 1544 listingDetailFooter 1545 logo 1546 } 1547 } 1548`;let D={mlsAttribution:"listingCardAttribution",mlsLogo:"logo",listingDetailCourtesy:"listingDetailCourtesy",listingDetailFooter:"listingDetailFooter"};var F={};F=s("ikl6F");let B=new class{constructor(e){this.isBuilder=!1,this.companyId=null,this.websiteId=null,this.pageId=null,this.shareId=null,this.pageMeta=null,this.websiteApiGatewayUrl=null,this.buyerSellerServiceUrl=null,this.leadIngesterUrl=null,this.divolteServiceUrl=null,this.eventBus=null,this.templateId=null,this.myhomeDashboardEnabled=!1,this.mlsEnabled=!1,this.hstValuationRedirectEnabled=!1,this.hvStepTwoCaptureEnabled=!1,this.googleMapsAPIKey=null,this.currencyConversionEnabled=!1,this.enabledCurrencies=[]}get valuationApiBase(){return this.isBuilder?this.websiteApiGatewayUrl:""}destroy(){}setPage(e,t={}){this.pageId=e,this.shareId=t.shareId||null,this.pageMeta={sourceResource:t.sourceResource,pageElementId:t.pageElementId,pageQueryVariables:t.pageQueryVariables||{}}}setIsBuilder(e){this.isBuilder=e}setCompany(e,t={}){this.companyId=e}setWebsite(e,t={}){this.websiteId=e,t.myhomeDashboardEnabled&&(this.myhomeDashboardEnabled=t.myhomeDashboardEnabled),t.mlsEnabled&&(this.mlsEnabled=t.mlsEnabled),t.hstValuationRedirectEnabled&&(this.hstValuationRedirectEnabled=t.hstValuationRedirectEnabled),t.hvStepTwoCaptureEnabled&&(this.hvStepTwoCaptureEnabled=t.hvStepTwoCaptureEnabled)}setWebsiteApiGatewayUrl(e,t={}){this.websiteApiGatewayUrl=e}setBuyerSellerServiceUrl(e,t={}){this.buyerSellerServiceUrl=e}setDivolteServiceUrl(e,t={}){this.divolteServiceUrl=e}setEventBusUrl(e,t={}){this.eventBusUrl=e}setTemplateId(e,t={}){this.templateId=e}setLeadIngesterUrl(e,t={}){this.leadIngesterUrl=e}setGoogleMapsAPIKey(e,t={}){this.googleMapsAPIKey=e}setCurrencyConversion({enabled:e,enabledCurrencies:t}={}){this.currencyConversionEnabled=!0===e,this.enabledCurrencies=Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}setEventBus({enabled:e,apiKey:t,url:r}){this.eventBus={enabled:e,apiKey:t,url:r}}}({}),q=new class extends m{constructor(e,t,r){super(e,t,r),this.setLoginState=this.setLoginState.bind(this),this.pageId=null,this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}initialize(e){try{let{config:t,document:r}=this;this.pageId=t.pageId,this.modals=r.querySelectorAll("body > #modals >
1548 .modal"),e.modals.forEach(e=>{this._attachModalHandler(e)})}catch(e){console.log(e)}}destroy(){let{document:e}=this;this.exitModalEventListeners.forEach(t=>{e.removeEventListener("mouseout",t)}),this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}setModalWithExpiry(e){let{window:t}=this,r=new Date().getTime()+864e5,i=`modal-controller-${e}`;try{t.localStorage.setItem(i,JSON.stringify(r))}catch(e){}}setLoginState(){let{window:e}=this;try{e.localStorage.setItem("isSignedUp","true")}catch(e){}}getModalWithExpiry(e){let{window:t}=this,r=t.localStorage,i=r.getItem(`modal-controller-${e}`);if(!i)return!1;let s=JSON.parse(i);return!(new Date().getTime()>s)||(r.removeItem(`modal-controller-${e}`),!1)}show(e,t={}){let{window:r}=this,i=this.getModalWithExpiry(e);(e&&!i||!0===t.forced)&&(r.lpUI.showModal(`modal-${e}`,t),this.setModalWithExpiry(e))}_attachModalHandler(e){let{pageId:t}=this,{trigger:r,pageSpecific:i}=e;(!i||e.pages.map(e=>e.pageId).includes(t))&&("EXIT"===r?this._exitModalHandler(e):"TIMER"===r?this._timerModalHandler(e):"FORCED"===r&&this._forcedModalHandler(e))}_exitModalHandler(e){let t=this,{document:r,exitModalTriggered:i}=this,{modalId:s}=e;function o(e){!i[s]&&(e.toElement||e.relatedTarget||(t.show(s),i[s]=!0))}r.addEventListener("mouseout",o),this.exitModalEventListeners.push(o)}_timerModalHandler(e){let{modalId:t,timerDelay:r}=e;setTimeout(()=>{this.show(t)},r)}_forcedModalHandler(e){let{modalId:t}=e,{window:r,document:i}=this;if("true"!==r.localStorage.getItem("isSignedUp")){let e=i.querySelector(`#modal-${t}`),s=e?.querySelector("form"),o=s?.dataset.delay||2e3;s.addEventListener("formsubmitted",()=>{this.setLoginState()}),r.addEventListener("oauthSuccess",()=>{this.setLoginState(),s.classList.add("success"),setTimeout(()=>{r.lpUI.hideModal(`modal-${t}`),s.reset(),s.classList.remove("success")},o)}),this.show(t,{forced:!0})}}}(B,window,document),V=new class extends m{constructor(e,t,r){super(e,t,r),this._boundClickHandler=this._buttonClickHandler.bind(this)}initialize(e={}){try{let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler),e.body.addEventListener("click",this._boundClickHandler)}catch(e){console.error(e)}}destroy(){let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler)}_buttonClickHandler(e){this._handleButtonClick(e).catch(e=>console.error(e))}async _handleButtonClick(e){let{window:t,document:r}=this,i=e.target.closest("button, a");if(!i)return;let s=i.dataset.type||"",o=i.href||i.dataset.href||"",n=i.target||"",{submit:a}=i.dataset;if(a){try{await this._handleSubmit(i)}catch(e){console.error(e)}((e,t=!1)=>{if(e){if(t)return window.open(e);window.location.assign(e)}})(o,"_blank"===n)}if(this._trackConversion(i),"VIDEO"===s)return void this._handleVideoButton(i);if("CONTACT_US"===s)return void this._handleContactUsButton(i);if("SUBSCRIBE"===s)return void t.lpUI.showModal("modal-global-subscribe");if("MY_ACCOUNT"===s)return void t.lpUI.showModal("modal-global-my-account");if("SHARE_POPUP"===s){let t=i.querySelector(".share-popup");t&&(t.style.display="flex"),e.stopPropagation();return}if("MODAL_"===s.substring(0,6)){let e=s.substring(6);t.lpUI.showModal(`modal-${e}`);return}if(o?.startsWith("mailto:")){let e=o.substring(7);r.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Email",eventValue:e})}else if(o?.startsWith("tel:")){let e=o.substring(4);r.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Phone",eventValue:e})}}async _handleSubmit(e){let t=e.closest("form"),{window:r}=this;return t?await r.luxuryPresence.contactForms.submitForm(t):null}_getVimeoSrc(e){if(!e||!e.includes("vimeo.com")||e.length>2e3)return null;let t=e.match(/(?:(?:www\.)?vimeo\.com\/(?:showcase\/\d+(?:\/video\/|\?video[=/])|channels\/(?:\w+\/)?|groups\/(?:[^/]*)\/videos\/|)|player\.vimeo\.com\/video\/)(\d+)(?:(?:\?.*&*h=|\/)+([\d,a-f]+))?/);if(!t)return null;let[,r,i]=t,s=`https://player.vimeo.com/video/${r}?`;return i&&(s+=`h=${i}&`),s+="autoplay=1"}_handleVideoButton(e){let{document:t}=this,r=e.closest("section"),{src:i}=e.dataset,s="";if(i&&(i.includes("youtube.com")||i.includes("youtu.be"))&&!i.includes("youtube.com/embed")){let e=i.match(/(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=)
1548)|youtu.be\/)([a-zA-Z0-9_-]{6,11})/);e&&(s=e[1])}let o=this._getVimeoSrc(i);if(s?i=`https://youtube.com/embed/${s}?autoplay=1&controls=0`:o&&(i=o),!i||!r)return;let n=i.endsWith(".mp4")||i.endsWith(".webm")||i.includes("cloudinary.com"),a=` 1549 <div id="modal-${r.id}" class="modal visible"> 1550 <div class="modal-content"> 1551 <div class="lightbox-video"> 1552 <div class="video-player"> 1553 <div class="embed-container"> 1554 ${n?`<video controls autoplay src="${i}"></video>`:`<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${i}"></iframe>`} 1555 </div> 1556 </div> 1557 </div> 1558 </div> 1559 <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button> 1560 </div> 1561 `;t.body.insertAdjacentHTML("beforeend",a);let l=t.getElementById(`modal-${r.id}`);l.querySelector(".close").addEventListener("click",()=>{l.remove()})}_handleContactUsButton(e){let{window:t,document:r}=this;r.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"contact"}),t.lpUI.showModal("modal-global-contact-us",{scrollLock:!0})}_trackConversion(e){let{window:t,document:r}=this,{gtagConversionId:i,gtagConversionLabel:s,fbEventName:o}=e.dataset;if(i&&s){t.dataLayer&&t.dataLayer.length&&(t.dataLayer.some(e=>e.length&&"config"===e[0]&&e[1]===i)||r.sendGoogleTagManagerEvent("config",i));let e=`${i}/${s}`;r.sendGoogleTagManagerEvent("event","conversion",{send_to:e})}t.fbq&&o&&t.fbq("track",o,{})}}(B,window,document),j=new class extends m{constructor(e,t,r){super(e,t,r),this.validatedForms=[]}initialize(e={}){try{let{window:t,document:r}=this,{selector:i}=e,s=[];if(s=i?r.querySelectorAll(`${i} form[data-type="contact-form"]`):r.querySelectorAll('form[data-type="contact-form"]'),r.querySelectorAll('input[type="tel"]').length&&!t.libphonenumber&&t?.luxuryPresence?.libs){let{loadJs:e,jsLibsMap:r}=t.luxuryPresence.libs,{libphonenumber:i}=r;e(i.jsSrc,this.attachValidation.bind(this,s))}else this.attachValidation(s);this.validatedForms=this.validatedForms.concat(s)}catch(e){console.log(e)}}destroy(){this.validatedForms=[]}attachValidation(e){e.forEach(e=>{e.querySelectorAll("input, select, textarea").forEach(e=>{this.applyFieldValidation(e)})})}applyFieldValidation(e){"tel"===e.getAttribute("type")&&this._applyPhoneValidation(e)}_applyPhoneValidation(e){let{window:t}=this;if(t.libphonenumber){let r=t.libphonenumber.isValidPhoneNumber;e.addEventListener("keyup",function(){if(this.hasAttribute("required")||this.value.replace(/\s/g,"").length)try{let e=this.value;r(e,"US")?this.setCustomValidity(""):this.setCustomValidity("Please enter a valid phone number.")}catch(e){this.setCustomValidity("Please enter a valid phone number.")}else this.setCustomValidity("")})}}}(B,window,document),H=new class extends m{constructor(e,t,r){super(e,t,r),this.forms=[],this.homeValuationService=new v(e,t,r)}initialize(e={}){try{let{document:t}=this,{selector:r}=e,i=[];(i=r?t.querySelectorAll(`${r} form[data-type="contact-form"]`):t.querySelectorAll('form[data-type="contact-form"]')).forEach(e=>{this._attachSubmitHandler(e)}),this.forms=this.forms.concat(i)}catch(e){console.log(e)}}destroy(){this.forms=[]}submitForm(e){this._handleSubmit(null,e).catch(e=>console.error(e))}_attachValidation(e){let{window:t}=this;e.querySelectorAll("input, select, textarea").forEach(e=>{t.luxuryPresence.validation.applyFieldValidation(e)})}_attachSubmitHandler(e){e.addEventListener("submit",t=>this._handleSubmit(t,e))}_extractFormValues(e){let t=new FormData(e),r={},i=[],s=/^name(?:-\d+)?$/;return t.forEach((e,t)=>{if("string"==typeof e){let o=e.trim();s.test(t)&&o&&i.push(o);let n=r[t];r[t]=n?`${n} ${o}`:o}else r[t]=e}),i.length?r.name=i.join(" ").trim():!r.name&&r.firstName&&(r.name=r.firstName,r.lastName&&(r.name+=` ${r.lastName}`)),this._deriveNameParts(r)}_deriveNameParts(e){if(e.firstName||!e.name)return e;let t=e.name.indexOf(" ");return -1===t?{...e,firstName:e.name}:{...e,firstName:e.name.slice(0,t),lastName:e.lastName||e.name.slice(t+1).trim()}}_buildSubmissionData(e,t,r){let{window:i,config:s}=this,o=Object.keys(e).filter(e=>!_.includes(e)).reduce((t,r)=>(t[r]=e[r],t),{}),{pageId:n,companyId:a,websiteId:l,pageMeta:d}=s,c=i.localStorage.getItem("utm_vars")||"{}",u=i.localStorage.getItem("referrer")||"",h=this._getFormId(r);return{activity:{author_email:e.email,author_name:e.name,firstName:e.firstName||void 0,lastName:e.lastName||void 0,author_phone:e.phone||e.phoneNumber,activity_source:e.source||"CONTACT_INQUIRY",comments_attributes:[{text:e.message||void 0}],source_url:i.location.href,content:{...o,...JSON.parse(c)}},page:{pageId:n,companyId:a,websiteId:l,pageMeta:{...d,formId:h}},companyId:a,referrer:u,fields:t}}_handleSubmissionSuccess(e){let{window:t}=this,r=e.dataset.delay||2e3;e.classList.remove("loading"),e.classList.remove("error"),e.classList.add("success"),e.querySelectorAll(".success").forEach(e
1561=>e.classList.remove("hide")),e.dispatchEvent(new Event("formsubmitted")),setTimeout(()=>{t.lpUI.hideClosestModal(e),e.reset(),t.lpUI.sideMenuHide(),e.querySelectorAll(".success").forEach(e=>e.classList.add("hide")),e.classList.remove("success")},r)}async _handleSubmit(e,t){if(e&&e.preventDefault(),!t.classList.contains("loading")){this._hideSubmissionError(t),t.classList.remove("error"),t.classList.add("loading");try{let e=this._extractFormValues(t);if(e.middleName)return void t.classList.remove("loading");let r=this._getFields(t),i=this._buildSubmissionData(e,r,t);y(this.window,this.document);let s=await this._waitForLeadSubmit(e=>this._submitLeadRequest(i,e));if(this._sendGAEvent(i),s?.redirected)return void this._showRedirectPending(t);this._handleSubmissionSuccess(t)}catch(e){console.error("Form submission failed:",e),t.dispatchEvent(new Event("formsubmiterror")),t.classList.remove("loading"),t.classList.add("error"),e.userMessage?this._showSubmissionError(t,e.userMessage):this._showSubmissionError(t,"Something went wrong. Please try again.")}}}async _waitForLeadSubmit(e){let t,r={expired:!1,expiresAt:Date.now()+6e3},i=new Promise(e=>{t=setTimeout(()=>{r.expired=!0,e(null)},6e3)}),s=e(r).catch(e=>{if(f(r))return null;throw e});try{return await Promise.race([s,i])}finally{clearTimeout(t)}}_showRedirectPending(e){if(e.classList.add(E),e.querySelector(`.${E}__indicator`))return;let t=this.document.createElement("div");t.className=`${E}__indicator`,t.setAttribute("role","status"),t.setAttribute("aria-label","Loading"),t.innerHTML='<span class="lp-i lp-i--spinner lp-i--pulse" aria-hidden="true"></span>',e.appendChild(t)}_aliasUserWithEventBus(e){try{if(!this.window.eventBusProvider?.alias||!this.window.eventBusProvider?.isIdentified||!this.window.eventBusProvider?.getDistinctId||!this.window.LuxuryPresenceEventBus?.generateUUIDv5FromCompanyEmail)return;if(this.window.eventBusProvider.isIdentified())return void console.log("[EventBus] User already identified, skipping alias");let t=e.activity?.author_email,{companyId:r}=this.config;if(!t||!r)return void console.warn("[EventBus] Missing required data for user alias");let i=this.window.eventBusProvider.getDistinctId();if(!i)return void console.warn("[EventBus] No anonymous ID available for alias");let s=this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(r,t);this.window.eventBusProvider.alias({anonId:i,canonicalId:s}),console.log("[EventBus] User aliased with canonical ID")}catch(e){console.error("[EventBus] User alias failed:",e)}}async _submitLeadRequest(e,t){let{config:r}=this;return(this._aliasUserWithEventBus(e),r.myhomeDashboardEnabled&&(e.activity?.activity_source==="HOME_VALUATION"||e.activity?.activity_source==="HOME_VALUE"))?this.homeValuationService._submitHomeValuationRequest({...e,deadline:t}):fetch(`${r.leadIngesterUrl}/api/v1/leads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw e}))}_sendGAEvent(e){let{document:t}=this,r={hitType:"event",eventCategory:"button",eventAction:"click"};switch(e.activity.activity_source){case"NEWSLETTER_SIGNUP":r.eventLabel="Newsletter",t.sendGoogleTagManagerEvent("event","newsletter_signup");break;case"HOME_SEARCH":r.eventLabel="HomeSearch",t.sendGoogleTagManagerEvent("event","home_search");break;case"HOME_VALUE":case"HOME_VALUATION":r.eventLabel="HomeValue",t.sendGoogleTagManagerEvent("event","home_valuation");break;case"EBOOK":r.eventLabel="Ebook",t.sendGoogleTagManagerEvent("event","ebook_download");break;default:r={hitType:"pageview",page:"/thank-you"},t.sendGoogleTagManagerEvent("event","contact_inquiry")}t.sendGoogleAnalyticsEvent(r)}_getFields(e){let t=e.querySelectorAll("input, select, textarea"),r={};return t.forEach(t=>{let{id:i,name:s,type:o}=t;if(s===w)return!0;let n="";if(i){let r=e.querySelector(`label[for='${i}']`);r?n=r.textContent.trim():t.placeholder&&(n=t.placeholder.trim())}r[s]={label:n,type:t.tagName,inputType:"INPUT"===t.tagName?o:"text"}}),r}_getFormId(e){let t=e.closest("section[id^='section-'], footer[id], .modal[id^='modal-']");return t?.id?this._cleanFormId(t.id):""}_cleanFormId(e){for(let t of["section-","modal-"])if(e.startsWith(t))return e.substring(t.length);return e}_showSubmissionError(e,t){let r=e.querySelector(".submission-error-message");r||((r=this.document.createElement("div")).className="submission-error-message",r.setAttribute("role","alert"),e.appendChild(r)),r.textContent=t||"Something went wrong. Please try again.",r.style.display="block"}_hideSubmissionError(e){let t=e.querySelector(".submission-error-message");t&&(t.style.display="none")}}(B,window,document),G=new class extends m{constructor(e,t,r){super(e,t,r),this.retries=3,this.callbacks=[],this.id=`__googleMapsScriptId${Date.now()}`,this._apiKey="",this.reset()}set apiKey(e){this._apiKey=e,this.config.setGoogleMapsAPIKey(e)}get apiKey(){return this._apiKey}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.failed=!1,this.errors=[],this.onerrorEvent=null}destroy(){this.reset()}async getMapApiKey(){if(this.apiKey)return this.apiKey;let e=this._hadPreviousFailure(),t=!1;for(let r=1;r<=3;r+=1){let i=e&&!t;try{let e=await fetch(this._getMapKeyUrl(r,i));if(t=t||i,this._setFailureFlag(!1),!e.ok)throw Error(`Failed to fetch API key: ${e.status}`);let s=await e.text();if(!s)return"";return this.apiKey=s,this.apiKey}catch(e){console.error(e),r<3&&await this._delay(300*2**(r-1))}}return this._setFailureFlag(!0),""}_getMapKeyUrl(e,t){let r=[];e>1&&r.push(`attempt=${e}`),t&&r.push("recovered_after_failure=1");let i=r.length?`?${r.join("&")}`:"";return`${this._getBaseUrl()}/api/v1/map${i}`}_hadPreviousFailure(){try{return"1"===this.window.sessionStorage.getItem(S)}catch(e){return!1}}_setFailureFlag(e){try{e?this.window.sessionStorage.setItem(S,"1"):this.window.sessionStorage.removeItem(S)}catch(e){}}_delay(e){return new Promise(t=>{this.window.setTimeout(t,e)})}async createUrl(){let e=await this.getMapApiKey();if(!e)throw Error("Refusing to load Google Maps without an API key");
1561let t="https://maps.googleapis.com/maps/api/js";return t+`?callback=__googleMapsCallback&key=${e}&libraries=places`}async setScript(){let e;if(this.document.getElementById(this.id))return void this.callback();try{e=await this.createUrl()}catch(e){console.error(e),this.failed=!0,this.loading=!1,this.onerrorEvent=e,this.callback();return}let t=this.document.createElement("script");t.id=this.id,t.type="text/javascript",t.src=e,t.onerror=this.loadErrorCallback.bind(this),t.defer=!0,t.async=!0,this.document.head.appendChild(t)}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){let e=this.errors.length*2**this.errors.length;console.log(`Failed to load Google Maps script, retrying in ${e} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript().catch(e=>console.error(e))},e)}else this.failed=!0,this.onerrorEvent=e,this.callback()}deleteScript(){let e=this.document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(r=>{r?t(r):e()})})}loadCallback(e){this.callbacks.push(e),this.execute()}setCallback(){this.window.__googleMapsCallback=this.callback.bind(this)}resetIfRetryingFailed(){this.failed&&this.reset()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(e=>{e(this.onerrorEvent)}),this.callbacks=[]}execute(){this.window.google&&this.window.google.maps&&this.window.google.maps.version&&this.callback(),this.resetIfRetryingFailed(),this.done?this.callback():this.loading||(this.loading=!0,this.setCallback(),this.setScript().catch(e=>console.error(e)))}_getBaseUrl(){let{isBuilder:e,websiteApiGatewayUrl:t}=this.config;return e?t:""}resizeStaticMapDimensions(e,t){if(e<=1024&&t<=1024)return{width:e,height:t};let r=Math.min(1024/e,1024/t);return{width:parseInt(e*r),height:parseInt(t*r)}}convertThemeToStaticApiUrl(e){return e.map(e=>{let t=e.stylers.reduce((e,t)=>{let r=t.visibility?`visibility:${t.visibility}`:"",i=t.color?`color:${t.color.replace("#","0x")}`:"",s=t.lightness?`lightness:${t.lightness}`:"";return`${e}|${r}${i}${s}`},""),r=e.elementType?`|element:${e.elementType}`:"";return`feature:${e.featureType}${r}${t}`})}async getMapApiSignedUrl(e){try{let t=await fetch(`${this._getBaseUrl()}/api/v1/map/signature?${e}`);if(!t.ok)throw Error("Failed to fetch signed URL");let{url:r}=await t.json();return r}catch(e){return console.error(e),""}}generateStaticMapUrl(e,t,r,i,s,o){let{width:n,height:a}=this.resizeStaticMapDimensions(s,o),l={center:`${e},${t}`,zoom:r,scale:2,size:`${n}x${a}`,key:this.apiKey};i&&(l.style=this.convertThemeToStaticApiUrl(i));let d=new URLSearchParams;return Object.entries(l).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>d.append(e,t.toString())):d.append(e,t.toString())}),`https://maps.googleapis.com/maps/api/staticmap?${d.toString()}`}async generateDigitallySignedStaticMapUrl({srcWidth:e,srcHeight:t,theme:r,...i}){let{width:s,height:o}=this.resizeStaticMapDimensions(e,t),n={...i,size:`${s}x${o}`};r&&(n.style=this.convertThemeToStaticApiUrl(r));let a=new URLSearchParams;Object.entries(n).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>a.append(e,t.toString())):a.append(e,t.toString())});let l=a.toString();try{return await this.getMapApiSignedUrl(l)}catch(e){return console.error(e),""}}}(B,window,document),K=new class extends m{destroy(){}updateQueryString(e,t,r){r||(r=this.window.location.href);let i=RegExp(`([?&])${e}=.*?(&|#|$)`,"i"),s="";null!=t&&(Array.isArray(t)?t.length&&(s=this.serializeArray(e,t)):"object"==typeof t?(i=RegExp(`([?&])${e}\\[[^=]*\\]=.*?(&|#|$)`,"i"),s=this.serializeObj(t,"",e)):s=`${e}=${encodeURIComponent(t)}`);let o=r.split("#"),n=o[0];if(i.test(r)){let e=n;for(s=s?`$1${s}$2`:"$1";i.test(e);)n=e.replace(i,s),e=e.replace(i,"$1");n=n.replace(/(&|\?)$/,"")}else if(s){let e=-1!==n.indexOf("?")?"&":"?";n+=`${e}${s}`}return void 0!==o[1]&&null!==o[1]&&(n+=`#${o[1]}`),n}getParameterByName(e,t){t||(t=this.window.location.href),e=e.replace(/[[\]]/g,"\\$&");let r=RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`),i=Array.from(RegExp.prototype[Symbol.matchAll].call(r,t)).flat();if(!i.length){let r=RegExp(`[?&]${e}(\\[.*?\\])=(.*?)(?=&|#|$)`,"g");return i=Array.from(RegExp.prototype[Symbol.matchAll].call(r,t)).flat(),this._parseParamToObject(i,"advancedFilters"===e)}return i.length>3?i.reduce((e,t,r)=>((r+1)%3==0&&e.push(decodeURIComponent(t.replace(/\+/g," "))),e),[]):i[2]?decode
1561URIComponent(i[2].replace(/\+/g," ")):""}makePageKey(e){return e.replace("section-","").replace(/-/g,"")}makeParamKey(e,t){return e.global?e.urlKey:`${t}-${e.urlKey}`}deserializeParams(e,t){let r={},i=this.makePageKey(t),s=this.getParameterByName(i);return s&&(r.page=parseInt(s)),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,i),s=this.getParameterByName(t);if("int"===e.type)isFinite(s=parseInt(s))||(s=null);else if("bool"===e.type||"boolean"===e.type)s="true"===s||"false"!==s&&null;else if("json"===e.type)try{s=JSON.parse(s)}catch(e){}r[e.formKey||e.param]=s}),r}serializeParams(e,t,r){let i=this.window.location.href,s=this.makePageKey(t);return i=this.updateQueryString(s,r.page,i),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,s),o=r[e.formKey||e.param];"json"===e.type&&null!=o&&(o=JSON.stringify(o)),i=this.updateQueryString(t,o,i)}),i}formatSliderAtom(e,t=""){return t+(Number.isInteger(e)?e:e.toFixed(2))}formatSliderValue(e,t="",r=""){return e<1e3?this.formatSliderAtom(e,t):e<1e6?`${this.formatSliderAtom(e/1e3,t)}${r}K`:`${this.formatSliderAtom(e/1e6,t)}${r}M`}formatSliderPriceRange(e,t,r,i){return t.min===e&&0!==e?`${i.lowPrefix}${this.formatSliderValue(e,r," ")}`:t.max===e?`${this.formatSliderValue(e,r," ")}${i.highSuffix}`:`${this.formatSliderValue(e,r," ")}`}formatSliderAreaRange(e,t,r,i){return t.min===e&&0!==e?`${i.lowPrefix}${this.formatSliderValue(e)} ${r}`:t.max===e?`${this.formatSliderValue(e)}${i.highSuffix} ${r}`:`${this.formatSliderValue(e)} ${r}`}getSearchFormValues(e){let{queryElement:t,priceSliderElement:r,areaSliderElement:i,neighborhoodSelect:s}=e,o={};if(t&&(o.search=t.value||null),r){let e=r.value.split(";"),t=parseInt(r.dataset.min),i=parseInt(r.dataset.max),s=parseInt(e[0]),n=parseInt(e[1]);o.priceMin=s!==t?s:null,o.priceMax=n!==i?n:null}if(i){let e=i.value.split(";"),t=parseInt(i.dataset.min),r=parseInt(i.dataset.max),s=parseInt(e[0]),n=parseInt(e[1]);o.areaMin=s!==t?s:null,o.areaMax=n!==r?n:null}return s&&(o.neighborhoodId=s.value||null),o}serializeObj(e,t="",r=""){let i=[];for(let s in e)if(e.hasOwnProperty(s)){let o,n=e[s];if(r){let e=t?`[${t}][${s}]`:`[${s}]`;o=`${r}${e}`}else o=t?`${t}[${s}]`:s;null!==n&&Array.isArray(n)?n.length&&i.push(this.serializeArray(o,n)):null!==n&&"object"==typeof n?i.push(this.serializeObj(n,o)):i.push(`${o}=${encodeURIComponent(n)}`)}return i.join("&")}serializeArray(e,t,r=""){let i=[];return t.forEach(t=>{let s=r?`${r}${e}`:e;i.push(`${s}=${encodeURIComponent(t)}`)}),i.join("&")}_parseParamToObject(e,t=!1){if(!e.length)return null;let r={};for(let i=0;i<e.length;i++)if((i+1)%3==0){let s=decodeURIComponent(e[i].replace(/\+/g," ")),o=e[i-1];Object.assign(r,this._setObjectPath(o,s,r,t))}return r}_setObjectPath(e,t,r,i=!1){let s=e.split(/[\[\]]/).filter(Boolean),o=["in","nin","btw","ciin","cinin"],n={},a=n,l=((e,t,r)=>{if(!t)return;let i=(Array.isArray(t)?t:t.match(/([^[.\]])+/g)).reduce((e,t)=>e&&e[t],e);return void 0===i?r:i})(r,s.join("."));return s.forEach((e,n)=>{n===s.length-1?l?a[e]=Array.isArray(l)?[...l,t]:[l,t]:a[e]=i&&o.includes(e)?[t]:t:(a[e]=r[e]?r[e]:{},a=a[e])}),n}}(B,window,document),Y=new class extends m{constructor(e,t,r){super(e,t,r),this._createLightbox=this._createLightbox.bind(this),this.expandSliders=[]}initialize(e={}){try{let{document:e}=this,t=e.querySelectorAll(".has-mobile-expand");t.forEach(e=>{this._addExpandButton(e)}),this.expandSliders=this.expandSliders.concat(t)}catch(e){console.log(e)}}destroy(){let{document:e}=this;e.querySelectorAll(".lp-expand-btn, .lp-expand-btn-wrapper").forEach(e=>e.remove()),this.expandSliders=[]}_addExpandButton(e){let{document:t}=this,r=e.closest("section[id]"),i=e.dataset.append,s=r.querySelector(".lp-expand-btn");if(!s)if((s=t.createElement("button")).className="lp-expand-btn",s.setAttribute("aria-label","Open a lightbox"),s.innerHTML='<span class="lp-i lp-i--expand-alt" aria-hidden="true"></span>',i){let e=r.querySelector(i);e&&e.appendChild(s)}else{let r=t.createElement("div");r.className="lp-expand-btn-wrapper",r.style.position="relative",r.appendChild(s),e.parentNode.insertBefore(r,e.nextSibling)}s.addEventListener("click",()=>{this._createLightbox({slider:e,section:r})})}_createLightbox({slider:e,section:t,initialIndex:r}){let{window:i,document:s}=this,o=`lightbox-for-${t?.id}`,n=i.$&&i.$.fn.slick,a=n&&e.slick,l="function"==typeof i.Splide,d=e.classList.contains("is-initialized")&&e.classList.contains("splide");function c(){let t=s.createElement("div");t.id=o,t.className="lp-lightbox",t.setAttribute("tabindex","-1"),t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.innerHTML=` 1562 <button class="lp-lightbox__close" aria-label="close modal"></button> 1563 <div class="lp-lightbox__content"> 1564 <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery"> 1565 <div class="splide__arrows"> 1566 <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button> 1567 <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button> 1568 </div> 1569 <div class="splide__track"> 1570 <ul class="splide__list"></ul> 1571 </div> 1572 </div> 1573 </div> 1574 `,"function"==typeof i.lpUI.requestScrollLock?i.lpUI.requestScrollLock(o):s.body.style.overflow="hidden",s.body.appendChild(t);let n=t.querySelector(".lp-lightbox__carousel"),a=n.querySelector(".splide__list");t.classList.add("show"),(d?e.querySelectorAll(".splide__slide:not(.splide__slide--clone) img"):e.querySelectorAll("img")).forEac
1574h(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let r=s.createElement("li");r.className="lp-lightbox__slide splide__slide",r.appendChild(t),a.appendChild(r)});let l=new i.Splide(n,{rewind:!0,arrows:!0,arrowPath:"",type:"loop",clones:1,pagination:!1,perPage:1,perMove:1});l.mount(),void 0!==r&&r>=0&&l.go(r),setTimeout(()=>{t.focus()},100);let c=e=>{if(!t.classList.contains("show"))return;let r=t.querySelector(".splide__arrow--prev"),i=t.querySelector(".splide__arrow--next"),s=t.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&r?(e.preventDefault(),r.click()):"ArrowRight"===e.key&&i?(e.preventDefault(),i.click()):"Escape"===e.key&&s&&(e.preventDefault(),s.click())};s.addEventListener("keydown",c),t.querySelector(".lp-lightbox__close").addEventListener("click",()=>{s.removeEventListener("keydown",c),t.classList.remove("show"),l&&l.destroy(),"function"==typeof i.lpUI.releaseScrollLock?i.lpUI.releaseScrollLock(o):s.body.style.overflow="",t.remove()})}if("function"==typeof i.lpUI.requestScrollLock?i.lpUI.requestScrollLock(o):s.body.style.overflow="hidden",n&&!d){let t,r,n,l,d;r={arrows:!0,dots:!1,infinite:!0,draggable:!0,prevArrow:'<button type="button" class="lp-lightbox-arrow--prev lp-lightbox-arrow" aria-label="Previous"></button>',nextArrow:'<button type="button" class="lp-lightbox-arrow--next lp-lightbox-arrow" aria-label="Next"></button>'},(n=s.createElement("div")).id=o,n.className="lp-lightbox",n.setAttribute("tabindex","-1"),n.setAttribute("role","dialog"),n.setAttribute("aria-modal","true"),n.innerHTML=` 1575 <button class="lp-lightbox__close" aria-label="close modal"></button> 1576 <div class="lp-lightbox__content"> 1577 <div class="lp-lightbox__carousel"></div> 1578 </div> 1579 `,s.body.appendChild(n),l=n.querySelector(".lp-lightbox__carousel"),n.classList.add("show"),a?(t=e.slick.$slides.find("img"),r.initialSlide=e.slick?.currentSlide||0,t.each(function(){i.$(".lp-lightbox__carousel").append(i.$(this).clone(!1).removeAttr("style").wrap('<div class="lp-lightbox__slide"></div>').parent())})):(t=e.querySelectorAll("img")).forEach(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let r=s.createElement("div");r.className="lp-lightbox__slide",r.appendChild(t),l.appendChild(r)}),i.$(l).slick(r),setTimeout(()=>{n.focus()},100),d=e=>{if(!n.classList.contains("show"))return;let t=n.querySelector(".lp-lightbox-arrow--prev"),r=n.querySelector(".lp-lightbox-arrow--next"),i=n.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&t?(e.preventDefault(),t.click()):"ArrowRight"===e.key&&r?(e.preventDefault(),r.click()):"Escape"===e.key&&i&&(e.preventDefault(),i.click())},s.addEventListener("keydown",d),n.querySelector(".lp-lightbox__close").addEventListener("click",()=>{s.removeEventListener("keydown",d),n.classList.remove("show");let t=l?.slick?i.$(l).slick("slickCurrentSlide"):0;l?.slick&&i.$(l).slick("unslick"),a&&i.$(e).slick("slickGoTo",t),"function"==typeof i.lpUI.releaseScrollLock?i.lpUI.releaseScrollLock(o):s.body.style.overflow="",n.remove()})}else l?c():(i.luxuryPresence.libs.loadCss(i.luxuryPresence.libs.jsLibsMap.splide.cssSrc),i.luxuryPresence.libs.loadJs(i.luxuryPresence.libs.jsLibsMap.splide.jsSrc,()=>{c(),i.luxuryPresence.libs.jsLibsMap.splide.isLoaded=!0}))}}(B,window,document),z=new class extends m{destroy(){this.window.divolte||(this.window.divolteLp=function(){(this.window.divolteLp.q=this.window.divolteLp.q||[]).push(arguments)})}initialize(e={}){let{divolteServiceUrl:t}=this.config;t&&!this.window.divolte&&this.loadScript()}loadScript(){let{divolteServiceUrl:e}=this.config,t=this.document.createElement("script");t.id="divolte-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/divolte.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){(this.window.divolteLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.divolteLp=this.divolteLp.bind(this)}divolteLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpEvent(e,t){if(!e.includes("pageView"))return void console.log(`${e} IS NOT SUPPORTED`);let{companyId:r,templateId:i,websiteId:s,pageId:o,shareId:n,pageMeta:a}=this.config;this.window.divolte.signal(e,Object.assign({companyId:r,templateId:i,websiteId:s,pageId:o,shareId:n,pageMeta:a},t))}sendLpPageView(){this.sendLpEvent("pageView",{})}}(B,window,document),W=new class extends m{constructor(e,t,r){super(e,t,r)}initialize(e={}){(void 0!==e.enabled?e.enabled:this.config.eventBus?.enabled)&&this.config.eventBus?.apiKey&&this.config.eventBus?.url&&this.loadScript()}loadScript(){let{eventBusUrl:e}=this.config,t=this.document.createElement("script");t.id="posthog-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/v2.8.0/event-bus-js.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){this.window.LuxuryPresenceEventBus&&(this.window.eventBusProvider=this.window.LuxuryPresenceEventBus.createEventBusProvider({apiKey:this.config.eventBus.apiKey,host:this.config.eventBus.url,defaultSource:"frontend://website-render-engine"}
1579)),(this.window.eventBusLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.eventBusLp=this.eventBusLp.bind(this)}destroy(){if(!this.window.eventBusProvider){this.window.eventBusLp=function(){(this.window.eventBusLp.q=this.window.eventBusLp.q||[]).push(arguments)};return}this.window.eventBusProvider.shutdown()}sendLpEvent(e,t){if("user.activity.page.viewed"!==e)return void console.log(`${e} IS NOT SUPPORTED`);if(!this.window.eventBusProvider)return;let{companyId:r}=this.config;try{this.window.eventBusProvider.capture(e,{company:r,data:{}})}catch(e){console.log("EventBus capture error:",e)}}eventBusLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpPageView(){this.sendLpEvent("user.activity.page.viewed",{})}}(B,window,document),Q=new class extends m{constructor(e,t,r){super(e,t,r),this.successListeners=[],this._listenToMessages=this._listenToMessages.bind(this),this._listenToOneTapMessage=this._listenToOneTapMessage.bind(this)}initialize(e={}){try{e.googleSignOnEnabled&&!e.iframe&&this._renderGoogleOneTap(),this.document.querySelectorAll('div[data-signin-type="google-sign-in"]').forEach(e=>this._convertGoogleSignIn(e)),this.document.querySelectorAll('div[data-signin-type="facebook-sign-in"]').forEach(e=>this._convertFacebookSignIn(e))}catch(e){console.log(e)}}destroy(){this.successListeners.forEach(e=>{this.window.removeEventListener("message",this._listenToMessages),this.window.removeEventListener("message",this._listenToOneTapMessage),this.window.removeEventListener(C,this.window[e])})}_renderGoogleOneTap(){if(!this._isGoogleOneTapOnCooldown()){let e=this.document.createElement("div");google.accounts.id.initializeIntermediate({src:this._buildUrlAndCopyAttributes(e,e,"googleOneTap")}),this.window.localStorage.removeItem("googleOneTapExpiration"),this.window.addEventListener("message",this._listenToOneTapMessage)}}_listenToOneTapMessage(e){let t="show_intermediate_iframe",{buyerSellerServiceUrl:r}=this.config,{data:i,origin:s}=e,{type:o,height:n,event:a,source:l,token:d}=i;if(o===t||"hide_intermediate_iframe"===o){let e=this.document.getElementById("onetap_google_intermediate_iframe");e&&(e.style.height=n,e.style.display=o===t?"unset":"none")}s===r&&"GOOGLE_SIGN_ON"===l&&("success"===a?(this._setExpirationLsItem(864e5),this._handleQualifyingQuestionsModal(d)):"cancel"===a&&this._setExpirationLsItem(72e5))}_setExpirationLsItem(e){let t=new Date().getTime()+e;this.window.localStorage.setItem("googleOneTapExpiration",t)}_isGoogleOneTapOnCooldown(){return Number(this.window.localStorage.getItem("googleOneTapExpiration"))>new Date().getTime()}_convertGoogleSignIn(e){this._replaceWithIframe("googleSignIn",e)}_convertFacebookSignIn(e){this._replaceWithIframe("facebookSignIn",e)}_replaceWithIframe(e,t){this._attachSuccessCallback(t);let r=this.document.createElement("iframe");r.src=this._buildUrlAndCopyAttributes(t,r,e),r.dataset.isSocialOauthButton=!0,t.replaceWith(r)}_listenToMessages(e){let{buyerSellerServiceUrl:t}=this.config;if(e.origin===t&&"success"===e.data.event){let e=new Event(C);this.window.dispatchEvent(e),y(this.window,this.document),this.successListeners.forEach(t=>{this.window[t]?this.window[t](e):console.error(`Callback function ${t} not found on window object`)}),this.document.documentElement.classList.add("is-login-success")}}_attachSuccessCallback(e){this.window.addEventListener("message",this._listenToMessages);let t=e.dataset.onSuccessFunctionName;t&&this.successListeners.push(t)}_buildUrlAndCopyAttributes(e,t,r){let{buyerSellerServiceUrl:i,companyId:s,websiteId:o,pageId:n,pageMeta:a}=this.config,{location:l}=this.window,d=l.origin+l.pathname,c=new URL(`${i}/buttons/${r}`),u=this.window.localStorage.getItem("utm_vars"),h=this.window.localStorage.getItem("referrer");c.searchParams.append("companyId",s),c.searchParams.append("websiteId",o),c.searchParams.append("pageId",n),c.searchParams.append("sourceUrl",d),c.searchParams.append("pageMeta",JSON.stringify(a)),u&&c.searchParams.append("utm",u),h&&c.searchParams.append("referrer",h);let p=["data-size","data-width","data-text","data-button-type","data-shape","data-layout","data-max-rows","data-use-continue-as","data-type","data-theme","data-logo_alignment","data-locale"];
1579return Array.from(e.attributes).forEach(e=>{p.includes(e.nodeName)?c.searchParams.append(e.nodeName,e.nodeValue):t.setAttribute("id"===e.nodeName?"data-id":e.nodeName,e.nodeValue)}),c.toString()}_decodeToken(e){try{let t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r=4-t.length%4,i=4===r?t:t+"=".repeat(r);return JSON.parse(atob(i))}catch(e){return null}}_handleQualifyingQuestionsModal(e){if(e&&this.window.luxuryPresence&&this.window.luxuryPresence.qualifyingQuestionsModal){let t=this._decodeToken(e);t&&t.email&&this.window.luxuryPresence.qualifyingQuestionsModal.showModal(t.email,"Google Sign On")}}}(B,window,document),J=new class extends m{constructor(e,t,r){super(e,t,r),this.showModal=this.showModal.bind(this),this.hasModalBeenSubmitted=this.hasModalBeenSubmitted.bind(this),this.modalId="qualifying-questions-modal",this.cookieKey="qualifyingQuestionsModalSubmitted",this.qualifyingQuestionsModalEnabled=!0,this.eventListeners=[],this.timeouts=[]}initialize(e={}){this.qualifyingQuestionsModalEnabled=e.qualifyingQuestionsModalEnabled??this.qualifyingQuestionsModalEnabled,this.qualifyingQuestionsModalEnabled&&this.attachModalCloseListeners()}destroy(){this.eventListeners.forEach(({element:e,event:t,handler:r})=>{e&&e.removeEventListener&&e.removeEventListener(t,r)}),this.timeouts.forEach(e=>{clearTimeout(e)}),this.restoreBodyScroll(),this.eventListeners=[],this.timeouts=[]}hasModalBeenSubmitted(){return"true"===this.getCookie(this.cookieKey)}setModalSubmittedCookie(){this.setCookie(this.cookieKey,"true",365)}showModal(e,t){!this.qualifyingQuestionsModalEnabled||this.hasModalBeenSubmitted()||(this.updateEmailValue(e),this.updateTriggerSourceValue(t),this.showModalElement())}getModalElement(){let e=this.document.getElementById(this.modalId);return e||console.error("Modal element not found:",this.modalId),e}updateEmailValue(e){let t=this.getModalElement();if(!t)return;let r=t.querySelector('input[name="email"]');r&&"string"==typeof e&&(r.value=e)}updateTriggerSourceValue(e){let t=this.getModalElement();if(!t)return;let r=t.querySelector(`#${this.modalId}-triggerSource`);r&&"string"==typeof e&&(r.value=e)}showModalElement(){let e=this.getModalElement();e&&(e.style.display="flex",this.blockBodyScroll())}getCookie(e){let t=`; ${this.document.cookie}`.split(`; ${e}=`);return 2===t.length?decodeURIComponent(t.pop().split(";").shift()):null}setCookie(e,t,r){let i="";if(r){let e=new Date;e.setTime(e.getTime()+864e5*r),i=`; expires=${e.toUTCString()}`}let s="; path=/; SameSite=Lax";this.window&&this.window.location&&"https:"===this.window.location.protocol&&(s+="; Secure"),this.document.cookie=`${e}=${encodeURIComponent(t||"")}${i}${s}`}blockBodyScroll(){this._prevOverflow=this.document.body.style.overflow,this.document.body.style.overflow="hidden"}restoreBodyScroll(){this.document.body.style.overflow=this._prevOverflow||"",this._prevOverflow=null}attachModalCloseListeners(){let e=this.getModalElement();if(!e)return;let t=this.document.getElementById(`${this.modalId}-form`);if(t){let r=()=>{this.setModalSubmittedCookie();let t=setTimeout(()=>{e.style.display="none",this.restoreBodyScroll()},100);this.timeouts.push(t)};t.addEventListener("formsubmitted",r),this.eventListeners.push({element:t,event:"formsubmitted",handler:r})}let r=e.querySelector('[data-dismiss="modal"]');if(r){let t=()=>{e.style.display="none",this.restoreBodyScroll()};r.addEventListener("click",t),this.eventListeners.push({element:r,event:"click",handler:t})}let i=t=>{(t.target===e||t.target.id===this.modalId)&&(e.style.display="none",this.restoreBodyScroll())};e.addEventListener("click",i),this.eventListeners.push({element:e,event:"click",handler:i})}}(B,window,document),X=new class extends m{constructor(e,t,r){super(e,t,r),this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null,this.validationCacheDuration=3e5}destroy(){this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null}async validateSession(e={}){let{useCache:t=!0}=e;if(t&&null!==this.lastValidationResult&&this.lastValidationTime&&Date.now()-this.lastValidationTime<this.validationCacheDuration)return this.lastValidationResult;if(this.isValidating)return null!==this.lastValidationResult&&this.lastValidationResult;this.isValidating=!0;let r=` 1580 query { 1581 validSession { 1582 success 1583 } 1584 } 1585 `;try{let e=await this.window.fetch("/graphql",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({query:r})});if(!e.ok)return console.error("SessionController: HTTP error during session validation",e.status),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let t=await e.json();if(t.errors)return this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let i=t.data?.validSession?.success===!0;return this.lastValidationResult=i,this.lastValidationTime=Date.now(),i}catch(e){return console.error("SessionController: Error validating session",e),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1}finally{this.isValidating=!1}}clearCache(){this.lastValidationResult=null,this.lastValidationTime=null}}(B,window,document),Z=new class extends m{constructor(e,t,r){super(e,t,r),this.consentListener=null,this.eventName=null}destroy(){this.consentListener&&this.eventName&&(this.document.removeEventListener(this.eventName,this.consentListener),this.consentListener=null)}loadScript(){this.document.getElementById("posthog-script")||this.window.luxuryPresence.eventBus.initialize({enabled:this.config.eventBus?.enabled}),this.document.getElementById("divolte-script")||this.window.luxuryPresence.divolte.initialize({})}removeScripts(){this.window.luxuryPresence?.eventBus?.destroy?.(),this.window.luxuryPresence?.divolte?.destroy?.(),this.document.getElementById("posthog-script")?.remove(),this.document.getElementById("divolte-script")?.remove()}async initialize(e={}){let t=I[e.provider];if(!t)return;this.eventName=t.eventName;let r=await this.window.luxuryPresence.session.validateSession();(t.hasAnalyticsConsent(this.document,this.window)||r)&&this.loadScript(),this.consentListener||(this.consentListener=e=>{t.isAnalyticsAccepted(e.detail)?this.loadScript():this.removeScripts()},this.document.addEventListener(t.eventName,this.consentListener))}}(B,window,document),ee=new class extends m{destroy(){}transformVariables(e,t){let r;return x(r={...t},["testimonialId"]),R(r,["testimonialId"],"testimonialIds"),0===r.limit&&delete r.limit,(void 0===r.limit||null===r.limit)&&(("testimonials"===e||"testimonialsCount"===e)&&(r.limit=50),("agents"===e||"agentsCount"===e||"developments"===e||"developmentsCount"===e||"neighborhoods"===e||"neighborhoodsCount"===e||"posts"===e||"postsCount"===e||"pressReleases"===e||"pressReleasesCount"===e)&&(r.limit=100)),!function(e){let{sortDir:t}=e;"string"==typeof t&&t.includes("_")&&(e.sortDir=t.replace(/_/g," "))}(r),!function(e,t){switch(t){case"agent":break;case"testimonials":case"testimonialsCount":x(e,["testimonialIds"]);break;case"agents":case"agentsCount":x(e,["officeId","teamId","developmentId","agentIds","tags"]),R(e,["officeId"],"officeIds"),R(e,["teamId"],"teamIds"),R(e,["developmentId"],"developmentIds");break;case"neighborhoods":case"neighborhoodsCount":x(e,["neighborhoodIds","neighborhoodId"]),R(e,["neighborhoodIds","neighborhoodId"],"neighborhoodId");break;case"developments":case"developmentsCount":x(e,["agentId","neighborhoodIds","neighborhoodId","developmentIds","tag"]),e.agentId&&Array.isArray(e.agentId)&&([e.agentId]=e.agentId),R(e,["neighborhoodIds","neighborhoodId"],"neighborhoodIds"),R(e,["developmentIds","developmentId"],"developmentIds");break;case"properties":case"propertiesCount":x(e,["statusIds","statusId","propertyTypeIds","propertyTypeId","propertyId","networkId","propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","
1585spaceTypeIds","addressState","addressCity","backfillProviders","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"]),["propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","spaceTypeIds","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"].forEach(t=>R(e,[t],t)),R(e,["statusIds","statusId"],"propertyStatusId"),e.excludeStatusId&&(e.excludePropertyStatusId=e.excludeStatusId,delete e.excludeStatusId),R(e,["propertyTypeIds","propertyTypeId"],"propertyTypeId"),R(e,["networkId"],"networkId"),R(e,["propertyId"],"propertyIds"),["salesPriceGTE","salesPriceLTE","leasePriceGTE","leasePriceLTE","livingSpaceSizeGTE","livingSpaceSizeLTE"].forEach(t=>{null!=e[t]&&(e[t]=Math.trunc(Number(e[t])))});break;case"posts":case"postsCount":x(e,["categoryIds","categoryId","neighborhoodId"]),void 0!==e.order&&(e.sort=e.order,delete e.order),R(e,["categoryIds","categoryId"],"categoryId");break;case"postCategories":x(e,["categoryId","categoryIds"]),void 0!==e.order&&(e.sort=e.order,delete e.order),R(e,["categoryIds","categoryId"],"categoryId");break;case"pressReleases":case"pressReleasesCount":x(e,["pressReleaseId","categories","propertyId","developmentId","agentId","teamId"]),R(e,["pressReleaseId"],"pressReleaseIds");break;case"offices":case"officesCount":x(e,["officeId","officeIds","tags"]),R(e,["officeId"],"officeIds");break;case"teams":case"teamsCount":x(e,["teamId","teamIds"]),R(e,["teamId"],"teamIds");break;case"pois":x(e,["categories"]),Array.isArray(e.categories)&&(e.categories=e.categories.map(e=>e.toLowerCase())),"string"==typeof e.sortBy&&(e.sortBy=e.sortBy.toLowerCase())}}(r,e),r}transformResponse(e,t){return"agent"===e?P(t,T):"agents"===e||"agentsCount"===e?O(t,L):"neighborhood"===e?P(t,k):"neighborhoods"===e||"neighborhoodsCount"===e?O(t,M):"development"===e?P(t,$):"developments"===e||"developmentsCount"===e?O(t,U):t}transformPage(e){return{items:e&&e.items||[],count:e&&e.total||0}}applyPropertyDisclaimers(t,r){if(!Array.isArray(t)||!t.length||!r||!r.length)return Promise.resolve(t);let i=t.filter(e=>e&&e.vendorId&&e.mlsId).map(e=>({feedId:e.vendorId,listingId:e.mlsId,officeName:e.officeName??null,agentMlsId:e.mlsAgentId??null,officeMlsId:e.mlsOfficeId??null,attributionContact:e.attributionContact??null,status:e.status??null,syncedAt:e.syncedAt??null})),s=e=>{let i={};return(e||[]).forEach(e=>{i[`${e.feedId}:${e.listingId}`]=e}),t.map(e=>{let t=e&&i[`${e.vendorId}:${e.mlsId}`],s={};return r.forEach(e=>{let r=t?t[D[e]]:void 0;s[e]=r??null}),{...e,...s}})};if(!i.length)return Promise.resolve(s([]));let{websiteId:o}=this.config;return this.window.superagent?this.window.superagent.post(`${this.window.luxuryPresence.defaults.routerUrl}/graphql`).withCredentials().send({query:e(N),variables:{input:{websiteId:"string"==typeof o?o:void 0,properties:i}}}).then(e=>s(e.body&&e.body.data&&e.body.data.propertyDisclaimers),e=>(console.warn("[RouterApiController] propertyDisclaimers lookup failed:",e),s([]))):Promise.resolve(s([]))}}(B,window,document),et=new class extends m{constructor(e,t,r){super(e,t,r),this.natives=new WeakMap,this.rates=new Map,this.pending=new Map,this.target=void 0,this.generation=0,this.initialized=!1,this.observer=null,this.abortController=null}get currentCurrency(){return this.target}get cookieOptions(){return{document:this.document,location:this.window.location}}get enabledCurrencies(){return(this.config.enabledCurrencies??[]).map(F.toSupportedToCurrency).filter(Boolean)}initialize(){return this.initialized||!this.config.currencyConversionEnabled?Promise.resolve():(this.initialized=!0,this.generation=0,this.abortController=new this.window.AbortController,this.target=(0,F.readValidCurrencyCookie)(this.cookieOptions,{enabled:!0,enabledCurrencies:this.enabledCurrencies}),this.observer=new this.window.MutationObserver(()=>this.ensureRates(this.apply())),this.observer.observe(this.document.body,{childList:!0,subtree:!0}),this.ensureRates(this.apply()))}setCurrency(e){if(!this.config.currencyConversionEnabled)return!1;let t=(0,F.toSupportedToCurrency)(e);return!!t&&!!this.enabledCurrencies.includes(t)&&(this.target=t,this.generation+=1,(0,F.writeCurrencyCookie)(this.cookieOptions,t)||console.warn("[CurrencyConversionController] could not persist currency preference:",t),this.apply(),!0)}reset(){this.config.currencyConversionEnabled&&(this.target=void 0,this.generation+=1,(0,F.clearCurrencyCookie)(this.cookieOptions),this.apply())}destroy(){this.observer?.disconnect(),this.observer=null,this.abortController?.abort(),this.abortController=null,this.pending.clear(),this.rates.clear(),this.generation=null,this.initialized=!1}apply(){let e=new Set;return this.document.querySelectorAll("[data-lp-price]").forEach(t=>{let r=this.natives.get(t);if(!r){if(!(r=(e=>{let t=e.getAttribute("data-lp-native-amount"),r=null===t||""===t.trim()?NaN:Number(t),i=(0,F.toSupportedFromCurrency)(e.getAttribute("data-lp-native-currency"));if(!Number.isFinite(r)||r<0||!i)return;let s=Number(e.getAttribute("data-lp-precision"));return{amount:r,currency:i,precision:Number.isInteger(s)&&s>=0?s:0,originalHTML:e.innerHTML}})(t)))return;this.natives.set(t,r)}this.rates.has(r.currency)||e.add(r.currency),this.render(t,r)}),[...e]}render(e,t){let r=this.convertedText(t);if(void 0===r){e.innerHTML!==t.originalHTML&&(e.innerHTML=t.originalHTML);return}e.textContent!==r&&(e.textContent=r)}convertedText(e){if(!this.target||this.target===e.currency)return;let t=this.rates.get(e.currency)?.[this.target];
1585if("number"!=typeof t||!Number.isFinite(t))return;let r=(0,F.convertAmount)(e.amount,t);if(void 0!==r)return(0,F.formatMoney)(r,this.target,{precision:e.precision})}ensureRates(e){return e.length?Promise.all(e.map(e=>this.requestRates(e))).then(()=>{null!==this.generation&&this.apply()}):Promise.resolve()}requestRates(e){let t=this.pending.get(e);if(t)return t;let r=this.abortController?.signal,i=(0,F.fetchExchangeRates)(e,{baseUrl:this.config.valuationApiBase,signal:r,onError:t=>console.warn(`[CurrencyConversionController] exchange rate fetch failed for ${e}:`,t)}).then(t=>{r?.aborted||this.rates.set(e,t??{})});return this.pending.set(e,i),i}}(B,window,document);function er(e,t){if(window.luxuryPresence[e])try{window.luxuryPresence[e].destroy()}catch(e){console.log(e)}window.luxuryPresence[e]=t}er("config",B),er("modals",q),er("buttons",V),er("validation",j),er("contactForms",H),er("mapApiLoader",G),er("pagination",K),er("expandSliders",Y),er("divolte",z),er("eventBus",W),er("oauth",Q),er("qualifyingQuestionsModal",J),er("session",X),er("consent",Z),er("redirects",{checkHstRedirect:function(e){let{config:t}=window.luxuryPresence;return!t.hvStepTwoCaptureEnabled&&!!t.hstValuationRedirectEnabled&&!!t.mlsEnabled&&!!t.myhomeDashboardEnabled&&(window.location.href=`/home-search/home-valuation?address=${encodeURIComponent(e)}`,!0)},destroy(){}}),er("routerApi",ee),er("currencyConversion",et),window.luxuryPresence.formatSliderPriceRange=K.formatSliderPriceRange.bind(K),window.luxuryPresence.formatSliderAreaRange=K.formatSliderAreaRange.bind(K),window.luxuryPresence.getSearchFormValues=K.getSearchFormValues.bind(K),window.luxuryPresence.handlebarsHelpersFactory=function(t){return e(n)(t,{isEqual:(e,t)=>e==t})}})(); 1586//# sourceMappingURL=lp-sdk.js.map 1587 1588 </script>
1588 1589 1590
1590<script> 1591 var lpGlobalInitialized = false; 1592 1593 function lpGlobalInit () { 1594 if (lpGlobalInitialized) { 1595 return; 1596 } 1597 lpGlobalInitialized = true; 1598 // Initialize wow animation plugin only according to turbolinks 1599 var wow; 1600 if (window.WOW) { 1601 wow = new WOW({ 1602 animateClass: 'animated', 1603 offset: wowOffset, 1604 live: false, 1605 callback: function(box) {} 1606 }); 1607 } 1608 // Initialize handlebar helpers only once 1609 function handlebarsInit() { 1610 if (!window.Handlebars) { 1611 return; 1612 } 1613 HandlebarsIntl.registerWith(Handlebars); 1614 Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars)); 1615 } 1616 1617 handlebarsInit(); 1618 1619 /* Initialize Luxury Presence SDK */ 1620 try { 1621 window.luxuryPresence.config.setCompany("be9e662d-d28f-4f3b-9f8d-cb20d3c0b372", {}); 1622 window.luxuryPresence.config.setWebsite("0de14d64-da82-4bec-9862-7f827d40ab3f", { 1623 myhomeDashboardEnabled: false, 1624 mlsEnabled: true, 1625 hstValuationRedirectEnabled: true, 1626 hvStepTwoCaptureEnabled: false 1627 }); 1628 const url = new URL(window.location.href); 1629 const shareId = url.searchParams.get('shareId'); 1630 window.luxuryPresence.config.setPage("d0aade00-c2a6-4c27-9d08-2580a55cc3d0", { 1631 sourceResource: "", 1632 pageElementId: "", 1633 pageQueryVariables: {}, 1634 shareId: "", 1635 }); 1636 window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {}); 1637 window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {}); 1638 window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {}); 1639 window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {}); 1640 window.luxuryPresence.config.setEventBus({ 1641 enabled: true, 1642 apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr", 1643 url: "https://p.luxurypresence.com", 1644 }); 1645 window.luxuryPresence.config.setTemplateId("1d3967df-14f2-449d-87b7-bd68bf93906f", {}); 1646 window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {}); 1647 window.luxuryPresence.buttons.initialize({}); 1648 window.luxuryPresence.consent.initialize({ provider: 'lp-consent' }); 1649 window.luxuryPresence.contactForms.initialize({}); 1650 window.luxuryPresence.validation.initialize({}); 1651 window.luxuryPresence.expandSliders.initialize({}); 1652 window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false }); 1653 window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true }); 1654 /* Optional: cached pages / older SDKs may not carry this controller */ 1655 window.luxuryPresence.currencyConversion?.initialize(); 1656 } catch (e) { 1657 console.log(e); 1658 } 1659 1660 /* Inject Section Specific Javascript */ 1661 try { 1662(function init(sectionDomId) { 1663 const section = document.getElementById(sectionDomId); 1664 const contactTitle = section.querySelector('.js-contact-title'); 1665 const emailInput = section.querySelector('.js-email-input'); 1666 const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/; 1667 emailInput.addEventListener('input', function () { 1668 if (emailRegex.test(this.value)) { 1669 this.setCustomValidity(''); 1670 } else { 1671 this.setCustomValidity('Please enter a valid email address.'); 1672 } 1673 this.reportValidity(); 1674 }); 1675 const inputName = section.querySelector('.js-input-name'); 1676 inputName.addEventListener('keyup', function () { 1677 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 1678 this.setCustomValidity("Please input your first name and last name."); 1679 } else { 1680 this.setCustomValidity(""); 1681 } 1682 }); 1683 function setHttp(link) { 1684 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1685 link = 'https://' + link; 1686 } 1687 return link; 1688 } 1689 const socialLinks = section.querySelectorAll('.lp-socials__link, .contact-form-modal-details__socials-l
1689ink'); 1690 socialLinks.forEach(linkElement => { 1691 const href = linkElement.getAttribute('href'); 1692 if (href) { 1693 linkElement.setAttribute('href', setHttp(href)); 1694 } 1695 }); 1696 if (contactTitle.length < 1) return; 1697 let words = contactTitle.textContent.split(" "); 1698 if (words.length > 1) { 1699 contactTitle.innerHTML = `<span class="contact__title-top">${words[0]} </span><span class="contact__title-bottom">${words.splice(1).join(" ")}</span>`; 1700 } 1701 const addRedirectToForm = () => { 1702 const redirectLink = document.getElementById(`${sectionDomId}`).querySelector('.js-redirect-link'); 1703 const form = document.getElementById(`${sectionDomId}`).querySelector('.js-form'); 1704 function redirectPage(link) { 1705 if (link) { 1706 const rawHref = link.getAttribute('href'); 1707 link.setAttribute('href', setHttp(rawHref)); 1708 link.click(); 1709 } 1710 } 1711 function setHttp(link) { 1712 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1713 link = 'http://' + link; 1714 } 1715 return link; 1716 } 1717 form.addEventListener("reset", function () { 1718 redirectPage(redirectLink); 1719 }); 1720 }; 1721 addRedirectToForm(); 1722})('modal-global-contact-us'); 1723} catch(e) { 1724console.log(e); 1725} 1726 1727 try { 1728(function init(sectionDomId) { 1729 (function () { 1730 const observer = new IntersectionObserver(entries => { 1731 entries.forEach(entry => { 1732 if (entry.isIntersecting) entry.target.classList.add('is-in-viewport'); 1733 }); 1734 }, { 1735 threshold: 0.5 1736 }); 1737 const initialElements = document.querySelectorAll('[data-animate="true"]'); 1738 initialElements.forEach(element => observer.observe(element)); 1739 const container = document.querySelector('.data-container'); 1740 if (container) { 1741 const mutationObserver = new MutationObserver(mutations => { 1742 mutations.forEach(mutation => { 1743 if (mutation.type === 'childList') { 1744 mutation.addedNodes.forEach(node => { 1745 if (node.nodeType === 1 && node.getAttribute('data-animate') === 'true') observer.observe(node); 1746 }); 1747 } 1748 }); 1749 }); 1750 mutationObserver.observe(container, { 1751 childList: true, 1752 subtree: true 1753 }); 1754 } 1755 })(); 1756 const sectionSelector = document.getElementById(sectionDomId); 1757 const searchToggleSelector = sectionSelector.querySelector('.js-search-toggle-btn'); 1758 const searchWrapperSelector = sectionSelector.querySelector('.js-header-search'); 1759 const header = sectionSelector.querySelector('.js-header'); 1760 let lastScrollTop = 0; 1761 (function (stickyAnchorRoot) { 1762 if (!stickyAnchorRoot) return; 1763 function getInFlowTop(target) { 1764 var inlineValue = target.style.getPropertyValue('position'); 1765 var inlinePriority = target.style.getPropertyPriority('position'); 1766 target.style.setProperty('position', 'relative', 'important'); 1767 var top = target.getBoundingClientRect().top + window.pageYOffset; 1768 if (inlineValue) target.style.setProperty('position', inlineValue, inlinePriority);else target.style.removeProperty('position'); 1769 var scrollMarginTop = parseFloat(window.getComputedStyle(target).scrollMarginTop) || 0; 1770 return Math.max(0, top - scrollMarginTop); 1771 } 1772 stickyAnchorRoot.addEventListener('click', function (event) { 1773 if (event.defaultPrevented || event.button !== 0) return; 1774 if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return; 1775 if (document.body.hasAttribute('data-scroll-container')) return; 1776 var link = event.target.closest('a[href]'); 1777 if (!link || !stickyAnchorRoot.contains(link) || link.target === '_blank') return; 1778 var href = link.getAttribute('href'); 1779 if (!/^#[^#]/.test(href)) return; 1780 var targetId; 1781 try { 1782 targetId = decodeURIComponent(href.slice(1)); 1783 } catch (e) { 1784 return; 1785 } 1786 var target = document.getElementById(targetId); 1787 if (!target || window.getComputedStyle(target).position !== 'sticky') return; 1788 event.preventDefault(); 1789 if (window.location.hash !== href) window.history.pushState(null, '', href); 1790 window.requestAnimationFrame(function () { 1791 window.scrollTo({ 1792 top: getInFlowTop(target) 1793 }); 1794 }); 1795 }); 1796 })(document.getElementById(sectionDomId)); 1797 const subNavOpeners = sectionSelector.querySelectorAll('.js-subnav-opener');
1798 subNavOpeners.forEach(opener => { 1799 opener.addEventListener('click', function (e) { 1800 e.preventDefault(); 1801 e.stopPropagation(); 1802 const parent = opener.parentElement; 1803 subNavOpeners.forEach(otherOpener => { 1804 if (otherOpener !== opener) { 1805 otherOpener.parentElement.classList.remove('header-navigation__item--sub-nav--opened'); 1806 } 1807 }); 1808 parent.classList.toggle('header-navigation__item--sub-nav--opened'); 1809 }); 1810 }); 1811 document.addEventListener('click', function (e) { 1812 if (!e.target.closest('.js-subnav-opener') && !e.target.closest('.header-navigation__item--sub-nav--opened')) { 1813 subNavOpeners.forEach(opener => { 1814 opener.parentElement.classList.remove('header-navigation__item--sub-nav--opened'); 1815 }); 1816 } 1817 }); 1818 function initHeaderColors() { 1819 try { 1820 var colorStr = window.getComputedStyle(header).getPropertyValue("--backgroundColor"); 1821 var bgColor = makeColor(colorStr); 1822 var isDark = (bgColor.rgba.r * 299 + bgColor.rgba.g * 587 + bgColor.rgba.b * 114) / 1000 < 128; 1823 sectionSelector.classList.add('is-background-color-' + (isDark ? 'dark' : 'light')); 1824 } catch (e) {} 1825 } 1826 function makeColor(str) { 1827 var color = { 1828 rgba: { 1829 r: 0, 1830 g: 0, 1831 b: 0, 1832 a: 0 1833 } 1834 }; 1835 if (str && str.match) { 1836 var m = str.match(/rgba?\s*\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\.0-9]+))?\)/); 1837 if (m) { 1838 color.rgba.r = parseInt(m[1]); 1839 color.rgba.g = parseInt(m[2]); 1840 color.rgba.b = parseInt(m[3]); 1841 color.rgba.a = parseFloat(m[4]); 1842 if (isNaN(color.rgba.a)) { 1843 color.rgba.a = 1; 1844 } 1845 } 1846 } 1847 return color; 1848 } 1849 initHeaderColors(); 1850 var navEl = document.querySelector('nav > header') || document.querySelector('nav'); 1851 var navbarHeight = navEl ? navEl.offsetHeight : 0; 1852 if (navEl) { 1853 if (window.ResizeObserver) { 1854 new ResizeObserver(function (entries) { 1855 if (!entries.length) return; 1856 navbarHeight = entries[0].target.offsetHeight; 1857 }).observe(navEl); 1858 } else { 1859 window.addEventListener('resize', function () { 1860 navbarHeight = navEl.offsetHeight; 1861 }); 1862 } 1863 } 1864 function isLocomotiveActive() { 1865 return document.body.hasAttribute('data-scroll-container'); 1866 } 1867 function updateHeaderVisibility(currentScrollTop) {
1868 if (!searchWrapperSelector || searchWrapperSelector.style.display !== 'block') { 1869 if (currentScrollTop === 0) header.classList.remove('header--hide');else if (currentScrollTop > lastScrollTop) header.classList.add('header--hide');else header.classList.remove('header--hide'); 1870 } 1871 lastScrollTop = currentScrollTop; 1872 } 1873 function customHeaderHideShow(currentScrollTop) { 1874 if (!navEl) return; 1875 if (currentScrollTop > 0) { 1876 navEl.classList.add('scroll'); 1877 } else { 1878 navEl.classList.remove('scroll'); 1879 } 1880 if (currentScrollTop > lastScrollTop && currentScrollTop > navbarHeight) { 1881 document.documentElement.style.setProperty('--global-header-height', '0px'); 1882 } else { 1883 document.documentElement.style.setProperty('--global-header-height', navbarHeight + 'px'); 1884 } 1885 } 1886 window.addEventListener('scroll', function () { 1887 if (isLocomotiveActive()) return; 1888 var currentScrollTop = window.scrollY || document.documentElement.scrollTop; 1889 updateHeaderVisibility(currentScrollTop); 1890 }); 1891 var isTicking = false; 1892 var latestLocoScrollY = 0; 1893 window.addEventListener('locomotive-scroll', function (e) { 1894 latestLocoScrollY = e.detail.scrollY; 1895 if (!isTicking) { 1896 window.requestAnimationFrame(function () { 1897 customHeaderHideShow(latestLocoScrollY); 1898 updateHeaderVisibility(latestLocoScrollY); 1899 isTicking = false; 1900 }); 1901 isTicking = true; 1902 } 1903 }); 1904 if (searchToggleSelector !== null) { 1905 searchToggleSelector.addEventListener('click', function () { 1906 if (searchWrapperSelector.style.display === 'block') { 1907 searchWrapperSelector.style.display = 'none'; 1908 } else { 1909 searchWrapperSelector.style.display = 'block'; 1910 header.classList.remove('header--hide'); 1911 } 1912 }); 1913 document.addEventListener('click', function (evt) { 1914 if (!searchToggleSelector.contains(evt.target) && !searchWrapperSelector.contains(evt.target)) searchWrapperSelector.style.display = 'none'; 1915 }); 1916 } 1917 window.luxuryPresence.mapApiLoader.load().then(() => {
1918 if (!searchWrapperSelector) return; 1919 const templateHTML = sectionSelector.querySelector('.js-card-template')?.innerHTML; 1920 const itemTemplate = templateHTML && Handlebars.compile(templateHTML); 1921 const searchMls = searchWrapperSelector.dataset.searchMls === 'true'; 1922 const searchProperties = searchWrapperSelector.dataset.searchProperties === 'true'; 1923 const selectedCountries = searchWrapperSelector.dataset.locations; 1924 const searchInputSelector = sectionSelector.querySelector('.js-header-search-input'); 1925 const searchIconSelector = sectionSelector.querySelector('.js-header-btn-search'); 1926 const closeIconSelector = sectionSelector.querySelector('.js-header-btn-close'); 1927 const searchResultsSelector = sectionSelector.querySelector('.js-header-search-results-holder'); 1928 const resultsContainerSelector = sectionSelector.querySelector('.js-header-results-container'); 1929 const loaderSelector = sectionSelector.querySelector('.js-header-spinner'); 1930 const predefinedSelector = sectionSelector.querySelector('.js-header-search-results-predefined'); 1931 const nothingFoundSelector = sectionSelector.querySelector('.js-header-spinner-nothing-found'); 1932 const service = new google.maps.places.AutocompleteService(); 1933 const geocoder = new google.maps.Geocoder(); 1934 var keyword; 1935 var leasePropertyState = false; 1936 var leasePropertySearched; 1937 var isLoading = false; 1938 var newSearchTimer; 1939 var placesResult = {}; 1940 function updateSearchDisplay() { 1941 var hasResults = !!resultsContainerSelector.innerHTML; 1942 var hasPredefined = predefinedSelector.querySelectorAll('a:not(.not-processed)').length > 0; 1943 nothingFoundSelector.style.display = 'none'; 1944 if (hasResults) { 1945 predefinedSelector.style.display = 'none'; 1946 loaderSelector.style.display = 'none'; 1947 resultsContainerSelector.style.display = 'block'; 1948 } else if (isLoading) { 1949 resultsContainerSelector.style.display = 'none'; 1950 predefinedSelector.style.display = 'none'; 1951 loaderSelector.style.display = 'block'; 1952 } else if (hasPredefined) { 1953 resultsContainerSelector.style.display = 'none'; 1954 loaderSelector.style.display = 'none'; 1955 predefinedSelector.style.display = 'block'; 1956 } else { 1957 resultsContainerSelector.style.display = 'none'; 1958 loaderSelector.style.display = 'none'; 1959 predefinedSelector.style.display = 'none'; 1960 if (keyword) nothingFoundSelector.style.display = 'block'; 1961 } 1962 } 1963 function moveSelection(up) { 1964 var count = resultsContainerSelector.innerHTML ? resultsContainerSelector : predefinedSelector; 1965 var links = count.querySelectorAll('.results-link'); 1966 if (!links.length) return; 1967 var idx = -1; 1968 links.forEach((link, i) => { 1969 if (idx === -1 && link.classList.contains('header-search-results__link--selected')) idx = i; 1970 }); 1971 var newIdx; 1972 if (up) { 1973 newIdx = idx - 1; 1974 if (newIdx < 0) newIdx = links.length - 1; 1975 } else { 1976 newIdx = idx + 1; 1977 if (newIdx > links.length - 1) newIdx = 0; 1978 } 1979 if (newIdx !== idx) { 1980 searchResultsSelector.querySelector('.header-search-results__link--selected')?.classList.remove('header-search-results__link--selected'); 1981 links[newIdx].classList.add('header-search-results__link--selected'); 1982 } 1983 } 1984 function startSearch() { 1985 const term = searchInputSelector.value; 1986 if (term === keyword && leasePropertySearched === leasePropertyState) return; 1987 leasePropertySearched = leasePropertyState; 1988 keyword = term; 1989 if (term) doSearch(term, leasePropertySearched);else setResults(null); 1990 } 1991 function mlsSearch(term) { 1992 var query = { 1993 omnibox: term, 1994 limit: 5 1995 }; 1996 return superagent.get(window.location.protocol + '//' + window.location.host + '/home-search/listings.json').query(query).then(function (res) { 1997 if (!Array.isArray(res.body)) return []; 1998 return res.body.map(function (item) { 1999 return { 2000 id: item.id, 2001 display_address: [item.address_1, item.city, [item.state, item.postal_code].filter(function (i) { 2002 return i; 2003 }).join(' ')].filter(function (i) { 2004 return i; 2005 }).join(', ') 2006 }; 2007 }); 2008 }, function (e) { 2009 console.log(e); 2010 return []; 2011 }); 2012 } 2013 function resolveGeoBounds(placeId, description) { 2014 return new Promise(function (resolve, reject) { 2015 geocoder.geocode({ 2016 'placeId': placeId 2017 }, function (results, status) { 2018 if (status != 'OK') return resolve(null); 2019 var result = results[0]; 2020 var bounds = new google.maps.LatLngBounds();
2021 bounds.extend(result.geometry.viewport.getSouthWest()); 2022 bounds.extend(result.geometry.viewport.getNorthEast()); 2023 result.geometry.bounds = bounds.toJSON(); 2024 var placeUrl = window.luxuryPresence.makeMlsLink(result); 2025 return resolve({ 2026 placeUrl: placeUrl, 2027 description: description 2028 }); 2029 }); 2030 }); 2031 } 2032 function addRestrictions(request) { 2033 switch (selectedCountries) { 2034 case 'Worldwide': 2035 return request; 2036 case 'US & Canada': 2037 request.componentRestrictions = { 2038 country: ['us', 'ca'] 2039 }; 2040 return request; 2041 default: 2042 request.componentRestrictions = { 2043 country: 'us' 2044 }; 2045 return request; 2046 } 2047 } 2048 function resolveAutocomplete(term, deeper) { 2049 var request = addRestrictions({ 2050 input: term, 2051 types: deeper ? ['geocode'] : ['(regions)'], 2052 limit: 1 2053 }); 2054 return new Promise(function (resolve, reject) { 2055 service.getPlacePredictions(request, function (results, status) { 2056 if (status !== google.maps.places.PlacesServiceStatus.OK) { 2057 resolve(null); 2058 return; 2059 } 2060 if (!Array.isArray(results)) { 2061 resolve(null); 2062 return; 2063 } 2064 if (deeper) { 2065 var allowedTypes = { 2066 'neighborhood': true, 2067 'administrative_area_level_3': true, 2068 'administrative_area_level_4': true, 2069 'administrative_area_level_5': true, 2070 'sublocality_level_1': true, 2071 'sublocality_level_2': true, 2072 'sublocality_level_3': true 2073 }; 2074 results = results.filter(function (res) { 2075 return res.types.find(t => allowedTypes[t]); 2076 }); 2077 } 2078 if (!results.length) { 2079 resolve(null); 2080 return; 2081 } 2082 resolve(results); 2083 }); 2084 }); 2085 } 2086 function placesSearch(term, ignoreInput) { 2087 if (placesResult.term !== term) { 2088 placesResult = { 2089 term: term, 2090 result: resolveAutocomplete(term).then(function (results) { 2091 if (!ignoreInput && term !== keyword) return null; 2092 if (ignoreInput && !results) return resolveAutocomplete(term, true); 2093 return results; 2094 }).then(function (results) { 2095 if (!ignoreInput && term !== keyword || !results) return []; 2096 var geoResultPromises = results.map(function (result) { 2097 return resolveGeoBounds(result.place_id, result.description); 2098 }); 2099 return Promise.all(geoResultPromises).then(function (geoLinks) { 2100 return geoLinks.filter(function (i) { 2101 return i; 2102 }).slice(0, 3); 2103 }); 2104 }) 2105 }; 2106 } 2107 return placesResult.result; 2108 } 2109 function propertiesSearch(term) { 2110 var payload = { 2111 companyId: window.luxuryPresence.defaults.companyId, 2112 search: term, 2113 offset: 0, 2114 limit: 4, 2115 statusIds: ["5f528253-abb7-484e-95c3-330269ac1105", "959c11cf-8655-4f91-874c-292b0ab7ea6b", "a0012964-4f51-4430-abf8-6547c5ab6441", "df04ccbe-4621-4140-a504-ee1a17430bb7", "88b4ace6-f39b-4b25-a051-8f6dba976833", "96031d77-bbe5-4de3-90d8-1e4e70de8ca8"] 2116 }; 2117 var gqlQuery = 'query ($companyId: String, $search: String, $offset: Int, $limit: Int, $propertyStatusId: [String!]) {properties (companyId: $companyId, search: $search, offset: $offset, limit: $limit, propertyStatusId: $propertyStatusId) {items {id name slug fullAddress privateAddress status isPasswordProtected priceUponRequest salesPrice reducedPrice leasePrice currency media {smallUrl mediumUrl largeUrl xLargeUrl xxLargeUrl height width altTagText}}}}'; 2118 return superagent.post(window.luxuryPresence.defaults.routerUrl + '/graphql').send({ 2119 query: gqlQuery, 2120 variables: window.luxuryPresence.routerApi.transformVariables('properties', payload) 2121 }).then(function (res) { 2122 var page = (res.body.data || {}).properties; 2123 return page && page.items || []; 2124 }, function (err) { 2125 return []; 2126 }); 2127 } 2128 function doSearch(term, leaseProperty) { 2129 isLoading = true; 2130 updateSearchDisplay(); 2131 Promise.all([searchMls ? mlsSearch(term, leaseProperty) : [], searchMls ? placesSearch(term) : [], searchProperties ? propertiesSearch(term, leaseProperty) : []]).then(function (res) { 2132 if (term !== keyword) return; 2133 setResults(res[0], res[1], res[2], leaseProperty); 2134 }); 2135 } 2136 function makeResultsBlockHtml(title, elementClass, links) { 2137 if (!links || !links.length) return '';else return '<div class="header-search-results__block"><div class="header-search-results__title">' + title + '</div><div class="' + elementClass + '">' + links.join('') + '</div></div>'; 2138 } 2139 function setResults(mlsResults, placesResults, propertiesResults, leaseProperty) { 2140 searchResultsSelector.querySelector('.header-search-results__link--selected')?.classList.remove('header-search-results__link--selected'); 2141 isLoading = false;
2142 updateSearchDisplay(); 2143 if (!mlsResults) { 2144 resultsContainerSelector.innerHTML = ''; 2145 updateSearchDisplay(); 2146 return; 2147 } 2148 if (!mlsResults.length && !placesResults.length && !propertiesResults.length) { 2149 updateSearchDisplay(); 2150 return; 2151 } 2152 var propertiesHtml = makeResultsBlockHtml('Featured Properties', 'header-properties', propertiesResults.map(function (result) { 2153 return itemTemplate(result); 2154 })); 2155 var placesHtml = makeResultsBlockHtml('Locations', '', placesResults.map(function (result) { 2156 return `<a class="header-search-results__link lp-icon" href="${result.placeUrl}${leaseProperty ? '&lease_property=true' : ''}">${result.description}</a>`; 2157 })); 2158 var mlsHtml = makeResultsBlockHtml('Address', '', mlsResults.map(function (result) { 2159 return `<a href="/home-search/listings/${result.id}" class="header-search-results__link lp-icon">${result.display_address}</a>`; 2160 })); 2161 resultsContainerSelector.innerHTML = propertiesHtml + placesHtml + mlsHtml; 2162 updateSearchDisplay(); 2163 } 2164 var neighborhoods = null; 2165 function fetchNeighborhoods() { 2166 var url = window.luxuryPresence.defaults.routerUrl; 2167 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {neighborhoods (companyId: $companyId, offset: $offset, limit: $limit) {items {id, name, mlsLink, googlePlaceData}}}'; 2168 var payload = {}; 2169 payload.offset = 0; 2170 payload.limit = 100; 2171 payload.companyId = window.luxuryPresence.defaults.companyId; 2172 return superagent.post(url + '/graphql').withCredentials().send({ 2173 query: gqlQuery, 2174 variables: payload 2175 }).then(function (res) { 2176 var data = res.body.data && res.body.data.neighborhoods; 2177 neighborhoods = data && data.items || null; 2178 if (neighborhoods && !neighborhoods.length) { 2179 neighborhoods = null; 2180 } 2181 }); 2182 } 2183 function setPredefinedNeighborhoods() { 2184 return fetchNeighborhoods().then(function () { 2185 if (!neighborhoods) return; 2186 var placesHtml = makeResultsBlockHtml('Locations', neighborhoods.map(function (item) { 2187 return `<a class="header-search-results__link lp-icon" href="${item.mlsLink}${leasePropertyState ? '&lease_property=true' : ''}">${item.googlePlaceData && item.googlePlaceData.formatted_address || item.name}</a>`; 2188 })); 2189 predefinedSelector.innerHTML = placesHtml; 2190 updateSearchDisplay(); 2191 }); 2192 } 2193 if (searchMls) setPredefinedNeighborhoods(); 2194 closeIconSelector.style.opacity = '0'; 2195 closeIconSelector.style.pointerEvents = 'none'; 2196 searchInputSelector.setAttribute('inputmode', 'search'); 2197 searchInputSelector.addEventListener('input', function () { 2198 if (this.value === '') { 2199 closeIconSelector.style.opacity = '0'; 2200 closeIconSelector.style.pointerEvents = 'none'; 2201 searchIconSelector.style.opacity = '1'; 2202 searchIconSelector.style.pointerEvents = 'auto'; 2203 } else { 2204 closeIconSelector.style.opacity = '1'; 2205 closeIconSelector.style.pointerEvents = 'auto'; 2206 searchIconSelector.style.opacity = '0'; 2207 searchIconSelector.style.pointerEvents = 'none'; 2208 } 2209 window.clearTimeout(newSearchTimer); 2210 newSearchTimer = window.setTimeout(startSearch, 300); 2211 }); 2212 searchInputSelector.addEventListener('keydown', function (ev) { 2213 if (ev.which === 38) { 2214 ev.preventDefault(); 2215 moveSelection(true); 2216 return false; 2217 } 2218 if (ev.which === 40) { 2219 ev.preventDefault(); 2220 moveSelection(); 2221 return false; 2222 } 2223 if (ev.which === 13) { 2224 let $lnk = searchResultsSelector.querySelector('.header-search-results__link--selected'); 2225 if ($lnk) { 2226 $lnk.click(); 2227 searchActive = false; 2228 updateSearchDisplay(); 2229 } else { 2230 $searchBtn.click(); 2231 } 2232 } 2233 }); 2234 closeIconSelector.addEventListener('click', function () { 2235 searchInputSelector.value = ''; 2236 searchInputSelector.dispatchEvent(new Event('input')); 2237 searchActive = false;
2238 updateSearchDisplay(); 2239 }); 2240 searchResultsSelector.addEventListener('mouseenter', function (ev) { 2241 searchResultsSelector.querySelector('.header-search-results__link--selected')?.classList.remove('header-search-results__link--selected'); 2242 }); 2243 function outsideClickHandler(e) { 2244 if (searchWrapperSelector.contains(e.target)) return; 2245 searchActive = false; 2246 updateSearchDisplay(); 2247 } 2248 document.addEventListener('click', outsideClickHandler); 2249 }); 2250})('global-navbar'); 2251} catch(e) { 2252console.log(e); 2253} 2254 try { 2255(function init(sectionDomId, options) { 2256 var elementSelector = options.elementSelector || 'nav'; 2257 var element = document.querySelector(elementSelector); 2258 var sections = document.querySelectorAll('body > section'); 2259 var subNavContainers = element.querySelectorAll('.sub-nav'); 2260 var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor; 2261 var backgroundColorScroll = options.backgroundColorScroll || '#191919'; 2262 var fontColor = options.fontColor || '#fff'; 2263 var fontColorScroll = options.fontColorScroll || '#000'; 2264 var didScroll = false; 2265 var lastScrollTop = 0; 2266 var delta = 5; 2267 2268 // eslint-disable-next-line sonarjs/no-collapsible-if 2269 if (wow) { 2270 // Wowjs might not trigger for position fixed elements 2271 if (window.scrollY > 0) { 2272 element.querySelectorAll('.wow').forEach(el => wow.show(el)); 2273 } 2274 } 2275 function adjustNavPinState() { 2276 // Remove 'visible' class from all subNavContainers 2277 for (let i = 0; i < subNavContainers.length; i++) { 2278 subNavContainers[i].classList.remove('visible'); 2279 } 2280 if (window.scrollY > 0) { 2281 element.style.backgroundColor = backgroundColorScroll; 2282 element.style.color = fontColorScroll; 2283 element.classList.add('scroll'); 2284 } else { 2285 element.style.backgroundColor = initialBackgroundColor; 2286 element.style.color = fontColor; 2287 element.classList.remove('scroll'); 2288 } 2289 } 2290 adjustNavPinState(); 2291 function onScroll() { 2292 didScroll = true; 2293 } 2294 window.addEventListener('scroll', onScroll); 2295 2296 // eslint-disable-next-line 2297 var debounceInterval = setInterval(() => { 2298 if (didScroll) { 2299 // eslint-disable-next-line 2300 hasScrolled(); 2301 didScroll = false; 2302 } 2303 }, 250); 2304 function hasScrolled() { 2305 adjustNavPinState(); 2306 // eslint-disable-next-line 2307 var navbarHeight = element.offsetHeight; 2308 // eslint-disable-next-line 2309 var st = window.scrollY; 2310 2311 // Make sure they scroll more than delta 2312 if (Math.abs(lastScrollTop - st) <= delta) { 2313 return; 2314 } 2315 if (st > lastScrollTop && st > navbarHeight) { 2316 // Scroll Down 2317 element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`; 2318 document.documentElement.style.setProperty('--global-header-height', '0px'); 2319 2320 // Some sections "follow" the navbar with class sticky (i.e. Producer search) 2321 sections.forEach(section => { 2322 if (section.classList.contains('sticky')) { 2323 section.style.top = '0px'; 2324 } 2325 }); 2326 } else { 2327 // Scroll Up 2328 // eslint-disable-next-line 2329 if (st + window.innerHeight < document.documentElement.scrollHeight) { 2330 element.style.transform = `translateY(0) scaleY(1)`; 2331 document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`); 2332 sections.forEach(section => { 2333 if (section.classList.contains('sticky')) { 2334 section.style.top = `${navbarHeight}px`; 2335 } 2336 }); 2337 } 2338 } 2339 lastScrollTop = st; 2340 } 2341})('NAVBAR', JSON.parse("{\"fontColor\":\"#161515\",\"elementSelector\":\".header\",\"fontColorScroll\":\"#fff\",\"backgroundColorScroll\":\"rgba(26,26,26, .8)\",\"initialBackgroundColor\":\"#fff\"}")); 2342} catch(e) { 2343console.log(e); 2344} 2345 try { 2346(function init(sectionDomId) { 2347 if (sectionDomId === "main-section") sectionDomId = "global-sidemenu"; 2348 (function (stickyAnchorRoot) { 2349 if (!stickyAnchorRoot) return; 2350 function getInFlowTop(target) { 2351 var inlineValue = target.style.getPropertyValue('position'); 2352 var inlinePriority = target.style.getPropertyPriority('position'); 2353 target.style.setProperty('position', 'relative', 'important'); 2354 var top = target.getBoundingClientRect().top + window.pageYOffset; 2355 if (inlineValue) target.style.setProperty('position', inlineValue, inlinePriority);else target.style.removeProperty('position'); 2356 var scrollMarginTop = parseFloat(window.getComputedStyle(target).scrollMarginTop) || 0; 2357 return Math.max(0, top - scrollMarginTop); 2358 } 2359 stickyAnchorRoot.addEventListener('click', function (event) { 2360 if (event.defaultPrevented || event.button !== 0) return; 2361 if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return; 2362 if (document.body.hasAttribute('data-scroll-container')) return; 2363 var link = event.target.closest('a[href]'); 2364 if (!link || !stickyAnchorRoot.contains(link) || link.target === '_blank') return; 2365 var href = link.getAttribute('href'); 2366 if (!/^#[^#]/.test(href)) return; 2367 var targetId;
2368 try { 2369 targetId = decodeURIComponent(href.slice(1)); 2370 } catch (e) { 2371 return; 2372 } 2373 var target = document.getElementById(targetId); 2374 if (!target || window.getComputedStyle(target).position !== 'sticky') return; 2375 event.preventDefault(); 2376 if (window.location.hash !== href) window.history.pushState(null, '', href); 2377 window.requestAnimationFrame(function () { 2378 window.scrollTo({ 2379 top: getInFlowTop(target) 2380 }); 2381 }); 2382 }); 2383 })(document.getElementById(sectionDomId)); 2384 var sidemenu = document.getElementById(sectionDomId); 2385 var openers = sidemenu.querySelectorAll('.js-sub-nav-opener'); 2386 var items = sidemenu.querySelectorAll('.js-idemenu-navigation-item'); 2387 var watermark = document.querySelector('.js-sidemenu-watermark'); 2388 var onShow = function () { 2389 window.lpUI.requestScrollLock(sectionDomId); 2390 }; 2391 var onHide = function () { 2392 window.lpUI.releaseScrollLock(sectionDomId); 2393 }; 2394 sidemenu.addEventListener('lpui-show', onShow); 2395 sidemenu.addEventListener('lpui-hide', onHide); 2396 openers.forEach(function (opener) { 2397 opener.addEventListener('click', function (event) { 2398 event.preventDefault(); 2399 this.classList.toggle('sidemenu-navigation__link--active'); 2400 this.classList.toggle('sidemenu-navigation__link--sub-nav-active'); 2401 }); 2402 }); 2403 document.body.addEventListener('click', function (evt) { 2404 if (!evt.target.closest('.sidemenu') && !evt.target.closest('.js-sidemenu-opener')) { 2405 window.lpUI.sideMenuHide(); 2406 } 2407 }); 2408 const handleLinkClick = function (href) { 2409 if (href && href.match(/^#[^#].*$/)) { 2410 window.lpUI.sideMenuHide(); 2411 } 2412 }; 2413 const mainNavLinks = sidemenu.querySelectorAll('.sidemenu-navigation__link'); 2414 mainNavLinks.forEach(function (link) { 2415 link.addEventListener('click', function (event) { 2416 const href = this.getAttribute('href'); 2417 handleLinkClick(href); 2418 }); 2419 }); 2420 const subNavLinks = sidemenu.querySelectorAll('.sidemenu-navigation-sub-nav__link'); 2421 subNavLinks.forEach(function (link) { 2422 link.addEventListener('click', function (event) { 2423 const href = this.getAttribute('href'); 2424 handleLinkClick(href); 2425 }); 2426 }); 2427 if (watermark) { 2428 items.forEach(function (item, index) { 2429 item.setAttribute("data-id", index <= 9 ? "0" + (index + 1) : index + 1); 2430 }); 2431 items.forEach(function (item) { 2432 item.addEventListener('mouseenter', function () { 2433 watermark.setAttribute("data-id", item.getAttribute("data-id")); 2434 watermark.style.opacity = 1; 2435 }); 2436 item.addEventListener('mouseleave', function () { 2437 watermark.style.opacity = 0; 2438 }); 2439 }); 2440 } 2441})('global-sidemenu'); 2442} catch(e) { 2443console.log(e); 2444} 2445 2446 try { 2447(function init(sectionDomId) { 2448 const sectionDom = document.getElementById(sectionDomId); 2449 const backToTopBtn = sectionDom.querySelector('.js-back-to-top'); 2450 backToTopBtn?.addEventListener('click', () => { 2451 window.scrollTo({ 2452 top: 0, 2453 behavior: 'smooth' 2454 }); 2455 }); 2456})('global-footer'); 2457} catch(e) { 2458console.log(e); 2459} 2460 2461 try { 2462(function init(sectionDomId) { 2463 const customDropdownHTML = ` 2464 <div class="custom-select" role="presentation"> 2465 <button class="custom-select-toggle" type="button" aria-haspopup="true" aria-expanded="false" role="combobox"></button> 2466 <div class="custom-select-menu"><div class="custom-select-content"></div></div> 2467 </div>`; 2468 const hideOriginalSelect = originalSelect => { 2469 originalSelect.classList.remove(...originalSelect.classList); 2470 originalSelect.classList.add("sr-only"); 2471 }; 2472 const openCustomSelect = customSelectToggle => {
2473 let customSelectMenu = customSelectToggle.nextElementSibling; 2474 customSelectMenu.classList.add("open"); 2475 customSelectToggle.classList.add("open"); 2476 customSelectToggle.ariaExpanded = true; 2477 }; 2478 const closeCustomSelect = customSelectToggle => { 2479 let customSelectMenu = customSelectToggle.nextElementSibling; 2480 customSelectMenu.classList.remove("open"); 2481 customSelectToggle.classList.remove("open"); 2482 customSelectToggle.ariaExpanded = false; 2483 }; 2484 const inheritAttributes = (originalSelect, customSelectToggle, customSelectMenu) => { 2485 customSelectToggle.className = customSelectToggle.className.concat(' ', originalSelect.className); 2486 customSelectToggle.id = originalSelect.getAttribute("id") + "custom"; 2487 customSelectToggle.dataset.name = originalSelect.getAttribute("name"); 2488 customSelectMenu.setAttribute("aria-labelledby", customSelectToggle.id); 2489 }; 2490 const initiateQuerySelectors = customSelect => { 2491 let customSelectToggle = customSelect.querySelector('.custom-select-toggle'), 2492 customSelectMenu = customSelect.querySelector('.custom-select-menu'), 2493 customSelectContent = customSelect.querySelector('.custom-select-content'); 2494 return { 2495 customSelectToggle, 2496 customSelectMenu, 2497 customSelectContent 2498 }; 2499 }; 2500 const initiateToggleText = (originalSelect, customSelectToggle) => { 2501 const dataLabelOption = originalSelect.querySelector("[data-label]"); 2502 const isMultiple = originalSelect?.multiple; 2503 if (!isMultiple) { 2504 const toggleText = dataLabelOption && dataLabelOption.dataset.label || originalSelect.querySelector(":checked")?.textContent || originalSelect.querySelector("option")?.textContent; 2505 customSelectToggle.classList.add("is-placeholder"); 2506 customSelectToggle.innerHTML = toggleText; 2507 } else { 2508 const placeholderText = dataLabelOption && dataLabelOption.dataset.label || originalSelect.querySelector("option")?.textContent || "Select"; 2509 const selectedOptions = Array.from(originalSelect.querySelectorAll("option:checked")).filter(opt => opt.value !== ""); 2510 if (selectedOptions.length === 0) { 2511 customSelectToggle.innerHTML = placeholderText; 2512 customSelectToggle.classList.add("is-placeholder"); 2513 } else if (selectedOptions.length === 1) { 2514 customSelectToggle.innerHTML = selectedOptions[0].textContent; 2515 customSelectToggle.classList.remove("is-placeholder"); 2516 } else { 2517 customSelectToggle.innerHTML = `${selectedOptions[0].textContent} +${selectedOptions.length - 1}`; 2518 customSelectToggle.classList.remove("is-placeholder"); 2519 } 2520 } 2521 }; 2522 const convertOptionsToButtons = (originalSelect, customSelectContent) => { 2523 originalSelect.querySelectorAll('option').forEach(option => { 2524 const button = createButtonFromOption(option); 2525 customSelectContent.appendChild(button); 2526 }); 2527 }; 2528 const createButtonFromOption = option => { 2529 let button = document.createElement('button'); 2530 button.className = "custom-select-item"; 2531 button.setAttribute("role", "option"); 2532 button.setAttribute("type", "button"); 2533 button.textContent = option.textContent; 2534 button.setAttribute('value', option.value); 2535 if (option.disabled) { 2536 button.setAttribute("disabled", "true"); 2537 } 2538 if (option.selected && option.value !== "") { 2539 button.classList.add("is-selected"); 2540 button.setAttribute("aria-selected", "true"); 2541 } 2542 return button; 2543 }; 2544 const initiateEventListeners = (originalSelect, customSelectToggle, customSelectMenu) => { 2545 const isMultiple = originalSelect?.multiple; 2546 originalSelect.addEventListener("focus", function () { 2547 openCustomSelect(customSelectToggle); 2548 customSelectToggle.focus(); 2549 }); 2550 customSelectToggle.addEventListener("click", function () { 2551 if (customSelectToggle.getAttribute("aria-expanded") === "true") { 2552 closeCustomSelect(customSelectToggle); 2553 } else { 2554 openCustomSelect(customSelectToggle); 2555 } 2556 }); 2557 customSelectMenu.addEventListener("click", function (event) { 2558 if (event.target.classList.contains('custom-select-item')) { 2559 const clickedValue = event.target.value; 2560 const clickedOption = originalSelect.querySelector(`option[value="${clickedValue}"]`); 2561 const placeholderOption = originalSelect.querySelector("[data-label]"); 2562 const placeholderText = placeholderOption?.dataset.label || originalSelect.querySelector("option")?.textContent || "Select"; 2563 if (!isMultiple) { 2564 let opts = customSelectMenu.querySelectorAll(".is-selected"); 2565 [].forEach.call(opts, function (el) { 2566 el.classList.remove("is-selected"); 2567 }); 2568 event.target.classList.add("is-selected"); 2569 clickedOption.selected = true; 2570 customSelectToggle.innerHTML = clickedOption.textContent; 2571 if (clickedValue === "" || event.target.classList.contains("is-placeholder")) { 2572 customSelectToggle.classList.add("is-placeholder"); 2573 } else { 2574 customSelectToggle.classList.remove("is-placeholder"); 2575 } 2576 let changeEvent = new Event('change', { 2577 bubbles: true 2578 }); 2579 originalSelect.dispatchEvent(changeEvent); 2580 closeCustomSelect(customSelectToggle); 2581 } else { 2582 if (clickedValue === "") { 2583 customSelectMenu.querySelectorAll(".is-selected").forEach(el => { 2584 el.classList.remove("is-selected"); 2585 el.setAttribute("aria-selected", "false"); 2586 }); 2587 originalSelect.querySelectorAll("option").forEach(opt => opt.selected = false); 2588 customSelectToggle.innerHTML = placeholderText; 2589 customSelectToggle.classList.add("is-placeholder"); 2590 } else { 2591 const isCurrentlySelected = event.target.classList.contains("is-selected"); 2592 event.target.classList.toggle("is-selected"); 2593 event.target.setAttribute("aria-selected", (!isCurrentlySelected).toString()); 2594 clickedOption.selected = !isCurrentlySelected; 2595 const allItem = customSelectMenu.querySelector('.custom-select-item[value=""]'); 2596 if (allItem) { 2597 allItem.classList.remove("is-selected"); 2598 allItem.setAttribute("aria-selected", "false"); 2599 } 2600 const allOption = originalSelect.querySelector('option[value=""]'); 2601 if (allOption) allOption.selected = false;
2602 const selectedItems = customSelectMenu.querySelectorAll(".custom-select-item.is-selected"); 2603 if (selectedItems.length === 0) { 2604 customSelectToggle.innerHTML = placeholderText; 2605 customSelectToggle.classList.add("is-placeholder"); 2606 } else if (selectedItems.length === 1) { 2607 customSelectToggle.innerHTML = selectedItems[0].textContent; 2608 customSelectToggle.classList.remove("is-placeholder"); 2609 } else { 2610 customSelectToggle.innerHTML = `${selectedItems[0].textContent} +${selectedItems.length - 1}`; 2611 customSelectToggle.classList.remove("is-placeholder"); 2612 } 2613 } 2614 let changeEvent = new Event('change', { 2615 bubbles: true 2616 }); 2617 originalSelect.dispatchEvent(changeEvent); 2618 } 2619 } 2620 }); 2621 document.addEventListener("click", function (event) { 2622 if (!customSelectMenu.contains(event.target) && !customSelectToggle.contains(event.target)) { 2623 closeCustomSelect(customSelectToggle); 2624 } 2625 }); 2626 }; 2627 const createCustomSelect = originalSelect => { 2628 const customSelect = document.createElement('div'); 2629 customSelect.innerHTML = customDropdownHTML; 2630 const { 2631 customSelectToggle, 2632 customSelectMenu, 2633 customSelectContent 2634 } = initiateQuerySelectors(customSelect); 2635 inheritAttributes(originalSelect, customSelectToggle, customSelectMenu); 2636 hideOriginalSelect(originalSelect); 2637 initiateToggleText(originalSelect, customSelectToggle); 2638 convertOptionsToButtons(originalSelect, customSelectContent); 2639 initiateEventListeners(originalSelect, customSelectToggle, customSelectMenu); 2640 return customSelect; 2641 }; 2642 const setCustomSelectValue = (originalSelect, value) => {
2643 let customSelect = originalSelect.nextElementSibling; 2644 let customSelectToggle = customSelect.querySelector(".custom-select-toggle"); 2645 let customSelectContent = customSelect.querySelector(".custom-select-content"); 2646 if (!customSelectContent) return; 2647 let selectedOption = value ? Array.from(customSelectContent.children).find(function (b) { 2648 return b.value === value; 2649 }) : customSelectContent.firstChild; 2650 if (!selectedOption) { 2651 return; 2652 } 2653 if (selectedOption.classList.contains("is-disabled")) return; 2654 let elementNumber = Array.from(selectedOption.parentNode.children).indexOf(selectedOption); 2655 let linkedOption = originalSelect.querySelectorAll("option")[elementNumber]; 2656 linkedOption.selected = true; 2657 selectedOption.classList.add("is-selected"); 2658 selectedOption.parentNode.querySelectorAll(".custom-select-item").forEach(el => { 2659 if (el !== selectedOption) { 2660 el.classList.remove("is-selected"); 2661 } 2662 }); 2663 closeCustomSelect(customSelectToggle); 2664 customSelectToggle.innerHTML = linkedOption.innerHTML; 2665 if (linkedOption.value) { 2666 customSelectToggle.classList.remove("is-placeholder"); 2667 if (linkedOption.value !== "") { 2668 customSelect.classList.add("has-selection"); 2669 } else { 2670 customSelect.classList.remove("has-selection"); 2671 } 2672 } else { 2673 customSelect.classList.remove("has-selection"); 2674 customSelectToggle.classList.add("is-placeholder"); 2675 } 2676 }; 2677 const customSelect = originalSelect => { 2678 const customSelect = createCustomSelect(originalSelect); 2679 originalSelect.insertAdjacentElement('afterend', customSelect); 2680 return customSelect; 2681 }; 2682 const resetCustomSelect = originalSelect => { 2683 const customSelectEl = originalSelect.nextElementSibling; 2684 const customSelectToggle = customSelectEl?.querySelector('.custom-select-toggle'); 2685 const customSelectContent = customSelectEl?.querySelector('.custom-select-content'); 2686 if (!customSelectToggle || !customSelectContent) return; 2687 const placeholderOption = originalSelect.querySelector("[data-label]"); 2688 const placeholderText = placeholderOption?.dataset.label || originalSelect.querySelector("option")?.textContent || "Select"; 2689 customSelectContent.querySelectorAll('.custom-select-item').forEach(item => { 2690 item.classList.remove('is-selected'); 2691 item.setAttribute('aria-selected', 'false'); 2692 }); 2693 originalSelect.querySelectorAll('option').forEach(opt => opt.selected = false); 2694 customSelectToggle.innerHTML = placeholderText; 2695 customSelectToggle.classList.add('is-placeholder'); 2696 const customSelectWrapper = customSelectEl.querySelector('.custom-select'); 2697 if (customSelectWrapper) { 2698 customSelectWrapper.classList.remove('has-selection'); 2699 } 2700 }; 2701 const section = document.getElementById(sectionDomId); 2702 const closeBtn = section.querySelector(".js-close-btn"); 2703 const connectBtn = section.querySelector(".js-btn-connect"); 2704 const popUp = section.querySelector(".js-pop-up"); 2705 const btnHolder = section.querySelector(".js-btn-holder"); 2706 const form = section.querySelector(".js-form"); 2707 const successMessage = section.querySelector(".js-success"); 2708 const redirectLink = section.querySelector(".js-redirect-link"); 2709 function setHttp(link) { 2710 if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) { 2711 link = "https://" + link; 2712 } 2713 return link; 2714 } 2715 function redirectPage(link) { 2716 if (link) { 2717 window.location.href = setHttp(link.getAttribute("href")); 2718 } 2719 } 2720 const selects = document.querySelectorAll(".floating-contact-button select.js-select"); 2721 selects.forEach(function (el) { 2722 customSelect(el); 2723 }); 2724 const inputName = form.querySelector('.js-input-name'); 2725 inputName.addEventListener('keyup', function () { 2726 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 2727 this.setCustomValidity("Please input your first name and last name."); 2728 } else { 2729 this.setCustomValidity(""); 2730 } 2731 }); 2732 function showSuccessMessage() { 2733 successMessage.style.display = "block"; 2734 form.style.display = "none"; 2735 } 2736 form.addEventListener("formsubmitted", showSuccessMessage); 2737 form.addEventListener("reset", function () { 2738 showSuccessMessage(); 2739 redirectPage(redirectLink); 2740 }); 2741 window.addEventListener("scroll", function () { 2742 if (window.scrollY >= 150 && window.getComputedStyle(popUp).display !== "block") btnHolder.classList.add("floating-contact-button__btn-holder--visible");else btnHolder.classList.remove("floating-contact-button__btn-holder--visible"); 2743 }); 2744 closeBtn.addEventListener("click", function () { 2745 popUp.style.display = "none"; 2746 btnHolder.classList.add("floating-contact-button__btn-holder--visible"); 2747 }); 2748 connectBtn.addEventListener("click", function () { 2749 popUp.style.display = "block"; 2750 btnHolder.classList.remove("floating-contact-button__btn-holder--visible"); 2751 }); 2752})('global-mobile-contact'); 2753} catch(e) { 2754console.log(e); 2755} 2756 2757 try { 2758(function init(sectionDomId) { 2759 const section = document.getElementById(sectionDomId); 2760 const emailInput = section.querySelector('.js-email-input'); 2761 const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/; 2762 emailInput.addEventListener('input', function () { 2763 if (emailRegex.test(this.value)) { 2764 this.setCustomValidity(''); 2765 } else { 2766 this.setCustomValidity('Please enter a valid email address.'); 2767 } 2768 this.reportValidity(); 2769 }); 2770 const inputName = section.querySelector('.js-input-name'); 2771 inputName.addEventListener('keyup', function () { 2772 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 2773 this.setCustomValidity("Please input your first name and last name."); 2774 } else { 2775 this.setCustomValidity(""); 2776 } 2777 }); 2778 const addRedirectToForm = () => { 2779 const redirectLink = document.getElementById(`${sectionDomId}`).querySelector('.js-redirect-link'); 2780 const form = document.getElementById(`${sectionDomId}`).querySelector('.js-form'); 2781 function redirectPage(link) { 2782 if (link) { 2783 const rawHref = link.getAttribute('href'); 2784 link.setAttribute('href', setHttp(rawHref)); 2785 link.click(); 2786 } 2787 } 2788 function setHttp(link) { 2789 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2790 link = 'http://' + link; 2791 } 2792 return link; 2793 } 2794 form.addEventListener("reset", function () { 2795 redirectPage(redirectLink); 2796 }); 2797 }; 2798 addRedirectToForm(); 2799})('section-8fc9291e-f19e-4157-8d83-15e819748bc8', JSON.parse("{\"resource\":\"NONE\",\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"be9e662d-d28f-4f3b-9f8d-cb20d3c0b372\",\"usePageResource\":false,\"sectionIndex\":1}")); 2800} catch(e) { 2801console.log(e); 2802} 2803 try { 2804(function init(sectionDomId, options) { 2805 let section = null; 2806 switch (sectionDomId) { 2807 case 'NAVBAR': 2808 section = document.querySelector('body > nav, #global-navbar'); 2809 break; 2810 case 'FOOTER': 2811 section = document.querySelector('body > footer, #global-footer'); 2812 break; 2813 case 'SIDEMENU': 2814 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 2815 break; 2816 case 'CONTACT':
2817 section = document.querySelector('#modal-global-contact-us'); 2818 break; 2819 case 'MOBILE_CONTACT': 2820 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 2821 break; 2822 case 'SUBSCRIBE': 2823 // Subscribe Not Implemented 2824 section = null; 2825 break; 2826 case 'ACCOUNT': 2827 // Account Not Implemented 2828 section = null; 2829 break; 2830 default: 2831 section = document.querySelector('#' + sectionDomId); 2832 } 2833 if (!section) { 2834 return; 2835 } 2836 var url = window.luxuryPresence.defaults.routerUrl; 2837 var companyId = window.luxuryPresence.defaults.companyId; 2838 var limit = options.limit || 8; 2839 if (typeof limit === 'string') { 2840 limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected 2841 } 2842 var templateSelector = options.templateSelector || '.jsIGTemplate'; 2843 var containerSelector = options.containerSelector || '.jsIGContainer'; 2844 var hasDataClass = options.hasDataClass || 'has-data'; 2845 var hideActivateMessage = options.hasDataClass || false; 2846 var payload = { 2847 companyId: companyId, 2848 limit: limit 2849 }; 2850 if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) { 2851 payload.resourceId = options.resourceId; 2852 // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase 2853 payload.resource = String(options.resource || 'agent').toUpperCase(); 2854 payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true; 2855 } 2856 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'; 2857 var templateHTML = section.querySelector(templateSelector)?.innerHTML || ''; 2858 var template = Handlebars.compile(templateHTML); 2859 var container = section.querySelector(containerSelector); 2860 if (options.variables) { 2861 Object.keys(options.variables).forEach(function (key) { 2862 if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) { 2863 payload[key] = options.variables[key]; 2864 } 2865 }); 2866 } 2867 function getData() { 2868 var feed = { 2869 error: true 2870 }; 2871 if (payload.companyId == null || payload.companyId === '') { 2872 // instagramContentFeed requires companyId (ID!) â nothing to fetch without it. 2873 // Checked after the options.variables merge, which may override the default. 2874 // Deferred so element listeners (attached after this template runs) still receive it. 2875 setTimeout(function () { 2876 section.dispatchEvent(new CustomEvent('ig-data', { 2877 detail: feed 2878 })); 2879 }, 0); 2880 return; 2881 } 2882 superagent.post(url + '/graphql').send({ 2883 query: query, 2884 variables: payload 2885 }).then(res => { 2886 try { 2887 if (!res.body.errors) { 2888 feed = res.body.data.instagramContentFeed; 2889 if (!feed.active) { 2890 if (!hideActivateMessage && sectionDomId === 'section-temp' && container) { 2891 if (payload.resourceId) { 2892 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>'; 2893 } else { 2894 container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>'; 2895 } 2896 } 2897 } else { 2898 if (feed.items.length) { 2899 if (hasDataClass) { 2900 section.classList.add(hasDataClass); 2901 } 2902 const feedName = feed.username; 2903 section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl)); 2904 section.querySelectorAll('.jsIGName').forEach(name => { 2905 name.textContent = '@' + feedName; 2906 name.setAttribute('title', '@' + feedName); 2907 }); 2908 if (container && template) { 2909 container.innerHTML = template(feed); 2910 } 2911 } 2912 } 2913 } 2914 } catch (e) {} 2915 section.dispatchEvent(new CustomEvent('ig-data', { 2916 detail: feed 2917 })); 2918 }).catch(e => { 2919 console.log('err', e); 2920 section.dispatchEvent(new CustomEvent('ig-data', { 2921 detail: feed 2922 })); 2923 }); 2924 } 2925 getData(); 2926})('section-99576cd8-bea1-4c71-8729-1626de58e72f', JSON.parse("{\"limit\":11,\"resource\":\"agent\",\"resourceId\":\"{{id}}\",\"fallbackToNoResource\":\"{{{fallbackToNoResource}}}\",\"companyId\":\"be9e662d-d28f-4f3b-9f8d-cb20d3c0b372\",\"usePageResource\":false,\"sectionIndex\":2,\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}")); 2927} catch(e) { 2928console.log(e); 2929} 2930 try { 2931(function init(sectionDomId) { 2932 const section = document.getElementById(sectionDomId); 2933 const slider = section.querySelector(".js-slider"); 2934 section.addEventListener("ig-data", function () { 2935 var splide = new Splide(slider, { 2936 rewind: true,
2937 arrows: false, 2938 type: 'loop', 2939 padding: '20%', 2940 gap: '16px', 2941 pagination: false, 2942 clones: 1, 2943 perPage: 1, 2944 perMove: 1, 2945 destroy: true, 2946 breakpoints: { 2947 768: { 2948 destroy: false 2949 } 2950 } 2951 }); 2952 splide.mount(); 2953 }); 2954})('section-99576cd8-bea1-4c71-8729-1626de58e72f', JSON.parse("{\"resource\":\"agent\",\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"be9e662d-d28f-4f3b-9f8d-cb20d3c0b372\",\"usePageResource\":false,\"sectionIndex\":2}")); 2955} catch(e) { 2956console.log(e); 2957} 2958 2959 var { body } = document; 2960 var globalNav = body.querySelector(':scope > nav'); 2961 var globalSideMenu = body.querySelector(':scope > div.sidemenu'); 2962 2963 document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => { 2964 modalCloseBtn.addEventListener('click', function() { 2965 window.lpUI.hideClosestModal(modalCloseBtn); 2966 }); 2967 }); 2968 2969 window.addEventListener('click', function() { 2970 document.querySelectorAll('.share-popup').forEach(sharedPopup => { 2971 sharedPopup.style.display = 'none' ; 2972 }); 2973 }); 2974 2975 /* Misc Partials / Addons */ 2976 function initWOW() { 2977 if (wow) { 2978 wow.init(); 2979 wow.scrollHandler(); 2980 setTimeout(function () { 2981 const wowHideStyle = document.getElementById('wow-hide-elements'); 2982 if(wowHideStyle) { 2983 wowHideStyle.disabled = true; 2984 } 2985 }, 1); 2986 } 2987 } 2988 2989 const wowHideElements = document.getElementById('wow-hide-elements'); 2990 if (wowHideElements) { 2991 wowHideElements.disabled = false; 2992 } 2993 2994 initWOW(); 2995 2996 /* Generic Navbar Handling */ 2997 globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => { 2998 hamburgerComponent.addEventListener('click', function() { 2999 window.lpUI.sideMenuToggle(); 3000 }); 3001 }); 3002 globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => { 3003 toggleEl.addEventListener('click', function() { 3004 window.lpUI.sideMenuToggle(); 3005 }); 3006 }); 3007 3008 document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => { 3009 linkEl.addEventListener('click', function(e) { 3010 e.preventDefault(); 3011 e.stopPropagation(); 3012 var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav'); 3013 if (subNav && subNav.classList.contains('visible')){ 3014 subNav.classList.remove('visible'); 3015 } else { 3016 globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => { 3017 globalSubNav.classList.remove('visible'); 3018 }); 3019 globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => { 3020 sideMenuSubNav.classList.remove('visible'); 3021 }); 3022 subNav?.classList.add('visible'); 3023 } 3024 }); 3025 }); 3026 window.addEventListener('click', function() { 3027 document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => { 3028 subNavEl.classList.remove('visible'); 3029 }); 3030 }); 3031 3032 } 3033 3034 document.addEventListener('DOMContentLoaded', lpGlobalInit); 3035 3036 </script>
3036 3037 3038
3038<script type="module"> 3039 function selectorExists(selector) { 3040 return document.querySelector(selector) !== null; 3041 } 3042 3043 // Function to initialize the third-party library 3044 function initParoller(selector = '.my-paroller') { 3045 var $parollerElements = $(selector); 3046 if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') { 3047 $parollerElements.paroller(); 3048 } 3049 } 3050 3051 const parollerSelector = '.my-paroller'; 3052 3053 if (selectorExists(parollerSelector)) { 3054 window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() { 3055 initParoller(parollerSelector); 3056 window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true; 3057 }); 3058 } 3059 </script>
3059 3060 3061 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3061-3062
3061 3062 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3062GTM-M589QHP
vendor: 107 bytes, lines 3062-3064
3062" 3063 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3064
3064<!-- End Google Tag Manager --> 3065 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3065-3066
3065 3066 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3066GTM-T9SFQGHZ
vendor: 107 bytes, lines 3066-3068
3066" 3067 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3068
3068<!-- End Google Tag Manager --> 3069
3069<script> 3070// custom stats carrousell 3071 (function() { 3072 function initStatsSlider() { 3073 const track = document.getElementById('stats-track'); 3074 if (!track) return; 3075 3076 track.innerHTML += track.innerHTML; 3077 3078 track.style.animation = 'none'; 3079 track.offsetHeight; 3080 track.style.animation = 'scrollMarquee 100s linear infinite'; 3081 } 3082 3083 if (document.readyState === 'complete') { 3084 initStatsSlider(); 3085 } else { 3086 window.addEventListener('load', initStatsSlider); 3087 } 3088})(); 3089</script>
3089 3090
3091<script> 3092// team slider names 3093const styleAgentsScalable = () => { 3094 const slides = document.querySelectorAll('.auto-scroll-agents-slider__slider-slide'); 3095 if (!slides.length) return; 3096 3097 const uniqueAgentNames = []; 3098 slides.forEach(slide => { 3099 const name = slide.querySelector('.auto-scroll-agents-slider__name-vertical')?.textContent.trim(); 3100 if (name && !uniqueAgentNames.includes(name)) { 3101 uniqueAgentNames.push(name); 3102 } 3103 }); 3104 3105 slides.forEach(slide => { 3106 const name = slide.querySelector('.auto-scroll-agents-slider__name-vertical')?.textContent.trim(); 3107 const originalIndex = uniqueAgentNames.indexOf(name); 3108 3109 if (originalIndex !== -1) { 3110 const patternPos = (originalIndex % 6) + 1; 3111 3112 if ([1, 2, 4].includes(patternPos)) { 3113 slide.setAttribute('data-style', 'caps'); 3114 } else { 3115 slide.setAttribute('data-style', 'cursive'); 3116 } 3117 } 3118 }); 3119}; 3120 3121styleAgentsScalable(); 3122</script>
3122 3123
3124<script> 3125// press slider 3126(function() { 3127 const updatePressLayout = (items, currentPage, itemsPerPage) => { 3128 const start = currentPage * itemsPerPage; 3129 const end = start + itemsPerPage; 3130 3131 items.forEach((item, index) => { 3132 const isVisible = index >= start && index < end; 3133 3134 if (isVisible) { 3135 item.style.setProperty('display', 'flex', 'important'); 3136 if (index === start) { 3137 item.classList.add('is-featured'); 3138 } else { 3139 item.classList.remove('is-featured'); 3140 } 3141 } else { 3142 item.style.setProperty('display', 'none', 'important'); 3143 item.classList.remove('is-featured'); 3144 } 3145 }); 3146 }; 3147 3148 const init = () => { 3149 const container = document.querySelector('.press-list__collection'); 3150 const items = document.querySelectorAll('.press-list-item'); 3151 3152 if (!container || items.length === 0 || document.querySelector('.pagination-controls')) return; 3153 3154 let currentPage = 0; 3155 const itemsPerPage = 4; 3156 const totalPages = Math.ceil(items.length / itemsPerPage); 3157 3158 const controls = document.createElement('div'); 3159 controls.className = 'pagination-controls'; 3160 controls.innerHTML = ` 3161 <div style="display:flex; justify-content:space-between; align-items:center; padding:20px 0; margin-top:30px;"> 3162 <div class="nav-arrows" style="font-size:24px; cursor:pointer; user-select:none;"> 3163 <span id="prevPress" style="margin-right:20px;">â</span> 3164 <span id="nextPress">â</span> 3165 </div> 3166 <a class="lp-btn button-style-1" href="../press">Learn More</a> 3167 </div> 3168 `; 3169 container.after(controls); 3170 3171 document.getElementById('nextPress').addEventListener('click', () => { 3172 if (currentPage < totalPages - 1) { 3173 currentPage++; 3174 updatePressLayout(items, currentPage, itemsPerPage); 3175 container.scrollIntoView({ behavior: 'smooth', block: 'start' }); 3176 } 3177 }); 3178 3179 document.getElementById('prevPress').addEventListener('click', () => { 3180 if (currentPage > 0) { 3181 currentPage--; 3182 updatePressLayout(items, currentPage, itemsPerPage); 3183 container.scrollIntoView({ behavior: 'smooth', block: 'start' }); 3184 } 3185 }); 3186 3187 updatePressLayout(items, currentPage, itemsPerPage); 3188 }; 3189 3190 setTimeout(init, 2000); 3191})(); 3192</script>
3192 3193
3194<script> 3195// gsm interactive hover 3196document.querySelectorAll('.item-container').forEach(item => { 3197 const container = document.querySelector('.custom-interactive-gsm'); 3198 3199 item.addEventListener('mouseenter', () => { 3200 container.setAttribute('data-active', item.dataset.target); 3201 }); 3202 3203 item.addEventListener('mouseleave', () => { 3204 container.removeAttribute('data-active'); 3205 }); 3206}); 3207</script>
3207 3208
3209<script> 3210// team grid 3211 (function() { 3212 const transformAgents = () => { 3213 const agentItems = document.querySelectorAll('.agents-list__item:not(.is-processed)'); 3214 3215 if (agentItems.length === 0) return; 3216 3217 agentItems.forEach(item => { 3218 const firstNameElem = item.querySelector('.agents-list__first-name'); 3219 const lastNameElem = item.querySelector('.agents-list__last-name'); 3220 3221 if (firstNameElem && lastNameElem) { 3222 const fullName = `${firstNameElem.innerText.trim()} ${lastNameElem.innerText.trim()}`; 3223 3224 const normalDiv = document.createElement('div'); 3225 normalDiv.className = 'normal'; 3226 normalDiv.innerHTML = `<p class="agents-list__full-name">${fullName}</p>`; 3227 3228 const signatureDiv = document.createElement('div'); 3229 signatureDiv.className = 'signature'; 3230 signatureDiv.innerHTML = `<p class="agents-list__full-name">${fullName}</p>`; 3231 3232 firstNameElem.parentNode.insertBefore(normalDiv, firstNameElem); 3233 firstNameElem.parentNode.insertBefore(signatureDiv, firstNameElem); 3234 3235 firstNameElem.remove(); 3236 lastNameElem.remove(); 3237 3238 item.classList.add('is-processed'); 3239 } 3240 }); 3241 }; 3242 3243 const agentInterval = setInterval(() => { 3244 transformAgents(); 3245 }, 500); 3246 3247 transformAgents(); 3248})(); 3249</script>
3249 3250
3251<script> 3252// markets support pages nav sticky 3253const customNav = document.querySelector('.custom-container-nav'); 3254 3255const stickySection = customNav ? customNav.closest('.solid-section') : null; 3256const navItems = document.querySelectorAll('.nav-items'); 3257 3258if (stickySection && customNav) { 3259 let stickyOrigin = stickySection.offsetTop; 3260 let lastScrollTop = 0; 3261 3262 navItems.forEach(item => { 3263 item.addEventListener('click', function() { 3264 navItems.forEach(i => i.style.opacity = '1'); 3265 this.style.opacity = '0.4'; 3266 }); 3267 }); 3268 3269 const getMainNavHeight = () => { 3270 return window.innerWidth >= 769 ? 82 : 92; 3271 }; 3272 3273 const handleStickyNav = () => { 3274 const width = window.innerWidth; 3275 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 3276 3277 if (width <= 560) { 3278 stickySection.style.position = 'static'; 3279 stickySection.classList.remove('custom-scroll'); 3280 return; 3281 } 3282 3283 const mainNavHeight = getMainNavHeight(); 3284 3285 if (scrollTop >= stickyOrigin) { 3286 stickySection.classList.add('custom-scroll'); 3287 3288 stickySection.style.position = 'fixed'; 3289 stickySection.style.width = '100%'; 3290 stickySection.style.zIndex = '990'; 3291 stickySection.style.left = '0'; 3292 3293 if (scrollTop < lastScrollTop) { 3294 stickySection.style.top = `${mainNavHeight}px`; 3295 } else { 3296 stickySection.style.top = '0px'; 3297 } 3298 } else { 3299 stickySection.classList.remove('custom-scroll'); 3300 stickySection.style.position = 'static'; 3301 stickySection.style.top = 'auto'; 3302 } 3303 3304 lastScrollTop = scrollTop <= 0 ? 0 : scrollTop; 3305 }; 3306 3307 window.addEventListener('scroll', handleStickyNav, { passive: true }); 3308 3309 window.addEventListener('resize', () => { 3310 if (stickySection.style.position !== 'fixed') { 3311 stickyOrigin = stickySection.offsetTop; 3312 } 3313 handleStickyNav(); 3314 }); 3315 3316 handleStickyNav(); 3317} 3318</script>
3318 3319
3320<script> 3321// blogs sticky nav 3322window.lastScroll = window.scrollY; 3323 3324document.addEventListener('scroll', () => { 3325 const nav = document.querySelector('.blog-posts-list__search-container'); 3326 const wrapper = document.querySelector('.blog-posts-list'); 3327 const width = window.innerWidth; 3328 const currentScroll = window.scrollY; 3329 3330 if (width < 560) { 3331 nav.classList.remove('is-sticky-fixed'); 3332 nav.style.top = 'auto'; 3333 window.lastScroll = currentScroll; 3334 return; 3335 } 3336 3337 const parentRect = wrapper.getBoundingClientRect(); 3338 const isPastTop = parentRect.top <= 0; 3339 3340 if (isPastTop) { 3341 nav.classList.add('is-sticky-fixed'); 3342 const scrollUp = currentScroll < window.lastScroll; 3343 3344 if (scrollUp) { 3345 nav.style.top = (width >= 769) ? '92px' : '82px'; 3346 } else { 3347 nav.style.top = '0px'; 3348 } 3349 } else { 3350 nav.classList.remove('is-sticky-fixed'); 3351 nav.style.top = 'auto'; 3352 } 3353 3354 window.lastScroll = currentScroll; 3355}, { passive: true }); 3356</script>
3356 3357
3358<script> 3359// adding arrows to blog nav 3360(function() { 3361 const injectArrows = () => { 3362 const container = document.querySelector('.blog-posts-list__search-container'); 3363 3364 if (container && !document.querySelector('.nav-arrow-custom')) { 3365 3366 const wrapper = document.createElement('div'); 3367 wrapper.className = 'search-container-wrapper'; 3368 container.parentNode.insertBefore(wrapper, container); 3369 wrapper.appendChild(container); 3370 3371 const btnLeft = document.createElement('button'); 3372 const btnRight = document.createElement('button'); 3373 3374 btnLeft.className = 'nav-arrow-custom arrow-left-custom'; 3375 btnRight.className = 'nav-arrow-custom arrow-right-custom'; 3376 3377 btnLeft.innerHTML = '❮'; 3378 btnRight.innerHTML = '❯'; 3379 3380 wrapper.appendChild(btnLeft); 3381 wrapper.appendChild(btnRight); 3382 3383 btnLeft.onclick = () => container.scrollBy({ left: -250, behavior: 'smooth' }); 3384 btnRight.onclick = () => container.scrollBy({ left: 250, behavior: 'smooth' }); 3385 3386 console.log("Flechas inyectadas con éxito"); 3387 } 3388 }; 3389 3390 let attempts = 0; 3391 const interval = setInterval(() => { 3392 injectArrows(); 3393 attempts++; 3394 if (attempts > 10) clearInterval(interval); 3395 }, 1000); 3396})(); 3397</script>
3397 3398
3399<script> 3400// duplicate devs link for easy click 3401const processDevelopmentItem = (originalLink) => { 3402 const parentItem = originalLink.closest('.developments-list-item'); 3403 3404 if (!parentItem || parentItem.querySelector(':scope > .custom-duplicated-link')) { 3405 return; 3406 } 3407 3408 const newLink = document.createElement('a'); 3409 newLink.className = 'custom-duplicated-link'; 3410 newLink.href = originalLink.getAttribute('href'); 3411 newLink.textContent = '.'; 3412 newLink.setAttribute('aria-hidden', 'true'); 3413 3414 parentItem.prepend(newLink); 3415}; 3416 3417const initDevelopmentsObserver = () => { 3418 const targetNode = document.querySelector('.developments-list'); 3419 3420 if (!targetNode) return; 3421 3422 const observer = new MutationObserver((mutationsList) => { 3423 for (const mutation of mutationsList) { 3424 if (mutation.type === 'childList') { 3425 mutation.addedNodes.forEach(node => { 3426 if (node.nodeType === 1) { 3427 const links = node.querySelectorAll('.developments-list-item__title'); 3428 links.forEach(link => processDevelopmentItem(link)); 3429 } 3430 }); 3431 } 3432 } 3433 }); 3434 3435 observer.observe(targetNode, { childList: true, subtree: true }); 3436 3437 document.querySelectorAll('.developments-list-item__title').forEach(link => { 3438 processDevelopmentItem(link); 3439 }); 3440}; 3441 3442initDevelopmentsObserver(); 3443</script>
3443 3444 3445
3446<script> 3447// Neighborhod grid clone name 3448const processNeighborhoodItem = (originalTitle) => { 3449 const parentText = originalTitle.closest('.neighborhoods-list__text'); 3450 3451 if (!parentText || parentText.querySelector('.vertical')) { 3452 return; 3453 } 3454 3455 const verticalTitle = originalTitle.cloneNode(true); 3456 verticalTitle.classList.add('vertical'); 3457 3458 parentText.insertBefore(verticalTitle, originalTitle); 3459}; 3460 3461const initNeighborhoodsObserver = () => { 3462 const targetNode = document.querySelector('.neighborhoods-list'); 3463 3464 if (!targetNode) return; 3465 3466 const observer = new MutationObserver((mutationsList) => { 3467 for (const mutation of mutationsList) { 3468 if (mutation.type === 'childList') { 3469 mutation.addedNodes.forEach(node => { 3470 if (node.nodeType === 1) { 3471 const titles = node.querySelectorAll('.neighborhoods-list__title'); 3472 titles.forEach(title => processNeighborhoodItem(title)); 3473 } 3474 }); 3475 } 3476 } 3477 }); 3478 3479 observer.observe(targetNode, { childList: true, subtree: true }); 3480 3481 document.querySelectorAll('.neighborhoods-list__title').forEach(title => { 3482 processNeighborhoodItem(title); 3483 }); 3484}; 3485 3486initNeighborhoodsObserver(); 3487</script>
3487 3488 3489 3490 3491
3492<script> 3493// Video on mobile 3494 window.addEventListener('load', function() { 3495 var videos = document.querySelectorAll('#video-iphone-fix, .full-screen-video-component video'); 3496 3497 videos.forEach(function(video) { 3498 if (video) { 3499 video.setAttribute('muted', ''); 3500 video.setAttribute('playsinline', ''); 3501 video.setAttribute('webkit-playsinline', ''); 3502 video.setAttribute('autoplay', 'autoplay'); 3503 3504 video.muted = true; 3505 3506 var promise = video.play(); 3507 3508 if (promise !== undefined) { 3509 promise.catch(error => { 3510 console.log("Autoplay prevent: ", error); 3511 }); 3512 } 3513 } 3514 }); 3515 }); 3516</script>
3516 3517
3518<script> 3519if (window.location.pathname === '/properties/one-dalton') { 3520 3521 const features = document.querySelectorAll('.property-intro-gallery__feature-name'); 3522 3523 features.forEach(feature => { 3524 if (feature.textContent.trim() === 'Bathrooms') { 3525 const valueElement = feature.nextElementSibling; 3526 if (valueElement && valueElement.classList.contains('property-intro-gallery__feature-value')) { 3527 valueElement.classList.add('custom-bath-style'); 3528 } 3529 } 3530 }); 3531} 3532</script>
3532 3533
3534<script> 3535// contact btn on properties lead to /contact 3536 document.addEventListener('click', function (e) { 3537 const btn = e.target.closest('.property-details-tabs__btn'); 3538 if (btn) { 3539 e.preventDefault(); 3540 e.stopImmediatePropagation(); 3541 3542 window.location.href = '/contact'; 3543 } 3544}, true); 3545</script>
3545 3546
3546<script 3547 src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js" 3548 data-website-id="0de14d64-da82-4bec-9862-7f827d40ab3f" 3549 3550 defer></script>
vendor: 1 bytes, line 3550
3550
3551<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:'a4823ae9c9d31aeb',t:'MTc5MTU5OTcwOQ=='};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>
3551<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>
3551 3552</body> 3553</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.