PageSourceSearch

https://nobleblackandpartners.com/team

html nobleblackandpartners.com collected 2026-10-09 22:34:35 UTC 372,719 bytes, 3,553 lines download raw bytes

1<!DOCTYPE html>
2<html class="no-js" lang=en>
3<head>
4    <meta charset="utf-8">
5    <meta http-equiv="x-ua-compatible" content="ie=edge">
6    <meta name="viewport" content="width=device-width, initial-scale=1.0">
7    <meta name="twitter:card" content="summary_large_image">
8    <meta property="og:type" content="website">
9        <title>Noble Black | Premier New York Real Estate Agents</title>
10        <meta property="og:title" content="Noble Black | Premier New York Real Estate Agents">
11        <meta name="twitter:title" content="Noble Black | Premier New York Real Estate Agents">
12        <meta name="description" content="Meet a collaborative real estate team providing expert guidance, market knowledge, and responsive service through every stage of the property process.">
13        <meta property="og:description" content="Meet a collaborative real estate team providing expert guidance, market knowledge, and responsive service through every stage of the property process.">
14        <meta name="twitter:description" content="Meet a collaborative real estate team providing expert guidance, market knowledge, and responsive service through every stage of the property process.">
15        <meta property="og:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format&#x3D;auto,quality&#x3D;85/https://media-production.lp-cdn.com/media/d280cc8b-cd69-4f97-9671-0e399bf687da">
16        <meta name="twitter:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format&#x3D;auto,quality&#x3D;85/https://media-production.lp-cdn.com/media/d280cc8b-cd69-4f97-9671-0e399bf687da">
17        <meta property="og:url" content="https://nobleblackandpartners.com/team">
18        <link rel="canonical" href="https://nobleblackandpartners.com/team">
19    
19<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
19
20    <link rel="preconnect" href="https://fonts.googleapis.com">
21    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
22    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Playfair%20Display:400,500,600,700,800,900,400i,500i,600i,700i,800i,900i"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i">
23    <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
24    <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript>
25    <link rel="icon" type="image/x-icon" href="/favicon.ico">
26    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
27    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
28    <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png">
29    <style id="global-css">:root{--global-primary-font-family:'Playfair Display',serif;--global-primary-font-family-short:Playfair Display;--global-secondary-font-family:Poppins,sans-serif;--global-secondary-font-family-short:Poppins;--global-body-padding:0px;--global-background-color:#fff;--global-body-font-size:13px;--global-h1-font-size:70px;--global-h2-font-size:40px;--global-h3-font-size:24px;--global-h4-font-size:21px;--global-h5-font-size:17px;--global-h6-font-size:16px;--global-section-padding:96px;}@media (max-width: 768px){:root{--global-section-padding:64px;}}body{padding:0px;background-color:#fff;font-family:Poppins,sans-serif;font-size:13px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:'Playfair Display',serif;}h1{font-size:70px;}h2{font-size:40px;}h3{font-size:24px;}h4{font-size:21px;}h5{font-size:17px;}h6{font-size:16px;}</style>
30        <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/producer/index.css" />
31    <style id="website-css">@font-face{font-family:'Didonesque Roman';src:url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1764941036886-y7xir4gl/Didonesque-Italic.woff2') format('woff2'),url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1764941036886-y7xir4gl/Didonesque-Italic.woff') format('woff');font-weight:400;font-style:italic;font-display:swap;}@font-face{font-family:'Didonesque Roman';src:url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1764941036886-y7xir4gl/Didonesque-Roman.woff2') format('woff2'),url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1764941036886-y7xir4gl/Didonesque-Roman.woff') format('woff');font-weight:400;font-style:normal;font-display:swap;}@font-face{font-family:'Didonesque Display';src:url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1764941036886-y7xir4gl/Didonesque-Display.woff2') format('woff2'),url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1764941036886-y7xir4gl/Didonesque-Display.woff') format('woff');font-weight:400;font-style:normal;font-display:swap;}@font-face{font-family:'Futura PT';src:url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1764941036886-y7xir4gl/futura-pt-book.woff2') format('woff2'),url('https://d1e1jt2fj4r8r.cloudfront.net/fonts/1764941036886-y7xir4gl/futura-pt-book.woff') format('woff');font-weight:400;font-style:normal;font-display:swap;}:root{--global-primary-font-family:'Didonesque Display',serif;--global-primary-font-family-short:'Didonesque Display';--global-secondary-font-family:'Futura PT',serif;--global-secondary-font-family-short:'Futura PT';}:root{--custom-black:#000;--custom-black-op:rgba(0, 0, 0, .3);--custom-white:#FFF;--custom-grey:#575757;--custom-light-grey:#EBEBEB;--custom-letter-sp:0;--btn-weight:500;--custom-padding:64px;--info-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 640'%3E%3C!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--%3E%3Cpath d='M272 112C272 85.5 293.5 64 320 64
31C346.5 64 368 85.5 368 112C368 138.5 346.5 160 320 160C293.5 160 272 138.5 272 112zM224 256C224 238.3 238.3 224 256 224L320 224C337.7 224 352 238.3 352 256L352 512L384 512C401.7 512 416 526.3 416 544C416 561.7 401.7 576 384 576L256 576C238.3 576 224 561.7 224 544C224 526.3 238.3 512 256 512L288 512L288 288L256 288C238.3 288 224 273.7 224 256z'/%3E%3C/svg%3E");}@media(max-width:769px){:root{--custom-padding:25px;}}:root{--nav-offset:120px;}[id]{scroll-snap-margin-top:var(--nav-offset);scroll-margin-top:var(--nav-offset);}h1,h2,h3,h4,h5,h6{letter-spacing:var(--custom-letter-sp);font-weight:500!important;}.italic{font-style:italic;}.redesign{font-size:13px;}.btn,.lp-btn{font-weight:var(--btn-weight)!important;letter-spacing:1px!important;border-width:1px!important;padding:22px 32px!important;}.lp-arrow::before{width:8px!important;height:8px!important;border-bottom-width:2px;border-left-width:2px;}.custom-link{position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin:0 auto;}.custom-link::before,.custom-link::after{content:'';display:block;position:absolute;bottom:0;left:0;width:100%;height:1px;-webkit-transition:.3s;transition:.3s;}.custom-link::after{width:0;}.custom-link:hover::after{width:100%;}.custom-link.dark{color:var(--custom-black);}.custom-link.dark:hover{color:var(--custom-grey);}.custom-link.dark::before{background:rgba(0, 0, 0, .2);}.custom-link.dark::after{background:var(--custom-black);}.custom-link.light{color:var(--custom-white);}.custom-link.light::before{background:rgba(255, 255, 255, .5);}.custom-link.light::after{background:var(--custom-white);}.lp-tcr-message{opacity:.9;font-weight:normal;}.page-contact nav#global-navbar a[data-type="CONTACT_US"]{display:none!important;}nav#global-navbar{padding-top:10px;}nav#global-navbar .header{-webkit-transform:unset;-moz-transform:unset;-ms-transform:unset;transform:unset;}@media(max-width:560px){nav#global-navbar .header{height:85px;}}@media(max-width:1024px){nav#global-navbar .header .container .navbar{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:end;justify-content:end;}}nav#global-navbar .header .container .navbar .logo{margin:0;position:absolute;left:50%;-webkit-transform:translatex(-50%);-moz-transform:translatex(-50%);-ms-transform:translatex(-50%);transform:translatex(-50%);}nav#global-navbar .header .container .navbar .logo .logo__img{max-height:65px;}@media(max-width:560px){nav#global-navbar .header .container .navbar .logo .logo__img{max-height:50px;}}nav#global-navbar .header .container .navbar .navigation__item{line-height:1;}nav#global-navbar .header .container .navbar .navigation__item .navigation__link{font-weight:var(--btn-weight);color:var(--custom-white);}nav#global-navbar .header .container .navbar .navigation__item .navigation__link[data-type="CONTACT_US"]{border:0;padding:0;min-height:unset;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-right:25px;-webkit-transition:0.3s;transition:0.3s;}nav#global-navbar .header .container .navbar .navigation__item .navigation__link[data-type="CONTACT_US"] span::after{background:rgba(255, 255, 255, .5);}nav#global-navbar .header .container .navbar .buttons-wrapper .hamburger-component:hover .hamburger__bars::after{width:100%;}nav#global-navbar .header .container .navbar .buttons-wrapper .hamburger-component .hamburger__bars{height:1.5px;}nav#global-navbar .header .container .navbar .buttons-wrapper .hamburger-component .hamburger__bars::before{-webkit-transform:translateY(-7px);-moz-transform:translateY(-7px);-ms-transform:translateY(-7px);transform:translateY(-7px);height:1.5px;}nav#global-navbar .header .container .navbar .buttons-wrapper .hamburger-component .hamburger__bars::after{-webkit-transform:translateY(7px);-moz-transform:translateY(7px);-ms-transform:translateY(7px);transform:translateY(7px);width:75%;-webkit-transition:0.3s;transition:0.3s;height:1.5px;}nav#global-navbar.scroll{background:var(--custom-white)!important;padding-top:0;}nav#global-navbar.scroll .container .navbar .logo .logo__img.light{display:none!important;}nav#global-navbar.scroll .container .navbar .logo .logo__img.dark{display:block!important;}nav#global-navbar.scroll .container .navbar .navigation__item .navigation__link{color:var(--custom-black);}nav#global-navbar.scroll .container .navbar .navigation__item .navigation__link[data-type="CONTACT_US"] span::after{background:rgba(0,0,0,0.65);}nav#global-navbar.scroll .container .navbar .buttons-wrapper .hamburger-component{color:var(--custom-black);}footer#global-footer .form-row.info-privacy__row .copy_zone,footer#global-footer .form-row.info-privacy__row .powered_zone{font-size:13px!important;}footer#global-footer div.footer.redesign{padding-top:96px;}@media(max-width:769px){footer#global-footer div.footer.redesign{padding-top:64px;}}footer#global-footer div.footer.redesign .container{--space-above:40px;}footer#global-footer div.footer.redesign .container .info-wrap{margin:0;}footer#global-footer div.footer.redesign .container .info-wrap .info-wrap-contact_cell{padding:0;margin:0;width:100%;}footer#global-footer div.footer.redesign .container .info-wrap .info-wrap-contact_cell>i,footer#global-footer div.footer.redesign .container .info-wrap .info-wrap-contact_cell .info-wrap-contact_title{display:none;}footer#global-footer div.footer.redesign .container .info-wrap .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;
31-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}footer#global-footer div.footer.redesign .container .info-wrap .custom-footer .top .logo{width:100%;max-width:180px;}footer#global-footer div.footer.redesign .container .info-wrap .custom-footer .lp-socials{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:var(--space-above);}footer#global-footer div.footer.redesign .container .info-wrap .custom-footer .info{display:-ms-grid;display:grid;-ms-grid-columns:repeat(2, 1fr);grid-template-columns:repeat(2, 1fr);text-align:center;max-width:500px;margin:var(--space-above) auto 0;font-weight:normal;text-transform:none;}footer#global-footer div.footer.redesign .container .info-wrap .custom-footer .info .cols{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}footer#global-footer div.footer.redesign .container .info-wrap .custom-footer .info .cols .title{color:var(--custom-grey);font-weight:500;margin-bottom:10px;text-transform:uppercase;}footer#global-footer div.footer.redesign .container .info-wrap .custom-footer .info .cols .custom-link{text-transform:uppercase;margin-bottom:5px;}footer#global-footer div.footer.redesign .container .text_footer{border-top:1px solid rgba(0, 0, 0, .1);margin-top:var(--space-above);padding-top:var(--space-above);margin-bottom:var(--space-above);}footer#global-footer div.footer.redesign .container .text_footer .luxury-text{text-align:center;}footer#global-footer div.footer.redesign .container .text_footer .luxury-text .broker-logo{width:100%;max-width:160px;margin-bottom:20px;-webkit-transition:.3s;transition:.3s;}footer#global-footer div.footer.redesign .container .text_footer .luxury-text .broker-logo:hover{opacity:.6;cursor:pointer;}footer#global-footer div.footer.redesign .container .text_footer .luxury-text .grey{color:var(--custom-grey);}footer#global-footer div.footer.redesign .container .text_footer .luxury-text .disclimer-links{margin-top:10px;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;}@media(max-width:769px){footer#global-footer div.footer.redesign .container .text_footer .luxury-text .disclimer-links{-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;gap:6px;}footer#global-footer div.footer.redesign .container .text_footer .luxury-text .disclimer-links p{display:none;}}footer#global-footer div.footer.redesign .container .text_footer .luxury-text .disclimer-links .custom-link{margin:unset;}footer#global-footer div.footer.redesign .container .text_footer .luxury-text .disclimer-links p{margin:0 10px;}footer#global-footer div.footer.redesign .container .text_footer .luxury-text p:not(:first-child){opacity:0.6;}footer#global-footer div.footer.redesign .container .second_text_footer{display:none;}footer#global-footer div.footer.redesign .container .info-privacy{border:0;padding-top:0;padding-bottom:0;}footer#global-footer div.footer.redesign .container .info-privacy a{font-weight:500;}footer#global-footer div.footer.redesign .container .info-privacy .info-privacy__row{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}footer#global-footer div.footer.redesign .container .info-privacy .info-privacy__row .form-col--socials{display:none;}footer#global-footer div.footer.redesign .container .info-privacy .info-privacy__row .form-col--powered{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:justify;
31-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0;}@media(max-width:900px){footer#global-footer div.footer.redesign .container .info-privacy .info-privacy__row .form-col--powered{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer#global-footer div.footer.redesign .container .info-privacy .info-privacy__row .form-col--powered .powered_zone{padding:0;}@media(min-width:901px){footer#global-footer div.footer.redesign .container .info-privacy .info-privacy__row .form-col--powered .powered_zone{margin-right:10px;padding-right:10px;border-right:1px solid var(--custom-black);}}@media(max-width:769px){footer#global-footer div.footer.redesign .container .info-privacy .info-privacy__row .form-col--powered .powered_zone{margin:0;}}footer#global-footer div.footer.redesign .container .info-privacy .info-privacy__row .form-col--copyright{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;-webkit-flex:unset;-ms-flex:unset;flex:unset;padding:0;}@media(max-width:769px){footer#global-footer div.footer.redesign .container .info-privacy .info-privacy__row .form-col--copyright .copy_zone{padding:0;border:0;margin:0;}}div#global-sidemenu .sidebar__close{-webkit-transition:0.3s;transition:0.3s;}div#global-sidemenu .sidebar__close:hover{opacity:0.6;cursor:pointer;}div#global-sidemenu .sidebar{width:480px;}@media(max-width:620px){div#global-sidemenu .sidebar{width:100vw;}}div#global-sidemenu .sidebar .sidebar__nav-item{text-align:left;-webkit-transition:0.3s;transition:0.3s;border:0;font-size:var(--global-h3-font-size);}div#global-sidemenu .sidebar .sidebar__nav-item:hover:not(.sub-nav-container){border:0;}@media(min-width:620px){div#global-sidemenu .sidebar .sidebar__nav-item:hover:not(.sub-nav-container){padding-left:20px;}}div#global-sidemenu .sidebar .sidebar__subnav{padding-left:10px!important;}div#modal-global-contact-us .contact-form:after{background:#000;opacity:.5;}@media(max-width:769px){div#modal-global-contact-us .close{top:30px;right:30px;}}div#modal-global-contact-us .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;}div#modal-global-contact-us .container .section-details{width:100%;text-align:center;margin-bottom:40px;-webkit-order:-1!important;-ms-flex-order:-1!important;order:-1!important;}div#modal-global-contact-us .container .section-details .info-zone{display:-ms-grid;display:grid;-ms-grid-columns:repeat(2, 1fr);grid-template-columns:repeat(2, 1fr);max-width:650px;margin:30px auto 0 auto;}div#modal-global-contact-us .container .section-details .info-zone div.info-zone_contact.type_user>div:nth-child(2)>p{font-size:0;}div#modal-global-contact-us .container .section-details .info-zone div.info-zone_contact.type_user>div:nth-child(2)>p::after{content:'Noble Black';font-size:14px;text-transform:none;}div#modal-global-contact-us .container .section-details .info-zone div.info-zone_contact.type_user>div:nth-child(3)>p{display:none;}div#modal-global-contact-us .container .section-details .info-zone .info-zone_contact_cell{padding:0;width:100%;margin:0 auto;font-weight:normal;}div#modal-global-contact-us .container .section-details .info-zone .info-zone_contact_cell i{display:none;}div#modal-global-contact-us .container .section-details .info-zone .info-zone_contact_cell a{font-weight:normal;}div#modal-global-contact-us .container .section-details .info-zone .info-zone_contact_cell .lp-link::after{background:var(--custom-white);}div#modal-global-contact-us .container .section-details .info-zone .serif,div#modal-global-contact-us .container .section-details .info-zone .info-wrap-contact_title{font-family:var(--global-secondary-font-family);font-weight:500;font-size:16px;text-transform:uppercase;margin-bottom:8px;}
31div#modal-global-contact-us .container .section-details>div>div:nth-child(3){display:none;}div#modal-global-contact-us .container .section-details .lp-socials{grid-column:span 2;padding:0;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}div#modal-global-contact-us .container .section-message{width:100%;max-width:900px;}div#modal-global-contact-us .container .section-message::after{display:none;}div#modal-global-contact-us .container .section-message form{max-width:unset;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;}div#modal-global-contact-us .container .section-message form h2{text-align:center;display:block;width:100%;}div#modal-global-contact-us .container .section-message form .h-pot{display:none;}div#modal-global-contact-us .container .section-message form .lp-input-group{margin-right:20px;max-width:calc(100% / 3 - 20px);}div#modal-global-contact-us .container .section-message form .lp-input-group:has(textarea){max-width:100%;}@media(max-width:769px){div#modal-global-contact-us .container .section-message form .lp-input-group{max-width:100%;margin-right:0;}}div#modal-global-contact-us .container .section-message form .lp-label{font-weight:500;letter-spacing:2px;}div#modal-global-contact-us .container .section-message .submitButton{margin:0 auto;}div#global-mobile-contact .buttons-holder a{background:var(--custom-black);border:0;-webkit-transition:.3s;transition:.3s;}div#global-mobile-contact .buttons-holder a i{color:var(--custom-white);}div#global-mobile-contact .buttons-holder a:hover{opacity:.6;}@media(min-width:1024px){section:has(.custom-intro){background-attachment:fixed;-webkit-background-position:bottom!important;background-position:bottom!important;}}section:has(.custom-intro) div.redesign.custom-intro{height:100vh!important;}section:has(.custom-intro) div.redesign.custom-intro .custom-intro__title{font-size:40px;}@media(max-width:560px){section:has(.custom-intro) div.redesign.custom-intro .custom-intro__title{font-size:30px;}}section:has(.custom-intro) div.redesign.custom-intro .custom-intro__title::after{content:"";font-style:italic;}section:has(.custom-intro) div.redesign.custom-intro .custom-intro__subtitle{text-align:center;font-family:var(--global-secondary-font-family);font-weight:500;font-size:14px!important;letter-spacing:var(--custom-letter-sp);}.scroll-next-btn{position:absolute;bottom:50px;left:50%;-webkit-transform:translatex(-50%);-moz-transform:translatex(-50%);-ms-transform:translatex(-50%);transform:translatex(-50%);border:1px solid #fff;border-radius:50%!important;width:55px;height:55px;font-size:0!important;background:transparent;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:.3s;transition:.3s;}.scroll-next-btn::before{content:'';display:block;width:9px;height:9px;border-bottom:2px solid #fff;border-right:2px solid #fff;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);position:relative;top:-2px;}.scroll-next-btn:hover{background:rgba(255, 255, 255, 0.53);cursor:pointer;}.scroll-next-btn:hover::before{border-color:var(--custom-white);}.lp-lightbox-arrow{border-radius:50%;border:1px solid rgba(255, 255, 255, .5);height:55px;width:55px;}.page-properties:not(:has(.property-agent-cta)) .redesign.features-amenities{padding-top:0;}body>div.mobile-contact-wrapper .mobile-contact.with-search div.buttons-holder{bottom:150px;}@media only screen and (max-width: 768px){iframe[name='widgetCta']{bottom:55px!important;right:15px!important;}}iframe[name="widgetCta"]{bottom:70px!important;right:15px!important;}body>div.mobile-contact-wrapper .connect-btn{border:2px solid #333!important;}body>div.mobile-contact-wrapper{z-index:9999!important;}body>div.mobile-contact-wrapper .mobile-contact{z-index:9999!important;}.lp-btn,.redesign .lp-btn,.redesign .btn{padding:20px 46px;}.lp-btn,.redesign .lp-btn,.redesign .btn{text-overflow:initial;}#modal-global-contact-us .contact-form .section-message form .submitButton{padding:14px 20px;}#global-mobile-contact .mobile-contact{z-index:9999;}
31input[type="checkbox"][name="termsAccepted"]{cursor:pointer!important;}@media (max-width: 1024px){div.calendar__item{margin-bottom:10px!important;}}html body .uwy:not(.uon){z-index:99999!important;}#global-mobile-contact .mobile-contact .buttons-holder a{border:2px solid #333;}body>div.sidemenu .sidebar{box-shadow:0 0 10px rgba(0, 0, 0, 0.2);}</style>
32    <style id="wow-hide-elements">.wow{visibility:hidden!important}</style>
33        <style id="page-css">
34            #section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21{color:#fff;--fontColor:#fff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.4));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/d280cc8b-cd69-4f97-9671-0e399bf687da');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21{-webkit-background-position:top!important;background-position:top!important;}#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21 .custom-intro{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:600px;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21 .custom-intro .container{z-index:1;text-align:center;max-width:900px;}#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21 .custom-intro__title{margin-bottom:0px;font-weight:400;margin-bottom:24px;}@media (max-width: 768px){#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21 .custom-intro__title{font-size:32px;}}@media (max-width: 360px){#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21 .custom-intro__title{font-size:22px;}}#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21 .custom-intro__subtitle{font-weight:400;white-space:pre-line;font-size:21px;line-height:1.57;}@media (max-width: 768px){#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21 .custom-intro__subtitle{font-size:18px;}}#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21 .description{margin-bottom:15px;}@media (min-width: 960px) and (orientation: landscape){#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/d280cc8b-cd69-4f97-9671-0e399bf687da');}}@media (min-width: 1280px) and (orientation: landscape){#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/d280cc8b-cd69-4f97-9671-0e399bf687da');}}@media (min-width: 1920px) and (orientation: landscape){#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/d280cc8b-cd69-4f97-9671-0e399bf687da');}}@media (min-width: 2560px) and (orientation: landscape){#section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/d280cc8b-cd69-4f97-9671-0e399bf687da');}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07{color:#000000;--fontColor:#000000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#ffffff;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.lp-container{max-width:100%;}@media (min-width: 992px) and (max-width: 1480px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__link[href="/agent/jennifer-kaufman-stillman"]:hover .team-member__info{-webkit-transform:translatey(-342px)!important;-moz-transform:translatey(-342px)!important;-ms-transform:translatey(-342px)!important;transform:translatey(-342px)!important;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid__wrapper.data-container{display:-ms-gri
34d;display:grid;-ms-grid-columns:repeat(4, 1fr);grid-template-columns:repeat(4, 1fr);gap:40px;margin:0;margin-bottom:40px;}@media(max-width:1024px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid__wrapper.data-container{-ms-grid-columns:repeat(3, 1fr);grid-template-columns:repeat(3, 1fr);}}@media(max-width:992px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid__wrapper.data-container{-ms-grid-columns:repeat(2, 1fr);grid-template-columns:repeat(2, 1fr);}}@media(max-width:620px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid__wrapper.data-container{-ms-grid-columns:repeat(1, 1fr);grid-template-columns:repeat(1, 1fr);}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid__wrapper.data-container .team-member__container{width:100%;max-width:100%;margin:0;padding:0;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container:hover .team-member__info::after{opacity:.6;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__info::after{content:'';-webkit-transition:.4s;transition:.4s;opacity:0;position:absolute;width:100%;left:0;bottom:-10px;}@media(max-width:560px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__info::after{position:relative;bottom:0;opacity:.7;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/noble-black"] .team-member__info::after{content:"Licence #: NY 10301211307";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/jamie-gagliano"] .team-member__info::after{content:"Licence #: NY 10401257389";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/justin-figari"] .team-member__info::after{content:"Licence #: NY 10301210879";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/jennifer-kaufman-stillman"] .team-member__info::after{content:"Licence #: NY 10301209805";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/corinne-cory-cahlon"] .team-member__info::after{content:"Licence #: NY 10301216552";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/matthew-mackay"] .team-member__info::after{content:"Licence #: NY 30MA0875774";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/jesse-feldman"] .team-member__info::after{content:"Licence #: NY 10301210406";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/connor-cuccinelli"] .team-member__info::after{content:"Licence #: NY 10401363560";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/david-dubin"] .team-member__info::after{content:"Licence #: NY 30DU1000717";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/david-eskander"] .team-member__info::after{content:"Licence #: NY 10301223460";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/jeffrey-gageby"] .team-member__info::after{content:"Licence #: NY 10401375526";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/douglas-brown"] .team-member__info::after{content:"Licence #: NY 10401282427";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/hannah-morris"] .team-member__info::after{content:"Licence #: NY 10401331591";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/dana-romita"] .team-member__info::after{content:"Licence #: NY 10301221682";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/ryan-mcerlean"] .team-member__info::after{content:"Licence #: NY 10401382396";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/sophia-goldstein"] .team-member__info::after{content:"Licence #: NY 10401382870";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/candice-koch-postel"] .team-member__info::after{content:"Licence #: NY 10401361288";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/james-averitt-buttry"] .team-member__info::after{content:"Licence #: NY 10301207041";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/jon-vaccari"] .team-member__info::after{content:"Licence #: NY 10401314631";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/william-schumann"] .team-member__info::after{content:"Licence #: NY 10401270397";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/shawn-egan"] .team-member__info::after{content:"Licence #: NY 10401316864";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/sheridan-wright"] .team-member__info::after{content:"Licence #: NY 10401316453";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/neil-wali"] .team-member__info::after{content:"Licence #: NY 10301224143";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/theresa-thornton"] .team-member__info::after{content:"Licence #: NY 10401337853";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container .team-member__link[href="/agent/ali-winter"] .team-member__info::after{content:"Licence #: NY 10401304540";}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .lp-container{padding-left:var(--custom-padding);padding-right:var(--custom-padding);}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .lp-title-group{margin-bottom:55px;}@media(max-width:769px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .lp-title-group{margin-bottom:35px;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .lp-title-group .lp-h2:not(.custom-h2){dis
34play:none;}@media(min-width:560px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link:hover .team-member__info{-webkit-transform:translatey(-380px);-moz-transform:translatey(-380px);-ms-transform:translatey(-380px);transform:translatey(-380px);}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link .team-member__image-wrap .team-member__image{padding:0;min-height:480px;-webkit-filter:grayscale(100%);filter:grayscale(100%);}@media(max-width:560px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link .team-member__image-wrap .team-member__image img{object-position:50% 30%!important;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link .team-member__image-wrap .team-member__image::before{content:'';display:block;position:absolute;bottom:0;left:0;width:100%;height:50%;background:linear-gradient(to top, #000, transparent);z-index:1;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link .team-member__image-wrap .team-member__hover{-webkit-transform:unset;-moz-transform:unset;-ms-transform:unset;transform:unset;border:0;background:#000;-webkit-transition:.4s;transition:.4s;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link .team-member__image-wrap .team-member__hover .team-member__btn{padding:0!important;padding-bottom:2px!important;border:0;border-bottom:1px solid rgba(255,255,255,0.54)!important;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link .team-member__image-wrap .team-member__hover .team-member__btn:hover{border-color:#fff!important;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link .team-member__info{position:absolute;bottom:0;left:0;width:100%;text-align:center;color:#fff;padding-bottom:20px;-webkit-transition:.6s;transition:.6s;z-index:2;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link .team-member__info .team-member__name{font-size:var(--global-h3-font-size);margin-bottom:0px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .team-member__link .team-member__info .team-member__role{font-weight:500;margin:0;color:#fff;opacity:0.8;font-size:14px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .paginationjs-pages .paginationjs-prev a,#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .paginationjs-pages .paginationjs-next a{border-radius:50%;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .paginationjs-pages .paginationjs-prev a::before,#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .paginationjs-pages .paginationjs-next a::before{width:8px;height:8px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .paginationjs-pages .paginationjs-page a{font-weight:500;border-radius:50%;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .paginationjs-pages .paginationjs-page.active a,#section-9246491e-d5f8-41a8-a437-7e55d6487d07 div.team-grid.redesign .paginationjs-pages .paginationjs-page:hover a{border-radius:50%;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .J-paginationjs-page a{margin:0 5px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .button-style-2:hover{background:none!important;color:#fff!important;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-grid{padding:140px 0 90px;}@media (max-width: 768px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-grid{padding:40px 0;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-grid__title{text-align:center;margin-bottom:50px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-grid .lp-input{width:100%;height:35px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-grid__wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-25px;margin-right:-25px;}@media(min-width: 1001px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-grid__wrapper.two-col{max-width:750px;width:100%;margin:0 auto;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-grid__wrapper.two-col .team-member__container{width:50%;}}@media(max-width: 1000px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-grid__wrapper{max-width:1000px;}}@media (max-width: 768px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-grid__wrapper{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container{width:33.333%;padding-left:25px;padding-right:25px;margin-bottom:50px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container:first-child{margin-left:auto;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container:last-child{margin-right:auto;}@media(max-width: 1000px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container{width:50%;}}@media (max-width: 768px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container{width:100%;}}@media (hover: hover) and (pointer: fine){@media (min-width: 769px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container:hover .team-member__image{opacity:.5;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container:hover .team-member__hover{opacity:1;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container:hover .team-member__hover::before,#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container:hover .team-member__hover::after{width:100%;height:100%;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container:hover .team-member__hover::before{border-top-color:inherit;border-right-color:inherit;-webkit-transition:width 0.25s ease-out,height 0.25s ease-out 0.25s;transition:width 0.25s ease-out,height 0.25s ease-out 0.25s;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container:hover .team-member__hover::after{border-bottom-color:inherit;border-left-color:inherit;-webkit-transition:width 0.25s ease-out 0.5s,height 0.25s ease-out 0.75s,border-color 0.01s ease-out 0.5s;transition:width 0.25s ease-out 0.5s,height 0.25s ease-out 0.75s,border-color 0.01s ease-out 0.5s;}}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__container.filtered-out{display:none;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__link{position:relative;display:block;height:100%;cursor:pointer;color:inherit;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__image{position:relative;width:100%;padding-top:130%;background-color:#cccccc;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__image img{position:absolute;object-fit:cover;width:100%;height:100%;top:0;left:0;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__image-wrap{position:relative;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__hover{opacity:0;position:absolute;top:0;right:0;left:0;bottom:0;-webkit-transform:translate(20px, 20px);-moz-transform:translate(20px, 20px);-ms-transform:translate(20px, 20px);transform:translate(20px, 20px);
34display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__hover:before,#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__hover:after{content:' ';position:absolute;border:2px solid transparent;width:0;height:0;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__hover:before{top:0;left:0;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__hover:after{bottom:0;right:0;}@media (hover:none) and (pointer: coarse){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__hover{display:none;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__name{display:block;margin-top:25px;font-size:30px;line-height:40px;font-weight:400;font-family:var(--global-primary-font-family);}@media (max-width: 560px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__name{font-size:18px;line-height:29px;letter-spacing:0.75px;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__role{display:block;margin-top:8px;font-size:14px;line-height:24px;font-weight:700;font-family:inherit;text-transform:uppercase;letter-spacing:1.5px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__license{font-size:13px;text-transform:uppercase;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__info{text-align:center;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .team-member__btn{margin-bottom:60px;position:relative;z-index:1;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .form-container{padding-bottom:48px;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .search-form{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin:0 -10px -8px;}@media (max-width: 600px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .search-form{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;margin:0;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .input-group{-webkit-flex:1 0 250px;-ms-flex:1 0 250px;flex:1 0 250px;max-width:300px;position:relative;margin:8px 10px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 600px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .input-group{-webkit-flex:1;-ms-flex:1;flex:1;max-width:unset;margin:8px 0;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .search-icon{position:absolute;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:0;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .search-clear-icon{color:#b2b2b2;position:absolute;top:calc(50% + 2px);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:40px;-webkit-transition:-webkit-transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0.3s;transition:transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0.3s;opacity:1;visibility:visible;cursor:pointer;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .search-clear-icon:hover{-webkit-transform:translateY(-50%) scale(1.2);-moz-transform:translateY(-50%) scale(1.2);-ms-transform:translateY(-50%) scale(1.2);transform:translateY(-50%) scale(1.2);}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .is-empty .search-clear-icon{opacity:0;visibility:hidden;-webkit-transition:-webkit-transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0s;transition:transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0s;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .search-input{padding-right:65px;}@media (max-width: 569px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .search-input{padding-bottom:5px;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-toggle{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;outline:none;text-align:left;cursor:pointer;position:relative;padding-right:65px;overflow:hidden;text-overflow:ellipsis;text-transform:none;font-family:var(--global-secondary-font-family);}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-open-icon{position:absolute;right:17px;top:calc(50% - 1px);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:-webkit-transform .3s ease;transition:transform .3s ease;cursor:pointer;color:#b2b2b2;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-clear{color:#b2b2b2;position:absolute;right:40px;top:calc(50% + 2px);-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:-webkit-transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0.3s;transition:transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0.3s;opacity:1;visibility:visible;cursor:pointer;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-clear:hover{-webkit-transform:translateY(-50%) scale(1.2);-moz-transform:translateY(-50%) scale(1.2);-ms-transform:translateY(-50%) scale(1.2);transform:translateY(-50%) scale(1.2);}@media (max-width: 639px){#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-clear{display:none;}}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-dropdown{position:absolute;width:100%;top:calc(100% + 5px);overflow:hidden;height:0;-webkit-transition:height 0.3s ease;transition:height 0.3s ease;background-color:#f5f5f5;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-dropdown.on-top{bottom:calc(100% + 5px);top:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-dropdown.opened{z-index:999;position:fixed;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-dropdown-wrapper{width:100%;overflow:hidden auto;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-optgroup{width:100%;padding:11px 20px;color:#b2b2b2;cursor:default;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-option{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;text-align:left;width:100%;border:none;border-radius:0;background-color:transparent;cursor:pointer;padding:11px 20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-transform:none;font-family:var(--global-secondary-font-family);}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select-option:hover{background-color:#b2b2b2;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select{-webkit-flex:1 0 0%;-ms-flex:1 0 0%;flex:1 0 0%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select.is-empty .c-select-toggle{color:#b2b2b2;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select.is-empty .c-select-clear{opacity:0;visibility:hidden;-webkit-transition:-webkit-transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0s;transition:transform 0.3s ease,opacity 0.3s ease,visibility 0s linear 0s;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .c-select.opened .c-select-open-icon{color:currentColor;-webkit-transform:translateY(-50%) rotateX(180deg);-moz-transform:translateY(-50%) rotateX(180deg);-ms-transform:translateY(-50%) rotateX(180deg);transform:translateY(-50%) rotateX(180deg);}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .empty-message{padding:160px 0;text-align:center;display:none;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .empty-message.visible{display:block;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07 .visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);width:1px;height:1px;margin:-1px;padding:0;border:0;}#section-9246491e-d5f8-41a8-a437-7e55d6487d07>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#fff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.4));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/ceepyjczcdsbgxrcrkj1');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75{background-attachment:fixed;}@media(max-width:992px){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75{-webkit-background-position:right bottom;background-position:right bottom;background-attachment:unset;}}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 div.redesign.work-with-us .container{max-width:unset;padding-left:var(--custom-padding);padding-right:var(--custom-padding);-webkit-box-pack:center;-ms-flex-pack:center;
34-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;min-height:90vh;}@media(max-width:769px){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 div.redesign.work-with-us .container{min-height:unset;text-align: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;}}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 div.redesign.work-with-us .container .serif{padding:0;margin-bottom:1.6rem;}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 div.redesign.work-with-us .container .serif::after{display:none;}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 div.redesign.work-with-us .container p{max-width:600px;}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 div.redesign.work-with-us .container .btn-container{margin:0;}@media (max-width: 560px){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .btn-container{width:100%;}}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75.parallax-enabled{-webkit-clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);clip-path:polygon(0px 0px, 100% 0%, 100% 100%, 0% 100%);}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:-9999;}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75.parallax-enabled .work-with-us:before{display:block;content:'';left:0;top:0;width:100%;background:var(--sectionBackground) center no-repeat;-webkit-background-size:cover;background-size:cover;position:fixed;z-index:-1;height:100%;}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us{position:relative;color:var(--fontColor, #ffffff);}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us .container{text-align:center;max-width:750px;min-height:689px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-top:50px;padding-bottom:50px;position:relative;z-index:1;}@media (max-width: 768px){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us .container{min-height:auto;padding-top:100px;padding-bottom:100px;}}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us h2{position:relative;padding-bottom:28px;margin:0 0 30px;}@media(max-width: 768px){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us h2{padding-bottom:40px;}}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us h2:after{content:'';position:absolute;bottom:0;left:50%;margin-left:-55px;width:110px;height:1px;background-color:var(--fontColor, #ffffff);}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us .description{margin:0 0 30px;}@media(max-width: 768px){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us .description{margin-bottom:40px;}}#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us .btn-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:23px;margin-top:32px;}@media(max-width: 560px){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75 .redesign.work-with-us .btn-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:10px;}}@media (min-width: 960px) and (orientation: landscape){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/ceepyjczcdsbgxrcrkj1');}}@media (min-width: 1280px) and (orientation: landscape){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/ceepyjczcdsbgxrcrkj1');}}@media (min-width: 1920px) and (orientation: landscape){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/ceepyjczcdsbgxrcrkj1');}}@media (min-width: 2560px) and (orientation: landscape){#section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/ceepyjczcdsbgxrcrkj1');}}#section-840698fa-42be-4d74-b5a0-781c1f3985f0{color:#000000;--fontColor:#000000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#ffffff;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign{padding-top:96px;padding-bottom:0;margin:0;}@media(max-width:769px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign{padding-top:64px;}}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container{max-width:unset;padding-left:var(--custom-padding);padding-right:var(--custom-padding);}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .pre-title{display:none;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .instagram-username{margin-top:0;margin-bottom:40px;font-size:40px;}@media(max-width:560px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .instagram-username{font-size:32px;}}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .feed__content{gap:32px;
34display:-ms-grid;display:grid;-ms-grid-columns:repeat(5, 1fr)!important;grid-template-columns:repeat(5, 1fr)!important;}@media(max-width:1024px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .feed__content{-ms-grid-columns:repeat(2, 1fr)!important;grid-template-columns:repeat(2, 1fr)!important;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .feed__content .feed__content__item:last-child{display:none;}}@media(max-width:620px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .feed__content{-ms-grid-columns:repeat(1, 1fr);grid-template-columns:repeat(1, 1fr);}}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .feed__content__item{padding:0;aspect-ratio:240/296;overflow:hidden;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .feed__content__item .feed__content__item__img{-webkit-transition:.4s;transition:.4s;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 div.feed.redesign .lp-container .feed__content__item .feed__content__item__img__icon{display:none;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content{margin-bottom:60px;}@media(max-width:769px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content{margin-bottom:40px;}}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .lp-follow-btn{background:transparent;border:1px solid var(--custom-black);color:var(--custom-black);cursor:pointer;display:inline-block;font-family:var(--global-secondary-font-family);font-size:14px;font-weight:500;letter-spacing:1.5px;line-height:1;padding:20px 46px;text-align:center;text-transform:uppercase;display:block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;margin-left:auto;margin-right:auto;-webkit-transition:.3s;transition:.3s;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .lp-follow-btn:hover{background:var(--custom-black);color:var(--custom-white);}@media (max-width: 560px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .lp-follow-btn{width:100%!important;}}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed{display:none;margin:50px 0 100px;}@media (max-width: 768px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed{margin:30px 0 60px;}}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed .pre-title{display:block;margin-bottom:20px;text-align:center;margin-bottom:2px;color:hsla(
35      var(--fontColor_H),
36      var(--fontColor_S),
37      calc(50% + (var(--fontColor_L) - 50%) * 0.7),
38      var(--fontColor_A)
39      );}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed h2,#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed h3{text-align:center;margin:20px 0 60px;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-basis:20%;-ms-flex-preferred-size:20%;flex-basis:20%;padding-bottom:25%;position:relative;z-index:1;}@media (max-width: 768px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item{-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%;padding-bottom:62.5%;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item:nth-child(n+5){display:none;}}@media (max-width: 520px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;padding-bottom:125%;}}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item:hover{z-index:2;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item:nth-child(n+6){display:none;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item__img{bottom:0;position:absolute;height:100%;width:100%;background-color:lightgray;-webkit-background-size:cover;background-size:cover;-webkit-background-position:center center;background-position:center center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;
39-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:all linear 0.2s;transition:all linear 0.2s;transform-origin:bottom;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item__img svg{display:none;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item__img:hover{position:absolute;background-image:linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45));height:108%;width:104%;margin-left:-2%;}@media (max-width: 768px){#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item__img:hover{height:104%;width:104%;margin-left:-2%;}}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .feed__content__item__img:hover svg{display:block;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .instagram-link{display:block;overflow:hidden;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .instagram-link,#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .instagram-link:hover,#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .instagram-link:visited{color:inherit;-webkit-text-decoration:none;text-decoration:none;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .instagram-username{overflow-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .media-type-icon{position:absolute;top:10px;right:10px;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0 .has-data .feed{display:block;}#section-840698fa-42be-4d74-b5a0-781c1f3985f0.has-data .feed,#section-840698fa-42be-4d74-b5a0-781c1f3985f0#section-temp .feed{display:block;}#modal-global-contact-us .close{z-index:11;}#modal-global-contact-us .description{margin-bottom:15px;}#modal-global-contact-us .close:focus{outline:0;}#modal-global-contact-us .contact-form{padding:70px 0;width:100%;min-height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;color:var(--colorTxt, #ffffff);-webkit-background-size:cover;background-size:cover;}#modal-global-contact-us .contact-form:after{content:'';position:absolute;display:block;background-color:rgba(2, 5, 7, 0.85);height:100%;width:100%;z-index:0;}#modal-global-contact-us .contact-form.loading textarea,#modal-global-contact-us .contact-form.loading input,#modal-global-contact-us .contact-form.loading label,#modal-global-contact-us .contact-form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .submit-icon{display:none;}#modal-global-contact-us .contact-form .contact-form-close{width:40px;height:50px;display:block;padding:0;border:none;background-color:transparent;cursor:pointer;position:absolute;right:50px;top:50px;z-index:110;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close{right:20px;top:20px;width:30px;height:40px;}}#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{content:'';display:block;width:40px;height:1px;background-color:#fff;position:absolute;left:50%;top:50%;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{width:30px;}}#modal-global-contact-us .contact-form .contact-form-close:before{-webkit-transform:translate(-50%, -50%) rotate(45deg);-moz-transform:translate(-50%, -50%) rotate(45deg);-ms-transform:translate(-50%, -50%) rotate(45deg);transform:translate(-50%, -50%) rotate(45deg);}#modal-global-contact-us .contact-form .contact-form-close:after{-webkit-transform:translate(-50%, -50%) rotate(-45deg);-moz-transform:translate(-50%, -50%) rotate(-45deg);-ms-transform:translate(-50%, -50%) rotate(-45deg);transform:translate(-50%, -50%) rotate(-45deg);}#modal-global-contact-us .contact-form .container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:1440px;width:100%;padding:0 160px;margin:0 auto;z-index:10;}@media (max-width: 1320px){#modal-global-contact-us .contact-form .container{padding:0 80px;}}@media (max-width: 1200px){#modal-global-contact-us .contact-form .container{padding:0 30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .container{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}
39@media (max-width: 560px){#modal-global-contact-us .contact-form .container{padding:0 20px;}}#modal-global-contact-us .contact-form h2{margin:0 0 18px 0;padding:0;}@media (max-width: 560px){#modal-global-contact-us .contact-form h2{margin:0 0 24px 0;}}#modal-global-contact-us .contact-form .section-details{width:50%;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-details{padding-right:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-details{width:100%;padding-right:0;max-width:700px;margin-bottom:38px;}}#modal-global-contact-us .contact-form .section-message{width:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;position:relative;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-message{padding-left:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message{width:100%;padding-left:0;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}}#modal-global-contact-us .contact-form .section-message:after{content:'';position:absolute;display:block;width:1px;background:#999999;height:calc(100% + 50px);left:0;top:-20px;}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message:after{display:none;}}#modal-global-contact-us .contact-form .section-message form{max-width:435px;width:100%;}#modal-global-contact-us .contact-form .section-message form .submitButton{width:auto;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message form .submitButton{width:100%;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message form{max-width:700px;}}#modal-global-contact-us .contact-form .section-message form.loading textarea,#modal-global-contact-us .contact-form .section-message form.loading input,#modal-global-contact-us .contact-form .section-message form.loading label,#modal-global-contact-us .contact-form .section-message form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form .section-message form.loading .label-loading{display:inline;}#modal-global-contact-us .contact-form .section-message form.loading .label-success,#modal-global-contact-us .contact-form .section-message form.loading .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .section-message form.success .label-loading,#modal-global-contact-us .contact-form .section-message form.success .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.success .label-success{display:inline;}#modal-global-contact-us .contact-form .section-message .label-loading,#modal-global-contact-us .contact-form .section-message .label-success{display:none;}#modal-global-contact-us .contact-form .section-message .submit-icon{display:none;}#modal-global-contact-us .contact-form .section-message h2{margin-bottom:28px;}#modal-global-contact-us .contact-form .section-message .form-group_modal{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:39px;}#modal-global-contact-us .contact-form .section-message .form-group_modal input{border:none;border-bottom:1px solid #c0c0c0;display:block;width:100%;background:transparent;color:#ffffff;height:22px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group_modal input{height:25px;}}#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:23px;}}#modal-global-contact-us .contact-form .section-message label{display:block;width:100%;line-height:1.63;letter-spacing:1px;color:#c0c0c0;font-weight:bold;text-transform:uppercase;}#modal-global-contact-us .contact-form .section-message textarea{resize:none;height:105px;width:100%;background:transparent;border:solid 1px #ffffff;margin:23px 0 0 0;color:#ffffff;padding:10px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message textarea{margin:10px 0 0 0;height:89px;}}#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 16px 0;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 13px 0;}}#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user{margin-bottom:58px;}}#modal-global-contact-us .contact-form .info-zone_contact{margin-bottom:23px;}#modal-global-contact-us .contact-form .info-zone_contact:nth-last-child(2){margin-bottom:30px;}#modal-global-contact-us .contact-form .info-zone_contact_cell{position:relative;padding-left:45px;margin-bottom:22px;font-weight:bold;font-size:14px;max-width:90%;letter-spacing:1.5px;text-transform:uppercase;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell{padding-left:0;}}#modal-global-contact-us .contact-form .info-zone_contact_cell:last-of-type{margin-bottom:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:absolute;
39left:0;top:0;display:block;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:relative;margin-bottom:7px;}}#modal-global-contact-us .contact-form .info-zone_contact_cell i svg path{fill:var(--colorTxt);}#modal-global-contact-us .contact-form .info-zone_contact_cell div{padding:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell .contact_title{line-height:1;margin-bottom:5px;}#modal-global-contact-us .contact-form .info-zone_contact_link{color:var(--colorTxt);}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:58px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form .hours_box{margin-bottom:52px;}}#modal-global-contact-us .contact-form .socials_zone{padding-left:45px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone{padding-left:0;}}#modal-global-contact-us .contact-form .socials_zone li{margin-bottom:10px;}#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:34px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:12px;}}#modal-global-contact-us .contact-form .success-message.success{margin-top:15px;color:var(--colorTxt);position:absolute;}#modal-global-contact-us .contact-form .success-message.hide{opacity:0;}#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:73px;}@media (max-width: 768px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:51px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:40px;}}#modal-global-contact-us .contact-form.one_contact .hours_box{margin-bottom:38px;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell{padding-left:0;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell i{display:none;}#modal-global-contact-us .contact-form.no_icon .socials_zone{padding-left:0;}#modal-global-contact-us .contact-form .pre-line{white-space:pre-line;}#modal-global-contact-us .lp-input-group{margin-bottom:40px;}#modal-global-contact-us .lp-input-group.m16{margin-bottom:16px;}#modal-global-contact-us .lp-disclaimer{margin-top:0;}#modal-global-contact-us .lp-input{border-color:#ffffff;}#modal-global-contact-us .lp-input:focus,#modal-global-contact-us .lp-input:active{border-color:#5e5e5e;}nav{color:#fff;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;z-index:102;}nav.scroll .logo .logo__img.light{display:block;}nav.scroll .logo .logo__img.dark{display:none;}nav .header{height:100px;-webkit-transform:translateY(24px);-moz-transform:translateY(24px);-ms-transform:translateY(24px);transform:translateY(24px);}@media (max-width: 768px){nav .header{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}}nav .header .container{max-width:1440px;padding:0 15px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;}@media (max-width: 1024px){nav .header .container{padding:0 15px;}}nav .header .navbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;min-height:70px;padding:8px 0 7px;width:100%;}nav .header .logo{z-index:911;position:relative;margin-right:10px;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:300px;}nav .header .logo a{overflow:hidden;display:inline-block;}nav .header .logo img{max-width:100%;max-height:52px;vertical-align:top;object-fit:contain;}@media (max-width: 1024px){nav .header .logo img{max-height:50px;}}nav .header .logo img.dark{display:none;}@media(max-width: 1024px){nav .header .logo img.dark{display:none!important;}}nav .header .logo img.light{display:block;}@media(max-width: 1024px){nav .header .logo img.light{display:inline-block!important;}}
39nav .header .logo__link{-webkit-animation-duration:1s;animation-duration:1s;overflow:hidden;}nav .header .logo__img.light{display:block;}nav .header .logo__img.dark{display:none;}nav .header .navigation{margin-left:auto;color:inherit;}@media (max-width: 1024px){nav .header .navigation{display:none;}}nav .header .navigation ul{position:relative;list-style-type:none;padding-left:0;margin-bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}nav .header .navigation ul li a span,nav .header .navigation ul li button span{position:relative;white-space:nowrap;}nav .header .navigation ul li a span:after,nav .header .navigation ul li button span:after{content:'';position:absolute;display:block;height:1px;background-color:#c6c6c6;width:0;bottom:0;left:0;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation ul li a:hover span:after,nav .header .navigation ul li button:hover span:after{width:100%;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation__item{padding:0;margin:0;}nav .header .navigation__link{display:block;padding:12px 13px;color:inherit;position:relative;font-size:13px;line-height:1.08;font-weight:700;letter-spacing:1.5px;background-color:transparent;border:none;cursor:pointer;text-align:left;text-transform:uppercase;}@media (max-width: 1280px){nav .header .navigation__link{padding:19px 10px;font-size:11.5px;}}nav .header .navigation__link .sub-nav-container .navigation__link:hover{background:#000000;}nav .header .navigation .sub-nav{position:absolute;bottom:0;padding:0;opacity:0;visibility:hidden;-webkit-transition:all .2s ease;transition:all .2s ease;-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav .header .navigation .sub-nav ul{margin:0;padding:12px 0;display:block;background-color:rgba(26, 26, 26, .75);max-width:300px;}nav .header .navigation .sub-nav__item{position:relative;display:block;margin:0;text-align:left;}nav .header .navigation .sub-nav__item:last-child{border-bottom-color:transparent;}nav .header .navigation .sub-nav__link{display:block;max-width:300px;color:#ffffff;margin:0;line-height:1;letter-spacing:1.5px;padding:19px 13px;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, 100%);-moz-transform:translate(0, 100%);-ms-transform:translate(0, 100%);transform:translate(0, 100%);}nav .header .navigation .sub-nav.visible+.navigation__link{background:#000000;}nav .header .hamburger{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:none;padding:28px 13px;background-color:transparent;color:inherit;vertical-align:middle;cursor:pointer;outline:none;z-index:915;opacity:1;}nav .header .hamburger__bars{position:relative;display:block;width:26px;height:2px;background-color:currentColor;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before,nav .header .hamburger__bars:after{content:'';display:block;width:26px;height:2px;background-color:currentColor;position:absolute;left:0;top:0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before{-webkit-transform:translateY(-9px);-moz-transform:translateY(-9px);-ms-transform:translateY(-9px);transform:translateY(-9px);}nav .header .hamburger__bars:after{-webkit-transform:translateY(9px);-moz-transform:translateY(9px);-ms-transform:translateY(9px);transform:translateY(9px);}nav .header .hamburger:hover{text-shadow:.5px 0 0,-.5px 0 0;}nav .header .hamburger:hover .hamburger__bars:before{-webkit-transform:translateY(-7px);-moz-transform:translateY(-7px);-ms-transform:translateY(-7px);transform:translateY(-7px);}nav .header .hamburger:hover .hamburger__bars:after{-webkit-transform:translateY(7px);-moz-transform:translateY(7px);-ms-transform:translateY(7px);transform:translateY(7px);}nav .header .hamburger.active .hamburger__bars{-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);opacity:0;}nav .header .hamburger.active .hamburger__bars:before{display:none;}nav .header .hamburger.active .hamburger__bars:after{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);}nav .content-container{-webkit-transition:0.2s all ease;transition:0.2s all ease;}nav.scroll .content-container,nav .scroll .content-container{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}nav.scroll .content-container .navigation__link,nav .scroll .content-container .navigation__link{visibility:visible!important;}nav.scroll .content-container .navigation .sub-nav,nav .scroll .content-container .navigation .sub-nav{-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav.scroll .content-container .navigation .sub-nav ul,nav .scroll .content-container .navigation .sub-nav ul{padding:0;}nav.scroll .content-container .navigation .sub-nav.visible,nav .scroll .content-container .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, calc(100% + 23px));-moz-transform:translate(0, calc(100% + 23px));-ms-transform:translate(0, calc(100% + 23px));transform:translate(0, calc(100% + 23px));}nav .dark-opening{background-color:rgb(26, 26, 26)!important;}nav nav.dark-opening .header{margin-top:0;}nav #ctaShowButton,nav #ctaMessage{display:none!important;}nav #ctaShowButton{display:none;opacity:0;pointer-events:none;}nav .search{cursor:pointer;}nav .search svg{display:block;}nav .buttons-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;
39-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}body>div.sidemenu{background-color:rgba(255, 255, 255, 1);color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;}body>div.sidemenu{width:auto!important;left:auto!important;right:-100%;top:0;background-color:transparent;-webkit-transition:right .3s;transition:right .3s;display:block;}body>div.sidemenu:not(.visible){pointer-events:none;visibility:hidden;}body>div.sidemenu.visible{right:0;}body>div.sidemenu .sidebar{position:relative;width:400px;height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-top:40px;padding-bottom:100px;background-color:var(--bgColor, #fff);color:var(--fontColor, #000);font-family:var(--global-primary-font-family);font-size:21px;line-height:1.333333;letter-spacing:.5px;-webkit-transition:all .3s ease-in;transition:all .3s ease-in;}@media (max-width: 767px){body>div.sidemenu .sidebar{width:270px;font-size:18px;}}body>div.sidemenu .sidebar__content{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%;padding-left:40px;padding-right:40px;text-align:center;overflow-y:auto;}@media (max-width: 767px){body>div.sidemenu .sidebar__content{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;padding-left:20px;padding-right:20px;}}body>div.sidemenu .sidebar__close{position:absolute;right:30px;top:30px;display:inline-block;width:38px;height:38px;padding:10px;border:none;border-radius:0;background:transparent;color:inherit;z-index:1;cursor:pointer;}body>div.sidemenu .sidebar__close:before,body>div.sidemenu .sidebar__close:after{content:'';display:block;width:22px;height:2px;background-color:currentColor;position:absolute;left:50%;top:50%;}body>div.sidemenu .sidebar__close:before{-webkit-transform:translate(-50%, -50%) rotate(45deg);-moz-transform:translate(-50%, -50%) rotate(45deg);-ms-transform:translate(-50%, -50%) rotate(45deg);transform:translate(-50%, -50%) rotate(45deg);}body>div.sidemenu .sidebar__close:after{-webkit-transform:translate(-50%, -50%) rotate(-45deg);-moz-transform:translate(-50%, -50%) rotate(-45deg);-ms-transform:translate(-50%, -50%) rotate(-45deg);transform:translate(-50%, -50%) rotate(-45deg);}@media (max-width: 767px){body>div.sidemenu .sidebar__close{right:10px;top:10px;}}body>div.sidemenu .sidebar__close:focus{outline:none;}body>div.sidemenu .sidebar__nav{list-style:none;padding:0;margin:auto 0;}body>div.sidemenu .sidebar__nav-item{margin:0;padding-top:4px;padding-bottom:4px;border-bottom:1px solid hsla(
40      var(--bgColor_H, 0),
41      var(--bgColor_S, 0%),
42      calc(50% + (var(--bgColor_L, 100%) - 50%) * 0.9),
43      var(--bgColor_A, 1)
44    );}body>div.sidemenu .sidebar__nav-link{display:inline-block;padding:10px;border:none;border-radius:0;background:transparent;text-transform:none;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__nav-link:focus{outline:none;}body>div.sidemenu .sidebar__subnav{list-style:none;padding:4px 0 10px;margin:0;font-size:17px;}@media (max-width: 767px){body>div.sidemenu .sidebar__subnav{font-size:14px;letter-spacing:.3px;}}body>div.sidemenu .sidebar__subnav-item{margin-bottom:10px;}body>div.sidemenu .sidebar__subnav-item:last-child{margin-bottom:0;}body>div.sidemenu .sidebar__subnav-link{display:inline-block;padding:0;border:none;border-radius:0;background:transparent;text-transform:none;opacity:.7;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__subnav-link:focus{outline:none;}body>div.sidemenu .sub-nav{visibility:hidden;opacity:0;max-height:0;-webkit-transition:all .3s;transition:all .3s;}body>div.sidemenu .sub-nav.visible{display:block;visibility:visible;opacity:1;max-height:100vh;}body>div.sidemenu .sub-nav.visible+.main-nav{color:#7a7a7a;}body>div.sidemenu .sub-nav.visible+.main-nav:after{margin-left:40px;border-bottom:2px solid var(--fontColor, #7a7a7a);border-right:2px solid var(--fontColor, #7a7a7a);}body>div.sidemenu .sub-nav-container{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}body>div.sidemenu .sub-nav-container:hover .main-nav:after{border-bottom:2px solid var(--fontColor, #7a7a7a);border-right:2px solid var(--fontColor, #7a7a7a);}body>div.sidemenu .sub-nav-container .main-nav{position:relative;display:inline-block;}body>div.sidemenu .sub-nav-container .main-nav:after{content:'';display:inline-block;position:relative;width:8px;height:8px;margin-left:25px;-webkit-transform:rotate(45deg) translateX(-100%);-moz-transform:rotate(45deg) translateX(-100%);-ms-transform:rotate(45deg) translateX(-100%);transform:rotate(45deg) translateX(-100%);border-bottom:2px solid var(--fontColor, #000000);border-right:2px solid var(--fontColor, #000000);top:0;bottom:auto;left:auto;-webkit-transition:0.5s all ease;transition:0.5s all ease;background-color:transparent;}body>div.sidemenu #main-section .sidebar{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}footer{background-color:#fff;color:#000000;--fontColor:#000000;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;--greyColor:hsla(
45var(--fontColor_H),
46var(--fontColor_S),
47calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445),
48var(--fontColor_A));}footer .redesign .inp--dark-bg input{color:var(--fontColor);border-color:hsla(
49      var(--fontColor_H),
50      var(--fontColor_S),
51      calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445),
52      var(--fontColor_A));}footer .redesign .inp--dark-bg input:hover{border-color:var(--fontColor);}footer .redesign .inp+.inp{margin-top:24px;}footer .redesign .btn--primary-light{border-color:var(--fontColor);color:var(--fontColor);}footer .redesign .btn--primary-light:hover{background-color:var(--fontColor);color:var(--bgColor);}footer.is-background-color-light .redesign .btn--primary-light{border-width:1px;}footer .redesign .socials--grey{-webkit-box-pack:end;-ms-flex-pack:end;
52-webkit-justify-content:flex-end;justify-content:flex-end;}footer .redesign .socials--grey .socials__link{background-color:hsla(
53      var(--bgColor_H),
54      var(--bgColor_S),
55      calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.15),
56      var(--bgColor_A));color:var(--greyColor);}footer .redesign .socials--grey .socials__link svg{fill:var(--greyColor);}footer .redesign .socials--grey .socials__link:hover{background-color:hsla(
57        var(--bgColor_H),
58        var(--bgColor_S),
59        calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.4),
60        var(--bgColor_A));color:var(--fontColor);}footer .redesign .socials--grey .socials__link:hover svg{fill:var(--fontColor);}footer .redesign.footer .grey-text{color:var(--fontColor);}footer .footer{position:relative;padding-top:60px;padding-bottom:30px;}@media (max-width: 560px){footer .footer{padding-top:10px;}}@media (max-width: 500px){footer .footer{padding-bottom:70px;}}footer .footer .text_content_wrap p{margin-bottom:15px;}footer .footer .text_content_wrap p:last-of-type{margin-bottom:0;}footer .footer .container{max-width:1440px;}@media (max-width: 768px){footer .footer .container{padding-left:25px;padding-right:25px;}}@media (max-width: 560px){footer .footer .container{padding-left:20px;padding-right:20px;}}footer .footer h3{margin:0 0 15px 0;}footer .footer h5{text-transform:capitalize;}footer .footer .info-wrap{margin-bottom:40px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}footer .footer .info-wrap .agent_box{width:70%;}@media (max-width: 1280px){footer .footer .info-wrap .agent_box{width:50%;}}@media (max-width: 768px){footer .footer .info-wrap .agent_box{width:100%;}}footer .footer .info-wrap .newsletter_box{width:30%;}@media (max-width: 1280px){footer .footer .info-wrap .newsletter_box{width:50%;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box{width:100%;}}footer .footer .info-wrap .newsletter_box--padding{padding-top:44px;}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box--padding{padding-top:0;}}footer .footer .info-wrap .newsletter_box .contact_title{margin-bottom:13px;line-height:1.6;}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .info-wrap-contact_cell{margin-bottom:0;padding-left:0;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .icon_text{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:22px;position:relative;}footer .footer .info-wrap .newsletter_box .icon_text i{position:relative;width:30px;margin-right:20px;}footer .footer .info-wrap .newsletter_box .icon_text .contact_title{margin-bottom:0;}}@media (max-width: 768px){footer .footer .info-wrap .newsletter_box .info-wrap-contact_zone{margin-bottom:0;}}footer .footer .info-wrap-contact{position:relative;}footer .footer .info-wrap-contact_zone{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-bottom:39px;}@media (max-width: 768px){footer .footer .info-wrap-contact_zone{margin-bottom:21px;}footer .footer .info-wrap-contact_zone:last-child{margin-bottom:51px;}}footer .footer .info-wrap-contact_zone i{position:absolute;left:0;display:block;}footer .footer .info-wrap-contact_zone i svg path{fill:currentColor;}footer .footer .info-wrap-contact_zone h4{margin:0 0 13px 0;width:100%;}footer .footer .info-wrap-contact_cell{position:relative;padding-left:50px;width:400px;font-size:14px;text-transform:uppercase;font-weight:bold;letter-spacing:1.5px;}@media (max-width: 1280px){footer .footer .info-wrap-contact_cell:first-of-type{margin-bottom:21px;}}footer .footer .info-wrap-contact_cell .contact_title{line-height:1;margin-bottom:5px;}footer .footer .info-wrap-contact_link{color:var(--greyColor);position:relative;}@media (max-width: 560px){footer .footer .info-wrap-contact_link{letter-spacing:0;}}footer .footer .hvr_animation{position:relative;-webkit-text-decoration:none!important;text-decoration:none!important;}footer .footer .hvr_animation:after{content:'';position:absolute;
60left:0;bottom:0;width:0%;height:1px;background:var(--greyColor);-webkit-transition:.3s linear;transition:.3s linear;}footer .footer .hvr_animation:hover:after{width:100%;}footer .footer .hvr_animation.underlined:after{width:100%;}footer .footer .hvr_animation.underlined:hover:after{width:0%;}footer .footer .form-content{padding:0!important;}footer .footer .form-content label{color:var(--fontColor);text-transform:none;letter-spacing:1;}footer .footer .form-content input{padding:2px 24px 2px 0;}footer .footer .form-content .subscribe_btn{margin-top:20px;position:relative;}footer .footer .form-content .subscribe_btn i{font-size:18px;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);opacity:0;}footer .footer .form-content.success i{opacity:1;}footer .footer .form-content.success .subscribe_btn span{opacity:0;}footer .footer .form-content.success .hide{opacity:0;}footer .footer .form-content.success .hide +span{opacity:1;}footer .footer .text_footer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:39px;}@media (max-width: 1280px){footer .footer .text_footer{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}@media (max-width: 560px){footer .footer .text_footer{text-align:center;}}footer .footer .text_footer p{white-space:normal;}footer .footer .text_footer .images_box{max-width:186px;width:100%;margin-right:43px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media (max-width: 560px){footer .footer .text_footer .images_box{margin:0 auto 20px auto;}}@media (max-width: 1280px){footer .footer .text_footer .img_size{margin-bottom:20px;}}@media (max-width: 560px){footer .footer .text_footer .img_size{margin-bottom:0;}}footer .footer .text_footer .img_size img{width:100%;height:100%;object-fit:contain;}footer .footer .first_text_footer .img_size{width:100%;height:63px;}footer .footer .first_text_footer .img_size img{width:100%;height:100%;object-fit:contain;}@media (max-width: 768px){footer .footer .first_text_footer{margin-bottom:51px;}}footer .footer .second_text_footer .first_img_size{width:45px;height:45px;margin-right:15px;}footer .footer .second_text_footer .second_img_size{width:100px;height:45px;}@media (max-width: 560px){footer .footer .second_text_footer{margin-bottom:21px;}}footer .footer .info-privacy{padding-top:45px;padding-bottom:30px;border-top:1px solid hsla(
61        var(--bgColor_H),
62        var(--bgColor_S),
63        calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55),
64        var(--bgColor_A));}@media (max-width: 768px){footer .footer .info-privacy{padding-top:0;border-top:none;}}footer .footer .info-privacy__row{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}footer .footer .info-privacy .copy_zone{font-size:18px;}@media (min-width: 1350px){footer .footer .info-privacy .copy_zone{text-align:center;}}@media (min-width: 1281px){footer .footer .info-privacy .copy_zone{padding-top:8px;padding-bottom:8px;}}@media (max-width: 768px){footer .footer .info-privacy .copy_zone{text-align:center;margin-bottom:10px;padding-top:45px;border-top:1px solid hsla(
65            var(--bgColor_H),
66            var(--bgColor_S),
67            calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55),
68            var(--bgColor_A));}}footer .footer .info-privacy .copy_zone a{color:var(--greyColor);}footer .footer .info-privacy .powered_zone{font-size:18px;}@media (min-width: 1281px){footer .footer .info-privacy .powered_zone{padding-top:8px;padding-bottom:8px;}}@media (max-width: 1280px){footer .footer .info-privacy .powered_zone{text-align:center;}}@media (max-width: 768px){footer .footer .info-privacy .powered_zone{text-align:center;margin-bottom:24px;}}footer .footer .info-privacy .powered_zone a{color:var(--greyColor);}@media (min-width: 1281px){footer .footer .info-privacy .socials_zone{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}@media (max-width: 1280px){footer .footer .info-privacy .socials_zone{width:100%;margin-top:20px;-webkit-box-pack:start;-ms-flex-pack:start;
68-webkit-justify-content:flex-start;justify-content:flex-start;}}@media (max-width: 768px){footer .footer .info-privacy .socials_zone{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:0;margin-bottom:20px;}footer .footer .info-privacy .socials_zone li{padding:0 7px 10px 7px;}}footer .footer.one_contact .type_user{margin-bottom:73px;}@media (max-width: 768px){footer .footer.one_contact .type_user{margin-bottom:51px;}}footer .footer.no_newsletter h3{margin-bottom:46px;}footer .footer.no_newsletter .newsletter_box{display:none;}footer .footer.no_newsletter .info-wrap-contact{width:calc(70% + 230px);width:100%;padding-left:230px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact{padding-left:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact{width:100%;}}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_cell{width:50%;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_cell{width:100%;}}footer .footer.no_newsletter .info-wrap-contact h4{position:absolute;margin-top:-8px;left:0;max-width:200px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;width:100%;margin-bottom:20px;margin-top:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;}}footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:71px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:39px;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:51px;}}footer .footer.no_newsletter .info-wrap-contact_zone:last-child{margin-bottom:0;}footer .footer.no_icon .info-wrap-contact_cell{padding-left:0;}footer .footer.no_icon .info-wrap-contact_cell i{display:none;}footer .footer.no-names .info-wrap-contact{padding-left:0;}footer .form-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-left:-15px;margin-right:-15px;}@media (min-width: 1281px){footer .form-row{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}@media (max-width: 900px){footer .form-row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;padding-left:15px;padding-right:15px;}@media (min-width: 768px){footer .form-col{-webkit-flex:1 1 0;-ms-flex:1 1 0;flex:1 1 0;}}@media (min-width: 768px){footer .form-col--socials{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}}@media (min-width: 1281px){footer .form-col--socials{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;}}@media (max-width: 768px){footer .form-col--socials{-webkit-order:-1;-ms-flex-order:-1;order:-1;}}@media (min-width: 1281px){footer .form-col--xl-auto{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;}}footer .additional-links-separator{display:block;width:100%;height:0;overflow:hidden;}@media (min-width: 768px){footer .additional-links-separator{display:inline;width:auto;height:auto;}footer .additional-links-separator:before{content:"|";}}footer .h-pot{height:0;width:0;overflow:hidden;visibility:hidden;}footer .img-wrap{max-width:100px;width:100%;display:block;margin-right:20px;}@media (max-width: 900px){footer .img-wrap{margin-right:0;margin-bottom:10px;}}footer .img-wrap img{width:100%;object-fit:cover;}footer .powered-box{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;}@media (max-width: 900px){footer .powered-box{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col--copyright{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:10px 0;}footer .luxury-link{white-space:nowrap;}footer .footer__disclaimers{padding-top:24px;padding-bottom:24px;}@media (max-width: 900px){footer .footer__disclaimers{text-align:center;}}body>div.mobile-contact-wrapper .mobile-contact{display:none;position:fixed;right:30px;bottom:25px;z-index:91;}body>div.mobile-contact-wrapper .mobile-contact a{-webkit-text-decoration:none;text-decoration:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;
68-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:55px;height:55px;margin-bottom:15px;background-color:#fff;font-size:22px;border:2px solid hsla(0,0%,49.8%,.3);border-radius:90px;margin-left:1px;}body>div.mobile-contact-wrapper .mobile-contact a i{color:#000;}body>div.mobile-contact-wrapper .mobile-contact .buttons-holder{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}body>div.mobile-contact-wrapper .mobile-contact.dark a{background-color:#000;}body>div.mobile-contact-wrapper .mobile-contact.dark a i{color:#fff;}@media (max-width: 560px){body>div.mobile-contact-wrapper .mobile-contact{display:block;}}
69        </style>
70    <style id="custom-style-css">.button-style-1{color:rgba(0,0,0,1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0,0,0,1)!important;}.button-style-1:hover{color:rgba(255,255,255,1)!important;background-color:rgba(0,0,0,1)!important;border-color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-1{color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-1:hover{color:#000000!important;}.social_icons-style-1 a{border-color:rgba(0, 0, 0, 0)!important;background-color:rgba(0, 0, 0, 0)!important;color:#000000!important;}.social_icons-style-1 a:hover{border-color:rgba(0, 0, 0, 0)!important;background-color:rgba(0, 0, 0, 0)!important;color:#575757!important;}.social_icons-style-1 a i{color:inherit!important;}
70.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.pagination-style-1 li a{color:#000000!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-1 li a:hover{color:#FFFFFF!important;background-color:#000000!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-1 li.active a{color:#FFFFFF!important;background-color:#000000!important;border-color:rgba(0, 0, 0, 0)!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:#FFFFFF!important;}.social_icons-style-2 a{border-color:rgba(0, 0, 0, 0)!important;background-color:rgba(0, 0, 0, 0)!important;color:#FFFFFF!important;}.social_icons-style-2 a:hover{border-color:rgba(0, 0, 0, 0)!important;background-color:rgba(0, 0, 0, 0)!important;color:#EBEBEB!important;}.social_icons-style-2 a i{color:inherit!important;}.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.pagination-style-2 li a{color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-2 li a:hover{color:#000000!important;background-color:#FFFFFF!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-2 li.active a{color:#000000!important;background-color:#FFFFFF!important;border-color:rgba(0, 0, 0, 0)!important;}.button-style-2{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-2:hover{color:#000000!important;background-color:#FFFFFF!important;border-color:#FFFFFF!important;}</style>
71        <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode
72             defaults, and dynamically loads the locale + main (and banner if needed). -->
73        
73<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="3c006d45-b4eb-4033-b25f-50521cf2281b"></script>
73
74
75
76        
76<script>
77            (function utmParse() {
78                const url = new URL(window.location.href);
79                if (url.search) {
80                    const utm = url.search.split(/\?|&/g).reduce((acc, current) => {
81                        const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g);
82                        if (matched) {
83                        acc[matched[0]] = current.replace(`${matched[0]}=`, '');
84                        }
85                        return acc;
86                    }, {});
87                    if (Object.keys(utm).length) {
88                        window.localStorage.setItem('utm_vars', JSON.stringify(utm));
89                    } else {
90                        // Remove old utm vars
91                        window.localStorage.removeItem('utm_vars');
92                    }
93                }
94                // Set referrer in local storage
95                // This is meant to be stored once to avoid self-referrals and to have the first referrer only.
96                if (!window.localStorage.getItem('referrer')) {
97                    // Capture the Referrer URL
98                    const referrer = document.referrer;
99                    if (referrer) {
100                        // Only store the referrer if it comes from outside the current domain (to avoid self-referrals)
101                        const currentDomain = window.location.hostname;
102                        const referrerDomain = new URL(referrer).hostname;
103
104                        if (referrerDomain !== currentDomain) {
105                            // Store it in localStorage
106                            localStorage.setItem('referrer', referrer);
107                        }
108                    }
109                }
110            })();
111        </script>
111
112        <!-- Bing Webmaster Tools Verification -->
113<script>
114         // Check if on the homepage before the body loads
115        if (window.location.pathname === '/' || window.location.pathname === '/index.html') {
116        document.write('<meta name="msvalidate.01" content="9EB600EF5454758CD5017B55EA1D40A2" />');
117        }
118</script>
118
119
120<script type="text/javascript">
121    // Function to inject JSON-LD schema
122    function injectSchema(schema) {
123        var script = document.createElement('script');
124        script.type = 'application/ld+json';
125        script.text = JSON.stringify(schema);
126        document.head.appendChild(script);
127    }
128    
129    // Check if the current path is the homepage
130    if (window.location.pathname === '/') {
131        var realEstateAgentSchema = {
132            "@context": "https://schema.org",
133            "@type": "RealEstateAgent",
134            "name": "Noble Black & Partners",
135            "image": "https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/341a255e-50bd-40f3-832e-db80120c9357",
136            "@id": "https://nobleblackandpartners.com/#realEstateAgent",
137            "url": "https://nobleblackandpartners.com/",
138            "telephone": "(212)355-3550",
139            "email": "[email protected]",
140            "description": "Manhattan and Hamptons luxury real estate team at The Corcoran Group, led by top-ranked broker Noble Black, offering private residential advisory services across NYC and the Hamptons.",
141            "address": {
142                "@type": "PostalAddress",
143                "streetAddress": "590 Madison Ave",
144                "addressLocality": "New York",
145                "addressRegion": "NY",
146                "postalCode": "10022",
147                "addressCountry": "US"
148            },
149            "geo": {
150                "@type": "GeoCoordinates",
151                "latitude": 40.762106,
152                "longitude": -73.971388
153            },
154            "openingHoursSpecification": {
155                "@type": "OpeningHoursSpecification",
156                "dayOfWeek": [
157                    "Monday",
158                    "Tuesday",
159                    "Wednesday",
160                    "Thursday",
161                    "Friday",
162                    "Saturday",
163                    "Sunday"
164                ],
165                "opens": "00:00",
166                "closes": "23:59"
167            },
168            "employee": {
169                "@type": "Person",
170                "@id": "https://nobleblackandpartners.com/#person",
171                "name": "Noble Black",
172                "jobTitle": "Licensed Associate Real Estate Broker",
173                "image": "https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/17543460-5646-49f9-ad11-e9544edc8f71",
174                "url": "https://nobleblackandpartners.com/agent/noble-black",
175                "telephone": "(212)909-8460",
176                "email": "[email protected]",
177                "worksFor": {
178                    "@id": "https://nobleblackandpartners.com/#realEstateAgent"
179                },
180                "sameAs": [
181                    "https://www.linkedin.com/in/nobleblack"
182                ]
183            },
184            "sameAs": [
185                "https://www.facebook.com/NobleBlackTeam",
186                "https://www.instagram.com/nobleblack1/",
187                "https://www.youtube.com/channel/UC4eJzM896qwaS9I-oRGo0-w/feed"
188            ],
189            "knowsAbout": [
190                "Luxury Real Estate",
191                "New Development Marketing",
192                "Co-ops & Condominiums",
193                "Townhouses",
194                "Branded Residences",
195                "Prime & Super-Prime Residential Sales",
196                "Hamptons Real Estate",
197                "Client Privacy & Discretion"
198            ]
199        };
200        injectSchema(realEstateAgentSchema);
201    }
202</script>
202
203
204    <!-- GOOGLE TRANSLATE STYLES are moved to external CSS -->
205</head>
206<body>
207    <div id="google_translate_element" style="display: none"></div>
208
209        <nav id="global-navbar" data-el-id="43e7a874-fb1e-4cdd-91fe-eb6bf5b9179b">
210            <div class="redesign">
211  <div class="content-container header">
212    <div class="container header__container">
213      <div class="navbar">
214        <div class="logo">
215          <a href="/" class="logo__link">
216            <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/a49a6a3c-dc1a-4671-9b5e-fd6286da66fb" 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/a49a6a3c-dc1a-4671-9b5e-fd6286da66fb 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/a49a6a3c-dc1a-4671-9b5e-fd6286da66fb 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/a49a6a3c-dc1a-4671-9b5e-fd6286da66fb 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/a49a6a3c-dc1a-4671-9b5e-fd6286da66fb 1920w" class="logo__img light" alt="Noble Black &amp; Partners, team at the Corcoran Group">
217            <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/341a255e-50bd-40f3-832e-db80120c9357" 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/341a255e-50bd-40f3-832e-db80120c9357 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/341a255e-50bd-40f3-832e-db80120c9357 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/341a255e-50bd-40f3-832e-db80120c9357 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/341a255e-50bd-40f3-832e-db80120c9357 1920w" class="logo__img dark" alt="Noble Black &amp; Partners, Team at the Corcoran Group">
218          </a>
219        </div>
220        <div class="navigation">
221          <ul>
222            <li class="navigation__item">
223              <a data-type="CONTACT_US" class="navigation__link wow fadeInUp"><span>Contact Us</span></a>
224            </li>
225          </ul>
226        </div>
227        <div class="buttons-wrapper">
228          <button type="button" class="hamburger-component hamburger">
229            <span class="hamburger__bars"></span>
230          </button>
231        </div>
232      </div>
233    </div>
234  </div>
235</div>
236
237        </nav>
238        <div id="global-sidemenu" class="sidemenu" data-el-id="11fa925d-d2dd-4213-a0fa-d46f769e2c18">
239            <div class="sidebar">
240  
241  <button class="toggle sidebar__close close"></button>
242  <div class="sidebar__content">
243
244    <ul class="sidebar__nav">
245      <li class="sidebar__nav-item">
246        <a  href="/" class="sidebar__nav-link">Home</a>
247      </li>
248      <li class="sidebar__nav-item">
249        <a  href="/about" class="sidebar__nav-link">About Noble Black & Partners</a>
250      </li>
251      <li class="sidebar__nav-item">
252        <a  href="/team" class="sidebar__nav-link">Our Team</a>
253      </li>
254      <li class="sidebar__nav-item sub-nav-container">
255        <div class="sub-nav">
256          <ul class="sidebar__subnav">
257            <li class="sidebar__subnav-item"><a  href="/properties/sale#section-20099172-5b83-4663-b7ee-b00d12930db0" class="sidebar__subnav-link">New York City</a></li>
258            <li class="sidebar__subnav-item"><a  href="/properties/sale#section-0a7da5eb-31a3-47e5-b8dc-f0a5dc8ce3ee" class="sidebar__subnav-link">The Hamptons</a></li>
259          </ul>
260        </div>
261        <a href="#" class="sidebar__nav-link link main-nav">Exclusive Listings</a>
262      </li>
263      <li class="sidebar__nav-item">
264        <a  href="/properties/sold" class="sidebar__nav-link">Notable Sales</a>
265      </li>
266      <li class="sidebar__nav-item">
267        <a  href="/properties/global" class="sidebar__nav-link">Global Listings</a>
268      </li>
269      <li class="sidebar__nav-item">
270        <a  href="/developments" class="sidebar__nav-link">New Development</a>
271      </li>
272      <li class="sidebar__nav-item">
273        <a  href="/the-watchcase" class="sidebar__nav-link">The Watchcase</a>
274      </li>
275      <li class="sidebar__nav-item sub-nav-container">
276        <div class="sub-nav">
277          <ul class="sidebar__subnav">
278            <li class="sidebar__subnav-item"><a  href="/press" class="sidebar__subnav-link">Press</a></li>
279            <li class="sidebar__subnav-item"><a  href="/appearances" class="sidebar__subnav-link">Appearances</a></li>
280            <li class="sidebar__subnav-item"><a  href="/blog" class="sidebar__subnav-link">Blog</a></li>
281          </ul>
282        </div>
283        <a href="#" class="sidebar__nav-link link main-nav">Press &amp; Media</a>
284      </li>
285      <li class="sidebar__nav-item">
286        <a  href="/neighborhoods" class="sidebar__nav-link">Neighborhoods</a>
287      </li>
288      <li class="sidebar__nav-item">
289        <a  href="/contact" class="sidebar__nav-link">Contact Us</a>
290      </li>
291    </ul>
292  </div>
293</div>
294        </div>
295        <div  id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="ca33406a-b24a-4100-b315-87fd53d5adc2">
296            <div class="mobile-contact ">
297  <div class="buttons-holder">
298    <a href="/cdn-cgi/l/email-protection#f39d9c919f96b3909c81909c81929ddd909c9e">
299      <i class="lp-i lp-i--envelope"></i>
300    </a>
301    <a href="tel:2129098460">
302      <i class="lp-i lp-i--phone"></i>
303    </a>
304  </div>
305</div>
306
307        </div>
308        <section  class="image-section is-font-color-light is-background-color-light" id="section-8f1f5c8d-8a03-4477-9806-d2c1c545bc21" data-el-id="e6c6941b-dd32-4d6b-b4aa-56593f2d58bb">
309    <div class="redesign custom-intro">
310    <div class="container">
311        <h1 class="custom-intro__title">Meet the Team</h1>
312        
313            <p class="custom-intro__subtitle serif">Get to know our talented team.</p>
314    </div>
315</div>
316
317</section>
318<section id="section-9246491e-d5f8-41a8-a437-7e55d6487d07"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="4fd88bff-4528-4094-a238-bc747e38f1f6">
vendor: 109 bytes, lines 318-319
318
319<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
319<script type="text/x-handlebars-template" class="gridItem pagination-script"><div class="team-member__container">
320  <a class="team-member__link" href="/agent/{{slug}}">
321    <div class="team-member__image-wrap">
322      <div class="team-member__image">
323        {{{mediaImage avatar alt=(concat firstName " " lastName) sizes="(max-width: 768px) 100vw, (max-width: 1000px) 50vw, 33vw"}}}
324      </div>
325      <div class="team-member__hover">
326        <span class="btn btn--primary-dark team-member__btn button-style-2">LEARN MORE</span>
327      </div>
328    </div>
329    <div class="team-member__info">
330      <span class="team-member__name">{{firstName}} {{lastName}}</span>
331      <span class="team-member__role">{{position}}</span>
332    </div> 
333  </a>
334</div>
335</script>
335<div class="team-grid redesign">
336  <div class="lp-container">
337    <div class="lp-title-group">
338      
339      <h2 class="lp-h2">.</h2>
340      <p class="lp-text--subtitle lp-pre-line"><h2 class="lp-h2 custom-h2">Partners in the <span class="italic">noble</span> pursuit of real estate</h2></p>
341    </div>
342    
343    <div class="js-sync-flag" style="display: none;"></div>
344    
345    
346    
347    
348    <div class="team-grid__wrapper   data-container">
349        <div class="team-member__container">
350          <a class="team-member__link" href="/agent/noble-black">
351            <div class="team-member__image-wrap">
352              <div class="team-member__image">
353                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/17543460-5646-49f9-ad11-e9544edc8f71" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/17543460-5646-49f9-ad11-e9544edc8f71 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/17543460-5646-49f9-ad11-e9544edc8f71 1053w" sizes="(max-width: 768px) 100vw, (max-width: 1000px) 50vw, 33vw" alt="Noble Black in a blue suit and patterned teal tie, standing with arms crossed." class="portrait" loading="lazy">
354              </div>
355              <div class="team-member__hover">
356                <span class="btn btn--primary-dark team-member__btn button-style-2">LEARN MORE</span>
357              </div>
358            </div>
359            <div class="team-member__info">
360              <span class="team-member__name">Noble Black</span>
361              <span class="team-member__role">Licensed Associate Real Estate Broker</span>
362            </div> 
363          </a>
364        </div>
365        <div class="team-member__container">
366          <a class="team-member__link" href="/agent/justin-figari">
367            <div class="team-member__image-wrap">
368              <div class="team-member__image">
369                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/41075ca5-8272-4eb1-abcb-2e5243288a0d" alt="Justin Figari wearing a dark suit and white shirt." class="portrait" loading="lazy">
370              </div>
371              <div class="team-member__hover">
372                <span class="btn btn--primary-dark team-member__btn button-style-2">LEARN MORE</span>
373              </div>
374            </div>
375            <div class="team-member__info">
376              <span class="team-member__name">Justin  Figari</span>
377              <span class="team-member__role">Partner | Lic. Assoc. RE Broker</span>
378            </div> 
379          </a>
380        </div>
381        <div class="team-member__container">
382          <a class="team-member__link" href="/agent/jennifer-kaufman-stillman">
383            <div class="team-member__image-wrap">
384              <div class="team-member__image">
385                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/beddfc4f-392d-443d-83f8-990c1e532f18" alt="Jennifer (Kaufman) Stillman smiling in a teal jacket and white blouse." class="portrait" loading="lazy">
386              </div>
387              <div class="team-member__hover">
388                <span class="btn btn--primary-dark team-member__btn button-style-2">LEARN MORE</span>
389              </div>
390            </div>
391            <div class="team-member__info">
392              <span class="team-member__name">Jennifer (Kaufman)  Stillman</span>
393              <span class="team-member__role">Partner | Lic Assoc. RE Broker</span>
394            </div> 
395          </a>
396        </div>
397        <div class="team-member__container">
398          <a class="team-member__link" href="/agent/corinne-cory-cahlon">
399            <div class="team-member__image-wrap">
400              <div class="team-member__image">
401                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/00d2de37-5423-4cb7-a784-6221df4bf58d" alt="Cory Cahlon in a bright green top with an embellished design." class="portrait" loading="lazy">
402              </div>
403              <div class="team-member__hover">
404                <span class="btn btn--primary-dark team-member__btn button-style-2">LEARN MORE</span>
405              </div>
406            </div>
407            <div class="team-member__info">
408              <span class="team-member__name">Cory Cahlon</span>
409              <span class="team-member__role">Partner | Lic. Assoc. RE Broker</span>
410            </div> 
411          </a>
412        </div>
413        <div class="team-member__container">
414          <a class="team-member__link" href="/agent/matthew-mackay">
415            <div class="team-member__image-wrap">
416              <div class="team-member__image">
417                <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/8c220adc-1fc5-4c7b-bbda-9bcc72a3d48f" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/8c220adc-1fc5-4c7b-bbda-9bcc72a3d48f 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/8c220adc-1fc5-4c7b-bbda-9bcc72a3d48f 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/8c220adc-1fc5-4c7b-bbda-9bcc72a3d48f 1920w" sizes="(max-width: 768px) 100vw, (max-width: 1000px) 50vw, 33vw" alt="Matthew Mackay smiling in dark glasses, a navy blazer, and white shirt." class="portrait" loading="lazy">
418              </div>
419              <div class="team-member__hover">
420                <span class="btn btn--primary-dark team-member__btn button-style-2">LEARN MORE</span>
421              </div>
422            </div>
423            <div class="team-member__info">
424              <span class="team-member__name">Matthew Mackay</span>
425              <span class="team-member__role">Partner | Lic. Assoc. RE Broker</span>
426            </div> 
427          </a>
428        </div>
429        <div class="team-member__container">
430          <a class="team-member__link" href="/agent/jesse-feldman">
431            <div class="team-member__image-wrap">
432              <div class="team-member__image">
433                <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/7d48937d-9bcd-4054-bd1b-5cd5ec1d7121" srcset="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/7d48937d-9bcd-4054-bd1b-5cd5ec1d7121 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/7d48937d-9bcd-4054-bd1b-5cd5ec1d7121 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/7d48937d-9bcd-4054-bd1b-5cd5ec1d7121 1500w" sizes="(max-width: 768px) 100vw, (max-width: 1000px) 50vw, 33vw" alt="Jesse Feldman smiling in a navy suit and white shirt." class="portrait" loading="lazy">
434              </div>
435              <div class="team-member__hover">
436                <span class="btn btn--primary-dark team-member__btn button-style-2">LEARN MORE</span>
437              </div>
438            </div>
439            <div class="team-member__info">
440              <span class="team-member__name">Jesse Feldman</span>
441              <span class="team-member__role">Licensed Associate Real Estate Broker</span>
442            </div> 
443          </a>
444        </div>
445        <div class="team-member__container">
446          <a class="team-member__link" href="/agent/connor-cuccinelli">
447            <div class="team-member__image-wrap">
448              <div class="team-member__image">
449                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/86cf9901-291f-46d0-b421-f27a5f082bd8" alt="Connor Cuccinelli smiling in a navy blazer and open-collar white shirt outdoors." class="portrait" loading="lazy">
450              </div>
451              <div class="team-member__hover">
452                <span class="btn btn--primary-dark team-member__btn button-style-2">LEARN MORE</span>
453              </div>
454            </div>
455            <div class="team-member__info">
456              <span class="team-member__name">Connor  Cuccinelli</span>
457              <span class="team-member__role">Licensed Real Estate Salesperson</span>
458            </div> 
459          </a>
460        </div>
461        <div class="team-member__container">
462          <a class="team-member__link" href="/agent/david-dubin">
463            <div class="team-member__image-wrap">
464              <div class="team-member__image">
465                <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/053a06fe-8f50-46c7-84e3-614230831b92" alt="David Dubin wearing amber glasses and a navy pinstripe suit with a green tie" class="portrait" loading="lazy">
466              </div>
467              <div class="team-member__hover">
468                <span class="btn btn--primary-dark team-member__btn button-style-2">LEARN MORE</span>
469              </div>
470            </div>
471            <div class="team-member__info">
472              <span class="team-member__name">David  Dubin</span>
473              <span class="team-member__role">Licensed Associate Real Estate Broker</span>
474            </div> 
475          </a>
476        </div>
477    </div>
478      <div class="lp-pagination pagination-container pagination-style-1"></div>
479    
480    
481    <div class="empty-message js-empty-message">
482      <h3 class="header2 empty-title">No result found</h3>
483    </div>
484  </div>
485</div>
486</section>
487<section  class="image-section is-font-color-light is-background-color-light" id="section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75" data-el-id="e6b1ae9f-5b8d-4ac5-a23f-bfb55ef91c3c">
488    
488<script>
489  (function(){
490    const sectionId = 'section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75'
491    const section = document.querySelector(`#${sectionId}`);
492    var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image');
493
494    if('false' === 'true') {
495      section.classList.add('parallax-enabled');
496      section.style.setProperty('--sectionBackground', sectionBg);
497      section.style.setProperty('background', 'none');
498    }
499  })()
500</script>
500
501<div class="redesign work-with-us ">
502	<div class="container">
503			<h2 class="serif">Work with us</h2>
504			<div class="description">Noble Black has been consistently ranked among the top brokers in New York City by The Wall Street Journal and The Real Deal.
505
506We offer the highest level of expertise, service, and integrity.</div>
507		<div class="btn-container">
508              <a
509                  role="button"
510                  data-type="CONTACT_US"
511                  class="btn btn--primary-light button-style-2"
512                  
513                  
514                  
515                  
516                  
517                  >
518                          Contact Us
519                  </a>
520    </div>
521	</div>
522</div> 
523</section>
524<section id="section-840698fa-42be-4d74-b5a0-781c1f3985f0"  class="solid-section is-font-color-dark is-background-color-light" data-el-id="1b5dc03a-76a1-431a-b1f1-9def4c75f9f5">
525  
525<script type="text/x-handlebars-template" class="jsIGTemplate">
526    {{#each items}}
527      <a href="{{permalink}}" target="_blank" class="feed__content__item wow fadeInUp insta-type-{{mediaType}}" data-wow-delay="1.{{@index}}s">
528      <div class=" feed__content__item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{else}}{{mediaUrl}}{{/ifEquals}}');">
529        <svg class=" feed__content__item__img__icon " xmlns=" http://www.w3.org/2000/svg " width=" 24px " height=" 24px " viewBox=" 0 0 1024 1024 " fill=" #ffffff ">
530          <path d=" M710.5 127c-51.4 2.9-99.2 20.1-140.6 50.6-12.2 9-24.6 20.5-40.9 38-8.9 9.6-16.6 17.4-17 17.4-.4 0-9-8.8-19.1-19.6-10.1-10.8-22.8-23.4-28.4-28.1-27.1-22.9-60.5-40-95-48.8-25.3-6.4-42.3-8.5-71.2-8.5-85.6 0-155.3 33.7-203.9 98.6-35.5 47.4-53 103-51.1 161.9 1.4 40.2 9.9 74 27.9 109.9 10.7 21.4 26 43.7 41.5 60.5 21.2 23.2 398.7 422.6 399.3 422.6.6 0 378.1-399.4 399.3-422.6 15.5-16.8 30.8-39.1 41.5-60.5 18-35.9 26.5-69.7 27.9-109.9 1.4-42.1-6.6-80.4-24.6-118-26.5-55.2-67.5-95.5-122.7-120.8-26.5-12.1-60.4-20.7-87.4-22.2-19.8-1.1-22.8-1.2-35.5-.5z "></path>
531        </svg>
532      </div>
533      {{#ifEquals mediaType 'VIDEO'}}
534        <div class="media-type-icon">
535          <svg width="30px" height="30px" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M19.369 6.042H2.082A2.086 2.086 0 000 8.125v13.71a2.086 2.086 0 002.083 2.083h17.285a2.086 2.086 0 002.084-2.083V8.125a2.086 2.086 0 00-2.084-2.083zM22.84 17.833l7.16 3.91V8.262l-7.16 3.908v5.662z"/></svg>
536        </div>
537      {{/ifEquals}}
538    </a> 
539    {{/each}}
540</script>
540
541<div class="feed redesign">
542  <div class="lp-container">
543    <span class="pre-title feature wow fadeInUp">Follow Us</span>
544    <a href="#" target="_blank" class="instagram-link jsIGLink"><h3 class="lp-h3 wow fadeInUp jsIGName jsShrink instagram-username" data-wow-delay=".5s"></h3></a>
545    <div class="feed__content jsIGContainer"></div>
546  </div>
547</div>
548</section>
549
550        <div id="modals" class="modals"></div>
551        <footer id="global-footer" class="is-font-color-dark is-background-color-light" data-el-id="874a9373-949d-4275-b72f-04c2a6ec373b">
552            <div class="footer redesign  no_newsletter no-names"> 
553    <div class="container">
554        <div class="info-wrap">
555            <div class="info-wrap-contact agent_box">
556                <div class="info-wrap-contact_zone">
557                    <div class="info-wrap-contact_cell">
558                        <i>
559                            <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg">
560                                <path d="M29.9821 6.49489C29.7931 6.35756 29.679 6.32046 29.4572 6.39228L20.298 9.41368L16.1952 8.03558L15.8172 9.41525L19.7644 10.7038V28.1462L9.89831 25.7069V22.1034H8.71438V25.7515L1.21616 28.2532V15.3945H0.0322266V29.2729C0.0322266 29.5077 0.130098 29.7279 0.321106 29.8645C0.445418 29.9541 0.585911 29.9999 0.735086 29.9999C0.814804 29.9999 0.890971 29.9868 0.967926 29.96L9.48433 27.029L20.1792 29.7887C20.3224 29.8254 20.4751 29.8171 20.6152 29.7654L29.8104 26.2235C30.0942 26.1177 30.0251 25.8466 30.0251 25.5431V7.08291C30.0251 6.85086 30.17 6.63144 29.9821 6.49489ZM28.8412 25.0388L20.9483 28.0361V10.7065L28.8412 8.08649V25.0388Z" fill="#1A1A1A" />
561                                <path d="M6.57515 19.1142C6.6671 19.422 6.95006 19.6323 7.2713 19.6323C7.59215 19.6323 7.87511 19.422 7.96746 19.1142C8.67742 16.7514 10.0393 15.2447 11.3559 13.788C12.9944 11.9747 14.5422 10.2615 14.5422 7.2717C14.5422 3.39788 11.1451 0 7.2713 0C3.39827 0 0 3.39748 0 7.2717C0 10.2615 1.54819 11.9747 3.18674 13.788C4.50328 15.2447 5.86479 16.7514 6.57515 19.1142ZM7.2713 1.45426C10.316 1.45426 13.0883 4.22663 13.0883 7.2717C13.0883 9.70191 11.7852 11.1435 10.2769 12.8121C9.2461 13.9534 8.10992 15.2096 7.2713 16.9199C6.43229 15.2096 5.29651 13.953 4.2657 12.8121C2.75698 11.1432 1.45426 9.70191 1.45426 7.2717C1.45426 4.22663 4.22663 1.45426 7.2713 1.45426Z" fill="#1A1A1A" />
562                                <path d="M7.26193 10.1616C8.8705 10.1616 10.1795 8.86084 10.1795 7.26175C10.1795 5.66305 8.87089 4.3623 7.26193 4.3623C5.65297 4.3623 4.34473 5.66305 4.34473 7.26175C4.34512 8.86084 5.65336 10.1616 7.26193 10.1616ZM7.26193 5.81657C8.06898 5.81657 8.72527 6.46536 8.72527 7.26175C8.72527 8.05932 8.06898 8.70733 7.26193 8.70733C6.45528 8.70733 5.79899 8.05893 5.79899 7.26175C5.79899 6.46536 6.45528 5.81657 7.26193 5.81657Z" fill="#1A1A1A" />
563                            </svg>
564                        </i>
565                        <p class="info-wrap-contact_title">Address</p>
566                        <p class="info-wrap-contact_link grey-text"><div class="custom-footer">
567<div class="top"><img class="logo" src="https://media-production.lp-cdn.com/media/341a255e-50bd-40f3-832e-db80120c9357" alt="Noble Black &amp; Partners Logo"></div>
568<ul class="lp-socials social_icons-style-1 socials socials--grey socials_zone">
569<li><a class="lp-socials__link socials__item socials__link wow fadeInUp" style="visibility: visible; animation-delay: 0s; animation-name: fadeInUp;" href="https://www.facebook.com/NobleBlackTeam" target="_blank" rel="noopener" data-wow-delay="0s" aria-label="FACEBOOK" data-wow-offset="10"> <em class="lp-i lp-i--facebook" aria-hidden="true"> </em> </a></li>
570<li><a class="lp-socials__link socials__item socials__link wow fadeInUp" style="visibility: visible; animation-delay: 0.1s; animation-name: fadeInUp;" href="https://www.instagram.com/nobleblack1/" target="_blank" rel="noopener" data-wow-delay="0.1s" aria-label="INSTAGRAM" data-wow-offset="10"> <em class="lp-i lp-i--instagram" aria-hidden="true"> </em> </a></li>
571<li><a class="lp-socials__link socials__item socials__link wow fadeInUp" style="visibility: visible; animation-delay: 0.2s; animation-name: fadeInUp;" href="https://www.linkedin.com/in/nobleblack" target="_blank" rel="noopener" data-wow-delay="0.2s" aria-label="LINKEDIN" data-wow-offset="10"> <em class="lp-i lp-i--linkedin" aria-hidden="true"> </em> </a></li>
572<li><a class="lp-socials__link socials__item socials__link wow fadeInUp" style="visibility: visible; animation-delay: 0.3s; animation-name: fadeInUp;" href="https://www.youtube.com/channel/UC4eJzM896qwaS9I-oRGo0-w/feed" target="_blank" rel="noopener" data-wow-delay="0.3s" aria-label="YOUTUBE" data-wow-offset="10"> <em class="lp-i lp-i--youtube" aria-hidden="true"> </em> </a></li>
573</ul>
574<div class="info">
575<div class="cols">
576<p class="title">Contact</p>
577<p>Noble Black</p>
578<a class="custom-link dark" href="/cdn-cgi/l/email-protection#0f61606d636a4f6c607d6c607d6e61216c6062"><span class="__cf_email__" data-cfemail="d8b6b7bab4bd98bbb7aabbb7aab9b6f6bbb7b5">[email&#160;protected]</span></a> <a class="custom-link dark" href="tel:3475263308">(347) 526-3308</a></div>
579<div class="cols">
580<p class="title">Office</p>
581<p>590 Madison Ave<br>New York, NY 10022</p>
582<a class="custom-link dark" href="tel:2123553550">(212) 355-3550</a></div>
583</div>
584</div></p>
585                    </div>
586                </div>
587            </div>
588        </div>
589        <div class="text_footer first_text_footer">
590            <div class="luxury-text">
591                <p><a href="https://www.corcoran.com/" target="_blank" rel="noopener"><img class="broker-logo" src="https://res.cloudinary.com/luxuryp/images/f_auto,q_auto/gjfeltufvewwivvd5jq1/corcoran-logo-dark" alt="Corcora"></a></p>
592<div class="luxury-text">
593<p class="grey" style="font-size: 14px;">Noble Black &amp; Partners at The Corcoran Group | NY 10301211307<br>Licensed Real Estate Team</p>
594<div class="disclimer-links"><a class="custom-link dark" style="font-size: 14px; font-weight: normal;" href="https://dos.ny.gov/system/files/documents/2025/03/nys-housing-and-anti-discrimination-notice_02.2025.pdf" target="_blank" rel="noopener"> Fair Housing Notice </a>
595<p>|</p>
596<a class="custom-link dark" style="font-size: 14px; font-weight: normal;" href="https://cloud-prod.corcoranlabs.com/pdf-docs/StandardizedOperatingProcedure2022-04-04.pdf" target="_blank" rel="noopener">Corcoran Standard Operating Procedures</a>
597<p>|</p>
598<a class="custom-link dark" style="font-size: 14px; font-weight: normal;" href="https://www.ecorcoran.com/uploaded_doc/Reasonable_Modification__Accommodation_Notice_May_2022.pdf" target="_blank" rel="noopener">Reasonable Accommodations</a></div>
599<p>&nbsp;</p>
600<p style="font-size: 12px;">&copy;<span class="auto-year-update">#</span> Noble Black &amp; Partners. All rights reserved. Corcoran&reg; and the Corcoran Logo are registered service marks owned by Corcoran Group LLC. Noble Black &amp; Partners fully supports the principles of the Fair Housing Act and the Equal Opportunity Act. Each franchise is independently owned and operated.</p>
601<p>&nbsp;</p>
602<p style="font-size: 12px;">Equal Housing Opportunity. This website is not the official website of The Corcoran Group or its affiliated companies, and neither The Corcoran Group nor its affiliated companies in any way warrant the accuracy of any information contained herein. Any property or services offered for sale on this website shall not be considered an offer to sell such goods or services in any state other New York. <br><br>Prerequisites for prospective homebuyers in order to receive services from Corcoran: i. There is no general requirement to provide photo identification prior to a property showing. However, prior to entry to a Corcoran office, customers may be required to present photo identification for security or similar purposes. Also, individual property owners may require photo identification prior to a showing, and we will communicate this information to buyers or tenants in advance of such showing. ii. An exclusive buyer representation agreement is not required. iii. A pre-approval for a mortgage loan is not required to work with us, per se, however, individual property owners may require one &ndash; and if so, we will communicate that to buyers as applicable for any properties buyers may wish to view.</p>
603<p>&nbsp;</p>
604<p style="font-size: 12px;">Listing information for certain New York City properties provided courtesy of the Real Estate Board of New York&rsquo;s Residential Listing Service (the &ldquo;RLS&rdquo;). The information contained in this listing has not been verified by the RLS and should be verified by the consumer. The listing information provided here is for the consumer&rsquo;s personal, non-commercial use. Retransmission, redistribution or copying of this listing information is strictly prohibited except in connection with a consumer's consideration of the purchase and/or sale of an individual property. This listing information is not verified for authenticity or accuracy and is not guaranteed and may not reflect all real estate activity in the market. &copy;<span class="auto-year-update">#</span> The Real Estate Board of New York, Inc., all rights reserved.</p>
605<p>&nbsp;</p>
606<p style="font-size: 12px;">This advertisement does not suggest that the broker has a listing in this property or properties or that any property is currently available.</p>
607<p>&nbsp;</p>
608<p style="font-size: 12px;">This information is not verified for authenticity or accuracy and is not guaranteed and may not reflect all real estate activity in the market. &copy;<span class="auto-year-update">#</span> The Real Estate Board of New York, Inc., All rights reserved.</p>
609<p>&nbsp;</p>
610<p style="opacity: 1;"><img style="width: 100px; height: auto;" src="https://res.cloudinary.com/luxuryp/images/zbxf1j3xdplm6lhfnqo3/realtor-eho-logo-07232021-update-dark"></p>
611</div>
612            </div>
613        </div>
614        <div class="text_footer second_text_footer">
615            <div class="text_content_wrap">
616                <div>
617                    <div>&nbsp;</div>
618<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style>
619                </div>
620            </div>
621        </div>
622        <div class="info-privacy">
623          <div class="form-row info-privacy__row">
624
625            <div class="form-col form-col--powered powered-box">
626                    <div class="img-wrap">
627                        <img src="https://media-production.lp-cdn.com/media/e2e1c290-42bd-4c1d-b88f-37484167cb91" alt="">
628                    </div>
629                <div class="powered_zone">
630                    Powered by <a href="https://www.luxurypresence.com/real-estate-website-design/" target="_blank" class="lp-link grey-text luxury-link underlined hyperlink-style-1">Luxury Presence</a>
631                </div>
632            </div>
633
634            <div class="form-col form-col--copyright">
635              <div class="copy_zone">
636                <span class="copy_words">Copyright &copy;</span> <span class="auto-year-update">2026</span>
637                | <a href="/terms-and-conditions" class="lp-link grey-text hyperlink-style-1">Privacy Policy</a>
638
639                  <span class="additional-links-separator"></span>
640                    <a  href="/html-sitemap" class="lp-link grey-text ">HTML Sitemap</a>
641              </div>
642            </div>
643
644            <div class="form-col form-col--socials">
645                <ul class="lp-socials social_icons-style-1 socials socials--grey socials_zone">
646                
647                </ul>                          </div>
648          </div>
649        </div>
650    </div>
651</div>
652
653        </footer>
654
655        <div id="modal-global-contact-us" class="modal "
656            data-el-id=""
657            style="background-color: ;"
658            >
659            <div class="modal-content">
660                <div class="contact-form redesign " style="background-image: url('https://media-production.lp-cdn.com/cdn-cgi/image/format&#x3D;auto,quality&#x3D;85/https://media-production.lp-cdn.com/media/5b942d38-f3a3-49da-94cb-aaa73d30a4a3')">
661          <div class="container">
662              <div class="section-details" style="--colorTxt: #ffffff">
663                  <h2>Noble Black &amp; Partners</h2>
664                  
665                  <div class="info-zone">
666        
667                          <div class="info-zone_contact type_user">
668                                <h4 class="serif">Contact</h4>
669                                <div class="info-zone_contact_cell">
670                                        <i>
671                                            <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg">
672                                                <path fill-rule="evenodd" clip-rule="evenodd" d="M10.7964 8.1207H19.2036V8.7279C19.2036 10.8195 20.9082 12.5259 23.001 12.5259H24.741L25.2852 20.7051C25.3776 22.1235 24.2868 23.2719 22.8822 23.2719H7.0032C5.5944 23.2719 4.5084 22.1085 4.6002 20.7039C4.782 17.9895 4.9152 15.2313 5.154 12.5265H6.9996C9.0918 12.5265 10.797 10.8207 10.797 8.7285V8.1207H10.7964ZM11.46 16.5807C11.46 14.6565 13.0188 13.0977 14.943 13.0977C16.8666 13.0977 18.4254 14.6571 18.4254 16.5807C18.4254 18.5055 16.8678 20.0631 14.943 20.0631C13.02 20.0637 11.46 18.5043 11.46 16.5807ZM14.943 12.0381C12.4344 12.0381 10.4004 14.0721 10.4004 16.5807C10.4004 19.0887 12.435 21.1233 14.943 21.1233C17.4486 21.1233 19.485 19.0869 19.485 16.5807C19.485 14.0727 17.451 12.0381 14.943 12.0381ZM9.0846 4.8363C8.22 4.8363 7.512 5.5443 7.512 6.4089V8.7285C7.512 9.0093 7.2804 9.2415 6.999 9.2415H1.5726C1.2906 9.2415 1.0596 9.0111 1.0596 8.7285V6.9285C1.0596 6.4797 1.1628 6.0945 1.3902 5.7069C1.896 4.8465 2.7294 4.1013 3.795 3.4749C9.279 0.2517 20.7192 0.2523 26.2044 3.4749C27.2706 4.1013 28.104 4.8465 28.6098 5.7069C28.8354 6.0921 28.9398 6.4815 28.9398 6.9285V8.7285C28.9398 9.0111 28.71 9.2415 28.4268 9.2415H23.0004C22.719 9.2415 22.4874 9.0093 22.4874 8.7285V6.4089C22.4874 5.5425 21.7806 4.8363 20.9148 4.8363H9.0846ZM8.571 6.4089C8.571 6.1263 8.8026 5.8965 9.0846 5.8965H20.9154C21.1968 5.8965 21.429 6.1275 21.429 6.4089V8.7285C21.429 9.5943 22.1352 10.3017 23.001 10.3017H28.4274C29.292 10.3017 30 9.5931 30 8.7285V6.9285C30 6.2835 29.8464 5.7291 29.5206 5.1729C28.9188 4.1493 27.9564 3.2799 26.7384 2.5641C20.9214 -0.8547 9.0798 -0.8547 3.2622 2.5641C2.0436 3.2799 1.0812 4.1487 0.48 5.1729C0.153 5.7291 0 6.2835 0 6.9279V8.7279C0 9.5925 0.7092 10.3011 1.5726 10.3011H6.999C7.8648 10.3011 8.571 9.5937 8.571 8.7279V6.4089ZM9.7368 7.5915V8.7285C9.7368 10.2387 8.5092 11.4669 6.999 11.4669H4.6686C4.3914 11.4669 4.164 11.6799 4.1412 11.9511C3.8892 14.8347 3.7386 17.7435 3.5448 20.6331C3.4116 22.6425 4.989 24.3315 7.0032 24.3315H22.8822C24.882 24.3315 26.475 22.6575 26.3406 20.6343L25.7622 11.9607C25.7436 11.6811 25.5102 11.4675 25.2342 11.4675L23.001 11.4663C21.4902 11.4663 20.2632 10.2375 20.2632 8.7279V7.5909C20.2632 7.2981 20.0262 7.0611 19.7334 7.0611H10.2666C9.9738 7.0611 9.7368 7.2987 9.7368 7.5915Z" fill="#1A1A1A"/>
673                                            </svg>
674                                        </i>
675                                    <p class="contact_title">Phone</p>
676                                    <a href="tel:(347) 526-3308" class="lp-link info-zone_contact_link link hyperlink-style-2">(347) 526-3308</a>
677                                </div>
678                                <div class="info-zone_contact_cell">
679                                        <i>
680                                            <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg">
681                                                <path d="M2 0C0.903517 0 0 0.903517 0 2V16.6667C0 17.7631 0.903517 18.6667 2 18.6667H28C29.0965 18.6667 30 17.7631 30 16.6667V2C30 0.903517 29.0965 0 28 0H2ZM2.4375 1.33333H27.5625L15.6458 11.4896C15.3389 11.7512 14.6612 11.7512 14.3542 11.4896L2.4375 1.33333ZM1.33333 2.13542L10.1979 9.6979L1.33333 16.5729V2.13542ZM28.6667 2.13542V16.5729L19.8021 9.6979L28.6667 2.13542ZM11.2396 10.5833L13.4896 12.5C14.3543 13.2369 15.6457 13.2369 16.5104 12.5L18.7604 10.5833L27.4687 17.3333H2.53125L11.2396 10.5833Z" fill="#1A1A1A"/>
682                                            </svg>
683                                        </i>
684                                    <p class="contact_title">Email</p>
685                                    <a href="/cdn-cgi/l/email-protection#3f51505d535a7f5c504d5c504d5e51115c5052" class="lp-link info-zone_contact_link link hyperlink-style-2"><span class="__cf_email__" data-cfemail="8fe1e0ede3eacfece0fdece0fdeee1a1ece0e2">[email&#160;protected]</span></a>
686                                </div>
687                          </div>
688                          <div class="info-zone_contact">
689                                <div class="info-zone_contact_cell">
690                                        <i>
691                                            <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg">
692                                                <path d="M29.9821 6.49489C29.7931 6.35756 29.679 6.32046 29.4572 6.39228L20.298 9.41368L16.1952 8.03558L15.8172 9.41525L19.7644 10.7038V28.1462L9.89831 25.7069V22.1034H8.71438V25.7515L1.21616 28.2532V15.3945H0.0322266V29.2729C0.0322266 29.5077 0.130098 29.7279 0.321106 29.8645C0.445418 29.9541 0.585911 29.9999 0.735086 29.9999C0.814804 29.9999 0.890971 29.9868 0.967926 29.96L9.48433 27.029L20.1792 29.7887C20.3224 29.8254 20.4751 29.8171 20.6152 29.7654L29.8104 26.2235C30.0942 26.1177 3
6920.0251 25.8466 30.0251 25.5431V7.08291C30.0251 6.85086 30.17 6.63144 29.9821 6.49489ZM28.8412 25.0388L20.9483 28.0361V10.7065L28.8412 8.08649V25.0388Z" fill="#1A1A1A"/>
693                                                <path d="M6.57515 19.1142C6.6671 19.422 6.95006 19.6323 7.2713 19.6323C7.59215 19.6323 7.87511 19.422 7.96746 19.1142C8.67742 16.7514 10.0393 15.2447 11.3559 13.788C12.9944 11.9747 14.5422 10.2615 14.5422 7.2717C14.5422 3.39788 11.1451 0 7.2713 0C3.39827 0 0 3.39748 0 7.2717C0 10.2615 1.54819 11.9747 3.18674 13.788C4.50328 15.2447 5.86479 16.7514 6.57515 19.1142ZM7.2713 1.45426C10.316 1.45426 13.0883 4.22663 13.0883 7.2717C13.0883 9.70191 11.7852 11.1435 10.2769 12.8121C9.2461 13.9534 8.10992 15.2096 7.2713 16.9199C6.43229 15.2096 5.29651 13.953 4.2657 12.8121C2.75698 11.1432 1.45426 9.70191 1.45426 7.2717C1.45426 4.22663 4.22663 1.45426 7.2713 1.45426Z" fill="#1A1A1A"/>
694                                                <path d="M7.26193 10.1616C8.8705 10.1616 10.1795 8.86084 10.1795 7.26175C10.1795 5.66305 8.87089 4.3623 7.26193 4.3623C5.65297 4.3623 4.34473 5.66305 4.34473 7.26175C4.34512 8.86084 5.65336 10.1616 7.26193 10.1616ZM7.26193 5.81657C8.06898 5.81657 8.72527 6.46536 8.72527 7.26175C8.72527 8.05932 8.06898 8.70733 7.26193 8.70733C6.45528 8.70733 5.79899 8.05893 5.79899 7.26175C5.79899 6.46536 6.45528 5.81657 7.26193 5.81657Z" fill="#1A1A1A"/>
695                                            </svg>
696                                        </i>
697                                    <p class="info-wrap-contact_title">Address</p>
698                                    <p class="info-zone_contact_link pre-line">590 Madison Ave
699        New York, NY 10022</p>
700                                </div>
701                          </div>
702                        <div class="info-zone_contact">
703                            <div class="info-zone_contact_cell">
704                                <p class="pre-line"><div></div><style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></p>
705                            </div>
706                        </div>
707                        <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone footer__contact-column">
708                        
709                                <li>
710                                  <a
711                                    href="https://www.facebook.com/NobleBlackTeam"
712                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
713                                    data-wow-delay="0s"
714                                    target="_blank"
715                                    aria-label="FACEBOOK"
716                                  >
717                                      <span class="lp-i lp-i--facebook" aria-hidden="true"></span>
718                                  </a>
719                                </li>
720                                <li>
721                                  <a
722                                    href="https://www.instagram.com/nobleblack1/"
723                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
724                                    data-wow-delay="0.1s"
725                                    target="_blank"
726                                    aria-label="INSTAGRAM"
727                                  >
728                                      <span class="lp-i lp-i--instagram" aria-hidden="true"></span>
729                                  </a>
730                                </li>
731                                <li>
732                                  <a
733                                    href="https://www.linkedin.com/in/nobleblack"
734                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
735                                    data-wow-delay="0.2s"
736                                    target="_blank"
737                                    aria-label="LINKEDIN"
738                                  >
739                                      <span class="lp-i lp-i--linkedin" aria-hidden="true"></span>
740                                  </a>
741                                </li>
742                                <li>
743                                  <a
744                                    href="https://www.youtube.com/channel/UC4eJzM896qwaS9I-oRGo0-w/feed"
745                                    class="lp-socials__link socials__item wow fadeInUp socials__link"
746                                    data-wow-delay="0.3s"
747                                    target="_blank"
748                                    aria-label="YOUTUBE"
749                                  >
750                                      <span class="lp-i lp-i--youtube" aria-hidden="true"></span>
751                                  </a>
752                                </li>
753                          </ul>          </div>
754              </div>
755              <div class="section-message">
756                  <form data-type="contact-form">
757                      <h2>Submit a Message</h2>
758                       <div class="h-pot">
759                        <label for="-middleName">Middle Name</label>
760                        <input id="-middleName" name="middleName" value="" autocomplete="off" tabindex="-1">
761                      </div>
762        
763        
764                      <div class="lp-input-group">
765                          <label for="prod-name" class="lp-label">Name</label>
766                          <input id="prod-name" name="name" value="" required="" class="lp-input lp-input--light">
767                      </div>
768                      <div class="lp-input-group">
769                          <label for="prod-email" class="lp-label">Email</label>
770                          <input id="prod-email" type="email" name="email" value="" required="" class="lp-input lp-input--light">
771                      </div>
772                      <div class="lp-input-group">
773                          <label for="prod-phone" class="lp-label">Phone</label>
774                          <input id="prod-phone" type="tel" name="phoneNumber" value="" required="" class="lp-input lp-input--light">
775                      </div>
776                      <div class="lp-input-group m16">
777                          <label for="prod-message" class="lp-label">Message</label>
778                          <textarea id="prod-message" name="message" value="" required="" class="lp-input"></textarea>
779                      </div>
780        
781                      <div class="lp-disclaimer">
782          <div class='lp-tcr-content' style='margin-bottom: 1em;'>
783            <span class='lp-tcr-message'>
784              By providing your contact information to Noble Black, your personal
785              information will be processed in accordance with Noble Black's
786              <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. By
787              checking the box(es) below, you expressly consent to receive marketing
788              or promotional real estate communication from Noble Black in the
789              manner selected by you. For SMS text messages, message frequency varies.
790              Message and data rates may apply. Consent is not a condition of purchase
791              of any goods or services. You may opt out of receiving further
792              communications from Noble Black at any time. To opt out of receiving
793              SMS text messages, reply STOP to unsubscribe. SMS text messaging is
794              subject to our <a href='/terms-and-conditions#sms-details' target='_blank'>Terms of Use</a>.
795            </span>
796          </div>
797          <label style='display: none;' for='-termsAccepted'>Opt
798            in/Disclaimer Consent:</label>
799          <label class='lp-tcr-content' style='margin-bottom: 1em;'>
800            <span class='lp-tcr-checkbox'>
801              <input
802                type='checkbox'
803                name='termsAccepted'
804                id='-termsAccepted'
805                oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
806                oninput="this.setCustomValidity('')"
807                required
808                value='Yes, I agree to receive email or phone call communications from Noble Black.'
809              />
810            </span>
811            <span class='lp-tcr-message'>
812              Yes, I agree to receive email or phone call communications from
813              Noble Black.
814            </span>
815          </label>
816          <label style='display: none;' for='-customConsent'>Opt
817            in/Disclaimer Consent:</label>
818          <label class='lp-tcr-content'>
819            <span class='lp-tcr-checkbox'>
820              <input
821                type='checkbox'
822                name='customConsent'
823                id='-customConsent'
824                value='Yes, I agree to receive SMS text messages from Noble Black.'
825              />
826            </span>
827            <span class='lp-tcr-message'>
828              Yes, I agree to receive SMS text messages from Noble Black.
829            </span>
830          </label>
831        
832        </div>
833                      
834                      <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" />
835                      
836                      
837                      <button type="submit" class="submitButton lp-btn button-style-2">
838                          <span class="label-initial">Submit</span>
839                          <span class="label-loading">Submitting</span>
840                          <span class="label-success">Submitted</span>
841                          <span class="submit-icon lp-i lp-i--circle-notch lp-i--spin"></span>
842                      </button>
843                      <p class="success-message success hide">
844                        Message sent successfully!
845                      </p>
846                  </form>
847                  
848                  
849              </div>
850          </div>
851        </div>
852        
853            </div>
854            <button class="close lp-close" type="button" aria-label="close modal">
855                <span class="lp-close-icon" aria-hidden="true"></span>
856            </button>
857        </div>
858        <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;">
859          <style>
860            #qualifying-questions-modal .custom-select-toggle {
861              border: 1px solid #848484;
862              border-radius: 8px;
863              padding: 12px 16px;
864            }
865        
866            #qualifying-questions-modal .custom-select-toggle.is-placeholder {
867              color: #848484;
868            }
869        
870            #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder {
871              color: #848484;
872              opacity: 1;
873            }
874        
875            #qualifying-questions-modal .disclaimer-more {
876              display: none;
877            }
878        
879            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more {
880              display: inline;
881            }
882        
883            #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis {
884              display: none;
885            }
886          </style>
vendor: 119 bytes, lines 886-887
886
887          <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
887<script>
888            function toggleDisclaimerQualifyingQuestionsModal() {
889              const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text');
890              const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer');
891        
892              if (disclaimerText.classList.contains('collapsed')) {
893                disclaimerText.classList.remove('collapsed');
894                toggleButton.textContent = 'Read less';
895                toggleButton.setAttribute('aria-expanded', 'true');
896              } else {
897                disclaimerText.classList.add('collapsed');
898                toggleButton.textContent = 'Read more';
899                toggleButton.setAttribute('aria-expanded', 'false');
900              }
901            }
902          </script>
902
903          <div style="max-width: 400px; width: 95%; margin: 0 auto;">
904            <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;">
905              <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;">
906                <span aria-hidden="true">&times;</span>
907              </button>
908              <div style="padding: 40px 30px 32px;">
909                <div style="text-align: left; margin-bottom: 32px;">
910                  <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;">
911                    Thanks, please provide more information to help serve you
912                  </h2>
913                </div>
914                <form id="qualifying-questions-modal-form" data-type="contact-form">
915                  <input type="hidden" name="source" value="PROFILE_UPDATE" />
916                  <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" />
917                  <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" />
918                  <label for="qualifying-questions-modal-email" style="display:none;">
919                    Email
920                  </label>
921                  <label for="qualifying-questions-modal-triggerSource" style="display:none;">
922                    Trigger Source
923                  </label>
924        
925                  <div style="margin-bottom: 20px;">
926                    <label for="qualifying-questions-modal-phoneNumber" style="display:none;">
927                      Phone Number
928                    </label>
929                    <input
930                      type="tel"
931                      id="qualifying-questions-modal-phoneNumber"
932                      name="phoneNumber"
933                      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;"
934                      pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$"
935                      required
936                      placeholder="Phone"
937                      aria-label="Phone Number"
938                      inputmode="tel"
939                      autocomplete="tel"
940                      onfocus="this.style.borderColor='black';"
941                      onblur="this.style.borderColor='#848484';"
942                    />
943                  </div>
944        
945                  <div style="margin-bottom: 20px;">
946                    <label for="qualifying-questions-modal-interest" style="display:none;">
947                      Interest
948                    </label>
949                    <select
950                      id="qualifying-questions-modal-interest"
951                      name="interest"
952                      required
953                      data-label="Interest"
954                      aria-label="Interest"
955                      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;"
956                      onfocus="this.style.borderColor='black'; this.style.color='black';"
957                      onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';"
958                    >
959                      <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option>
960                      <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option>
961                      <option value="Selling" style="background: #fff; color: black;">Selling</option>
962                      <option value="Buying" style="background: #fff; color: black;">Buying</option>
963                      <option value="Renting" style="background: #fff; color: black;">Renting</option>
964                      <option value="Other" style="background: #fff; color: black;">Other</option>
965                    </select>
966                  </div>
967        
968                  <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;">
969                    <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label>
970                    <label class='lp-tcr-content'>
971                      <span class='lp-tcr-checkbox'>
972                        <input
973                          type='checkbox'
974                          id='qualifying-questions-modal-qualifying-questions-termsAccepted'
975                          name='termsAccepted'
976                          aria-describedby='qualifying-questions-modal-disclaimer-text'
977                          oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
978                          oninput="this.setCustomValidity('')"
979                          required
980                        /></span>
981                      <span class='lp-tcr-message'>
982                        <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;">
983                          
984                            I agree to be contacted by
985                            <strong>Noble Black</strong>
986                            via call, email, and text <span class="disclaimer-more">for real estate services. 
987                            To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 
988                            You can also click the unsubscribe link in the emails. 
989                            Message and data rates may apply. Message frequency may vary.</span>
990                            <span class="disclaimer-ellipsis">...</span>
991                            <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>.
992                        </div>
993                        <button
994                          id="qualifying-questions-modal-toggle-disclaimer"
995                          type="button"
996                          style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;"
997                          aria-expanded="false"
998                          onclick="toggleDisclaimerQualifyingQuestionsModal()"
999                        >
1000                          Read more
1001                        </button>
1002                      </span>
1003                    </label>
1004                  </div>
1005        
1006                  <div>
1007                    <button
1008                      type="submit"
1009                      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;"
1010                      onmouseover="this.style.background='transparent'; this.style.color='black';"
1011                      onmouseout="this.style.background='black'; this.style.color='white';"
1012                    >
1013                      Submit
1014                    </button>
1015                  </div>
1016                </form>
1017              </div>
1018            </div>
1019          </div>
1020        </div>
1021
1022    
1022<script>
1023        (function() {
1024        var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy"));
1025
1026        if ("IntersectionObserver" in window && lazyVideos.length > 0) {
1027            var lazyVideoObserver = new IntersectionObserver(function(entries, observer) {
1028            entries.forEach(function(video) {
1029                if (video.isIntersecting) {
1030                for (var source in video.target.children) {
1031                    var videoSource = video.target.children[source];
1032                    if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") {
1033                    videoSource.src = videoSource.dataset.src;
1034                    }
1035                }
1036
1037                video.target.load();
1038                video.target.classList.remove("lazy");
1039                lazyVideoObserver.unobserve(video.target);
1040                }
1041            });
1042            });
1043
1044            lazyVideos.forEach(function(lazyVideo) {
1045                lazyVideoObserver.observe(lazyVideo);
1046            });
1047        }
1048        })();
1049    </script>
1049
1050
1051        <!-- Global site tag (gtag.js) - Google Analytics -->
1052        
1052<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1052
1053
1054            <!-- Google Tag Manager -->
1055            
1055<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
1056                new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
1057                j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src=
1058                'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
1059            })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1059
1060            <!-- End Google Tag Manager -->
1061
1062
1063        <!-- LP Tracker (divolte.js) - LP Divolte -->
1064            
1064<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1064
1065        <!-- LP Tracker (eventBus) - LP EventBus -->
1066            
1066<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1066
1067
1068    
1068<script>
1069        window.dataLayer = window.dataLayer || [];
1070        document.sendGoogleTagManagerEvent = function() {
1071            /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */
1072            if (window.navigator.globalPrivacyControl) {
1073                return;
1074            }
1075
1076            dataLayer.push(arguments);
1077        }
1078
1079        document.sendGoogleTagManagerEvent('js', new Date());
1080            document.sendGoogleTagManagerEvent('config', 'G-5CH4GQDHES', { page: location.pathname, location: location.href });
1081        document.sendGoogleAnalyticsEvent = function(googleEvent) {
1082            document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, {
1083                event_category: googleEvent.eventCategory,
1084                event_label: googleEvent.eventLabel,
1085                value: googleEvent.eventValue,
1086                page: googleEvent.page,
1087                location: googleEvent.location
1088            })
1089        };
1090
1091        document.addEventListener("DOMContentLoaded", function() {
1092            (function() {
1093                //If the page has an element with ID of auto-year-update the element will be populated with the current year.
1094                var date = new Date();
1095                var elements = document.getElementsByClassName('auto-year-update');
1096                var i;
1097                for (i = 0; i < elements.length; i++) {
1098                    elements[i].innerText = date.getFullYear();
1099                }
1100            })();
1101            if (window.divolteLp) {
1102                window.divolteLp('sendLpPageView', {});
1103            }
1104            if (window.eventBusLp) {
1105                window.eventBusLp('sendLpPageView', {});
1106            }
1107        });
1108    </script>
1108
1109
1110
1111    
1111<script>
1112    // Function to dynamically load a script
1113    function loadScript(url, callback) {
1114        var script = document.createElement('script');
1115        script.type = 'text/javascript';
1116        script.src = url;
1117        script.defer = true;
1118        script.async = true;
1119        script.onload = callback;
1120        document.head.appendChild(script);
1121    }
1122
1123    // Function to dynamically load CSS file
1124    function loadCSS(url) {
1125        var link = document.createElement("link");
1126        link.rel = "stylesheet";
1127        link.href = url;
1128        document.head.appendChild(link);
1129    }
1130
1131    // Global methods / variables that can be accessed by element js
1132    window.luxuryPresence = {
1133        libs: {
1134            loadJs: loadScript,
1135            loadCss: loadCSS,
1136            jsLibsMap: {
1137                paroller: {
1138                    jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js',
1139                    isLoaded: false,
1140                },
1141                ionRangeSlider: {
1142                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js',
1143                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css',
1144                    isLoaded: false,
1145                    requires: ['jquery'],
1146                },
1147                splide: {
1148                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js',
1149                    cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css',
1150                    isLoaded: false,
1151                },
1152                wow: {
1153                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js',
1154                    isLoaded: false,
1155                },
1156                jquery: {
1157                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js',
1158                    isLoaded: false,
1159                },
1160                slick: {
1161                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js',
1162                    isLoaded: false,
1163                    requires: ['jquery'],
1164                },
1165                libphonenumber: {
1166                    jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js',
1167                    isLoaded: false,
1168                },
1169            },
1170        },
1171    };
1172    </script>
1172
1173    
1173<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>
1173
1174    
1174<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1174
1175    
1175<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1175
1176    
1176<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1176
1177    
1177<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>
1177
1178    
1178<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>
1178
1179    
1179<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>
1179
1180
1181    <!-- GOOGLE TRANSLATE SCRIPT -->
1182    
1182<script>
1183        function googleTranslateElementInit() {
1184            // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'`
1185            // Language codes can be taken from here https://cloud.google.com/translate/docs/languages
1186            const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt';
1187            document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){
1188                translate.innerText = '';
1189                new google.translate.TranslateElement({
1190                    pageLanguage: 'en',
1191                    layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
1192                    includedLanguages: window.customLanguages || DEFAULT_LANGUAGES,
1193                }, translate);
1194            });
1195        }
1196    </script>
1196
1197    
1197<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1197
1198            
1198<script defer src="https://accounts.google.com/gsi/intermediate"></script>
1198
1199
1200    <!-- GOOGLE TRANSLATE SCRIPT END-->
1201    
1201<script>
1202
1203        // UI helpers
1204        (function () {
1205
1206            function getSideMenu () {
1207                return document.querySelector('body > div.sidemenu');
1208            }
1209
1210            function sideMenuHide (instant) {
1211                var sideMenu = getSideMenu();
1212                if (!sideMenu || !sideMenu.classList.contains('visible')) {
1213                  return;
1214                }
1215                sideMenu.classList.remove('visible');
1216                sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } }));
1217                window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} }));
1218            }
1219
1220            function sideMenuShow () {
1221                var sideMenu = getSideMenu();
1222                if (!sideMenu || sideMenu.classList.contains('visible')) {
1223                  return;
1224                }
1225                sideMenu.classList.add('visible');
1226                sideMenu.dispatchEvent(new Event('lpui-show'));
1227                window.dispatchEvent(new Event('lpui-sidemenu-show'));
1228            }
1229
1230            function sideMenuToggle () {
1231                var sideMenu = getSideMenu();
1232                if (!sideMenu) {
1233                  return;
1234                }
1235                var isSideMenuVisible = sideMenu.classList.contains('visible');
1236                if (isSideMenuVisible) {
1237                    sideMenuHide();
1238                } else {
1239                    sideMenuShow();
1240                }
1241            }
1242
1243            var scrollLockRequests = {};
1244            window.__debug_scrollLockRequests = scrollLockRequests;
1245            var hideScrollStyles = ''+
1246                    'body {'+
1247                    'overflow: hidden;' +
1248                    '}';
1249            var hideScrollId = 'hide-body-scroll-style';
1250
1251            function scrollLock () {
1252                var style = document.createElement('style');
1253                style.id = hideScrollId;
1254                style.textContent = hideScrollStyles;
1255                document.head.appendChild(style);
1256                window.dispatchEvent(new Event('lpui-scroll-locked'));
1257            }
1258
1259            function scrollUnlock () {
1260                document.getElementById(hideScrollId)?.remove();
1261                window.dispatchEvent(new Event('lpui-scroll-unlocked'));
1262            }
1263
1264            function requestScrollLock (lockId) {
1265                var wasLocked = Object.keys(scrollLockRequests).length > 0;
1266                scrollLockRequests[lockId || '__anonymous_lock'] = true;
1267                if (!wasLocked) {
1268                    scrollLock();
1269                }
1270            }
1271
1272            function releaseScrollLock (lockId) {
1273                if (lockId) {
1274                    delete scrollLockRequests[lockId];
1275                    if (!Object.keys(scrollLockRequests).length) {
1276                        scrollUnlock();
1277                    }
1278                } else {
1279                    scrollLockRequests = {};
1280                    window.__debug_scrollLockRequests = scrollLockRequests;
1281                    scrollUnlock();
1282                }
1283            }
1284
1285            function showModal (modalId, options) {
1286                var modal = document.getElementById(modalId);
1287                if (!modal) {
1288                    return;
1289                }
1290
1291                if (!modal.classList.contains('visible')) {
1292                    modal.classList.add('visible');
1293                    if (options && options.scrollLock) {
1294                        window.lpUI.requestScrollLock(modalId);
1295                    }
1296                    modal.dispatchEvent(new Event('lpui-show'));
1297                    window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } }));
1298                }
1299
1300                const visibleModals = document.querySelectorAll('.modal.visible');
1301
1302                if (visibleModals.length > 1) {
1303
1304                    const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => {
1305                        const zIndex = window.getComputedStyle(modal).zIndex;
1306                        const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0;
1307                        return Math.max(maxZIndex, parsedZIndex);
1308                    }, 0);
1309
1310                    modal.style.zIndex = maxZIndex + 1;
1311                }
1312
1313            }
1314
1315            function _hideModal (modalEl) {
1316                if (!modalEl) {
1317                    return;
1318                }
1319                if (!modalEl.classList.contains('visible')) {
1320                    return;
1321                }
1322                modalEl.classList.remove('visible');
1323                modalEl.style.zIndex = '';
1324                modalEl.dispatchEvent(new Event('lpui-hide'));
1325                var modalId = modalEl.getAttribute('id');
1326                if (modalId) {
1327                    window.lpUI.releaseScrollLock(modalId);
1328                    window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } }));
1329                }
1330            }
1331
1332            function hideModal (modalId) {
1333                _hideModal(document.getElementById(modalId));
1334            }
1335
1336            function hideClosestModal (el) {
1337              const modal = el?.closest('.modal');
1338              if (!modal) {
1339                return;
1340              }
1341              if (modal.classList) {
1342                _hideModal(modal);
1343                return;
1344              }
1345              if (modal.length && modal[0].classList) {
1346                _hideModal(modal[0]);
1347              }
1348            }
1349
1350            window.lpUI = {
1351                sideMenuHide: sideMenuHide,
1352                sideMenuShow: sideMenuShow,
1353                sideMenuToggle: sideMenuToggle,
1354                requestScrollLock: requestScrollLock,
1355                releaseScrollLock: releaseScrollLock,
1356                showModal: showModal,
1357                hideModal: hideModal,
1358                hideClosestModal: hideClosestModal
1359            }
1360        })();
1361
1362        var stringifyPrimitive = function(v) {
1363            switch (typeof v) {
1364                case 'string':
1365                    return v;
1366
1367                case 'boolean':
1368                    return v ? 'true' : 'false';
1369
1370                case 'number':
1371                    return isFinite(v) ? v : '';
1372
1373                default:
1374                    return '';
1375            }
1376        };
1377
1378        function objectToQuerystring(obj, sep, eq, name) {
1379            // https://github.com/Gozala/querystring/blob/master/encode.js
1380            sep = sep || '&';
1381            eq = eq || '=';
1382            if (obj === null) {
1383                obj = undefined;
1384            }
1385
1386            if (typeof obj === 'object') {
1387                return Object.keys(obj).map(function(k) {
1388                    var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
1389                    if (Array.isArray(obj[k])) {
1390                        return obj[k].map(function(v) {
1391                            return ks + encodeURIComponent(stringifyPrimitive(v));
1392                        }).join(sep);
1393                    } else {
1394                        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
1395                    }
1396                }).filter(Boolean).join(sep);
1397
1398            }
1399
1400            if (!name) return '';
1401            return encodeURIComponent(stringifyPrimitive(name)) + eq +
1402                    encodeURIComponent(stringifyPrimitive(obj));
1403        }
1404
1405        function getPath(url, options) {
1406            var parser = document.createElement('a');
1407            parser.href = url || '';
1408            var path = parser.pathname || '';
1409            if (path[0] !== '/') {
1410              // IE does not return path starting with a slash
1411              path = '/' + path;
1412            }
1413
1414            if (options && options.queryString) {
1415                path += parser.search;
1416            }
1417
1418            return path;
1419        }
1420
1421        function getMLSAutocomplete(keyword) {
1422            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';
1423            var query = {
1424                kind: 'listings',
1425                query: keyword
1426            };
1427
1428            return superagent
1429                .get(searchURL)
1430                .query(query)
1431                .then(function(res) {
1432                    var data = res.body || [];
1433                    // Array of listing_auto_complete documents: id, display_address, city, state,
1434                    // price, sold_price, status, status_modified_at, photo_urls (array of URLs).
1435
1436                    return data;
1437                });
1438        }
1439
1440        function getMLSAutocompleteWithFilters(keyword, filters = {}) {
1441            var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete';
1442
1443            return superagent
1444                .get(searchURL)
1445                .query({ kind: 'listings', query: keyword, ...filters })
1446                .then(function(res) {
1447                    // Same response shape as getMLSAutocomplete.
1448                    return res.body || [];
1449                });
1450        }
1451
1452        function makeMlsLink(data) {
1453            // Code Dupe from utils/googlePlace
1454            // mapping of google data type to mls data type
1455            var mapping = {
1456                neighborhood: 'neighborhood',
1457                locality: 'place',
1458                administrative_area_level_2: 'county',
1459                administrative_area_level_1: 'state',
1460                postal_code: 'postalcode',
1461            };
1462
1463            function _filterTypes(types) {
1464                return types.filter(function(type) { return type !== 'political' });
1465            }
1466
1467            if (!data || !Object.keys(data).length) {
1468                return '/home-search/listings';
1469            }
1470
1471            var newData = {};
1472            _filterTypes(data.types).forEach(function(type) {
1473                if (mapping[type]) {
1474                    newData.search_type = mapping[type];
1475                }
1476            });
1477            newData.omnibox = data.formatted_address;
1478            data.address_components.forEach(function(component) {
1479                _filterTypes(component.types).forEach(function(type) {
1480                    if (mapping[type]) {
1481                        newData[mapping[type]] = component.long_name;
1482                    }
1483                });
1484            });
1485            var bounds = data.geometry.bounds;
1486            var convertedData = Object.assign(bounds, newData);
1487
1488            return '/home-search/listings?' + objectToQuerystring(convertedData);
1489        }
1490
1491        function debounce(func, wait) {
1492            let timeout;
1493            return function(...args) {
1494                const context = this;
1495                clearTimeout(timeout);
1496                timeout = setTimeout(() => func.apply(context, args), wait)
1497            }
1498        }
1499
1500        // Global methods / variables that can be accessed by element js
1501        window.luxuryPresence = {
1502            ...window.luxuryPresence,
1503            defaults: {
1504                companyId: '1b2e84eb-ab00-4e30-a6ec-30fa180236eb',
1505                apiGatewayUrl: '/api-gw',
1506                routerUrl: '/api-nv',
1507                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\
1507n    }\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
1507x\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"},
1508                propertyPlaceholderImage: {}
1509            },
1510            objectToQuerystring: objectToQuerystring,
1511            getPath: getPath,
1512            getMLSAutocomplete: getMLSAutocomplete,
1513            getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters,
1514            makeMlsLink: makeMlsLink,
1515            debounce: debounce,
1516        };
1517
1518        var wowOffset = 100;
1519    </script>
1519
1520    
1520<script>
1521        (()=>{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));
1521if(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)];
1521let t="x"===e[2]||"X"===e[2],r=parseInt(e.slice(t?3:2,-1),t?16:10);return 0===r||r>1114111||r>=55296&&r<=57343?e:160===r?" ":String.fromCodePoint(r)}(r[0]):"&",end:r?d.lastIndex:t+1}}(e,o):function(e,t,r){let i=function(e,t){let r=null;u.lastIndex=t+1;let i=u.exec(e);for(;i;){let t=i[0];if(r)t===r&&(r=null);else if('"'===t||"'"===t)r=t;else if(">"===t)return u.lastIndex;i=u.exec(e)}return -1}(e,t);return{text:-1===i?"<":function(e,t,r,i){if(!i)return"";let s=e.slice(t,r);if(/^<br\s*\/?>$/.test(s))return"&#10;";if(/^<\/p\s*>$/.test(s)){h.lastIndex=r;let t=h.exec(e);if(t&&"<"===t[0][0])return"&#10;"}return""}(e,t,i,r),end:-1===i?t+1:i}}(e,o,t);r+=n.text,i=n.end}return r}n=function(e,{isEqual:t}){let r=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],i=function(e,t,r){let i="en-US";if(!e)return"";if("string"==typeof e){let t=e.trim();if(/[^+\-0-9.]/.test(t))return e;if(!(e=parseFloat(t)))return""}let s="number"==typeof r?r:0,o=Number.isInteger(e)?0:s,n={minimumFractionDigits:o,maximumFractionDigits:o};return"USD"===t?`$${e.toLocaleString(i,n)}`:"CAD"===t?`$${e.toLocaleString(i,n)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(i,n)}`:"GBP"===t?`\xa3${e.toLocaleString(i,n)}`:"PERCENT"===t?`${e}%`:"number"==typeof r&&r>-1?e.toLocaleString(i,{maximumFractionDigits:r}):e.toLocaleString(i)},s=function(e){switch(e){case"DAY":return"daily";case"MONTH":return"monthly";case"WEEK":return"weekly";case"YEAR":return"yearly";case"QUARTER":return"quarterly";case"HALF_YEAR":return"semi-annually";case"NIGHTLY":return"nightly";case"SEASONAL":return"seasonally";default:return""}},o=function(e){switch(e){case"DAY":return"day";case"WEEK":return"wk";case"MONTH":return"mo";case"YEAR":return"yr";case"QUARTER":return"3 mos";case"HALF_YEAR":return"6 mos";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},n=function(e){switch(e){case"DAY":return"day";case"WEEK":return"week";case"MONTH":return"month";case"YEAR":return"year";case"QUARTER":return"quarter";case"HALF_YEAR":return"6 months";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},l=function(e,t){let r,i,a=t||{};switch(a.mode){case"short":r=o(e),i=a.frequencySeparator||"/";break;case"standard":case"std":r=n(e),i=a.frequencySeparator||"/";break;default:r=s(e),i=a.frequencySeparator||" "}return r?a.frequencyTag||a.frequencyClass?`${i}<${a.frequencyTag||"span"}${a.frequencyClass?` class="${a.frequencyClass}"`:""}>${r}</${a.frequencyTag||"span"}>`:i+r:""};return{isEmpty(e,t){let r=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?r?t.fn(this):t.inverse(this):r},ifEquals(e,r,i){return t(e,r)?i.fn(this):i.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?p(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!1):"",striptagsLineBreaks:e=>e?p(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!0):"",truncate:(e,t,r)=>e?e.length>t?"string"==typeof r?e.slice(0,t-r.length)+r:e.slice(0,t):e:"",setSubArray(e=[],t,r,i,s){s.data.root[i]=e.slice(t,r)},formatAreaUnit(e){switch(e){case"ACRE":return"Acres";case"SQUARE_METER":return"Sq.M.";case"SQUARE_YARD":return"Sq.Yd.";default:return"Sq.Ft."}},formatFrequency:s,formatFrequencyShort:o,lpFormatFrequency:(e,t)=>l(e,t&&t.hash),subArray(e,t,r,i){return e>=t&&e<r?i.fn(this):i.inverse(this)},formatPropertyStatus(e,t,r){let i="";switch(e){case"SOLD":i="Sold";break;case"FOR_SALE":i="For Sale";break;case"COMING_SOON":i="Coming Soon";break;case"INACTIVE":i="Inactive";break;case"POCKET_LISTING":i="Pocket Listing";break;case"PENDING":i="Pending";break;case"UNDER_CONTRACT":i="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":i="Active Under Contract";break;default:i=e}return("Sold"===i||"Leased"===i)&&t&&"string"==typeof r&&r&&(i+=` on ${r}`),i},formatGrade(e){switch(e){case"UNDERGRADUATE_COURSES":return"Undergrad";case"PRE_KINDERGARTEN":return"PreK";case"KINDERGARTEN":return"K";case"FIRST_GRADE":return"1st";case"SECOND_GRADE":return"2nd";case"THIRD_GRADE":return"3rd";case"FOURTH_GRADE":return"4th";case"FIFTH_GRADE":return"5th";case"SIXTH_GRADE":return"6th";case"SEVENTH_GRADE":return"7th";case"EIGHTH_GRADE":return"8th";case"NINTH_GRADE":return"9th";case"TENTH_GRADE":return"10th";case"ELEVENTH_GRADE":return"11th";case"TWELFTH_GRADE":return"12th";default:return""}},encodeURI:e=>encodeURI(e),encodeURIComponent:e=>encodeURIComponent(e),hbFormatDate(e,t){if(!e)return"";let r="current"===e?new Date:new Date(e);if(Number.isNaN(r.getTime()))return"";if("YYYY"===t||"year"===t)return`${r.getFullYear()}`;if("MM/DD/YY"===t){let e=r.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${r.getDate()}/${r.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][r.getMonth()]} ${r.getDate()}, ${r.getFullYear()}`},openHousesFormat(e,t,r){if(!e||!t)return"";let i=e=>{let t=e.getHours();t>12&&(t-=12);let r=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?r+="PM":r+="AM",r},s="",o=e,n=t;
1521r&&(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())),`
1521<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}
1521return 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
1521ontact 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
1521ourceResource,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(()=>
1521o.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=`
1522  query PropertyDisclaimers($input: PropertyDisclaimersInput!) {
1523    propertyDisclaimers(input: $input) {
1524      feedId
1525      listingId
1526      resolvedFromListing
1527      listingCardAttribution
1528      listingDetailCourtesy
1529      listingDetailFooter
1530      logo
1531    }
1532  }
1533`;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 >
1533 .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=)
1533)|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=`
1534      <div id="modal-${r.id}" class="modal visible">
1535        <div class="modal-content">
1536          <div class="lightbox-video">
1537            <div class="video-player">
1538              <div class="embed-container">
1539                ${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>`}
1540              </div>
1541            </div>
1542          </div>
1543        </div>
1544        <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button>
1545      </div>
1546    `;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
1546=>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");
1546let 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
1546URIComponent(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=`
1547      <button class="lp-lightbox__close" aria-label="close modal"></button>
1548      <div class="lp-lightbox__content">
1549        <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery">
1550          <div class="splide__arrows">
1551            <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button>
1552            <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button>
1553          </div>
1554          <div class="splide__track">
1555            <ul class="splide__list"></ul>
1556          </div>
1557        </div>
1558      </div>
1559    `,"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
1559h(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=`
1560        <button class="lp-lightbox__close" aria-label="close modal"></button>
1561        <div class="lp-lightbox__content">
1562          <div class="lp-lightbox__carousel"></div>
1563        </div>
1564      `,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"}
1564)),(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"];
1564return 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=`
1565      query {
1566        validSession {
1567          success
1568        }
1569      }
1570    `;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","
1570spaceTypeIds","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];
1570if("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})}})();
1571//# sourceMappingURL=lp-sdk.js.map
1572
1573    </script>
1573
1574
1575    
1575<script>
1576        var lpGlobalInitialized = false;
1577
1578        function lpGlobalInit () {
1579          if (lpGlobalInitialized) {
1580            return;
1581          }
1582            lpGlobalInitialized = true;
1583            // Initialize wow animation plugin only according to turbolinks
1584            var wow;
1585            if (window.WOW) {
1586                wow = new WOW({
1587                    animateClass: 'animated',
1588                    offset: wowOffset,
1589                    live: false,
1590                    callback: function(box) {}
1591                });
1592            }
1593            // Initialize handlebar helpers only once
1594            function handlebarsInit() {
1595              if (!window.Handlebars) {
1596                return;
1597              }
1598              HandlebarsIntl.registerWith(Handlebars);
1599              Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars));
1600            }
1601
1602            handlebarsInit();
1603
1604              var modalContentUrl = "/modals.html";
1605                const modalsContainer = document.getElementById('modals');
1606                if (modalsContainer) {
1607                  fetch(modalContentUrl).then(function(res) {
1608                    if (!res.ok) {
1609                      throw new Error(`HTTP error! Status: ${res.status}`);
1610                    }
1611                    return res.text();
1612                  }).then(function(resultText) {
1613                    modalsContainer.innerHTML = resultText;
1614
1615                    // now we need to execute all script elements
1616                    Array.from(modalsContainer.getElementsByTagName('script')).forEach(function (s) {
1617                      const script  = document.createElement("script");
1618                      script.text = s.innerHTML;
1619                      Array.from(s.attributes).forEach(function (a) {
1620                        script.setAttribute(a.name, a.value);
1621                      })
1622                      s.parentNode.replaceChild(script, s);
1623                    });
1624
1625                    try {
1626                      window.luxuryPresence.modals.initialize(window.luxuryPresence._modalIncludes);
1627                      window.luxuryPresence.contactForms.initialize({ selector: '#modals' });
1628                      window.luxuryPresence.validation.initialize({ selector: '#modals' });
1629                      window.luxuryPresence.oauth.initialize({
1630                        googleSignOnEnabled: true,
1631                        iframe: false });
1632                    } catch (e) {
1633                      console.log(e);
1634                    }
1635                    document.querySelectorAll('.modals > .modal .close').forEach(closeModalBtn => {
1636                      closeModalBtn.addEventListener('click', function() {
1637                        window.lpUI.hideClosestModal(closeModalBtn);
1638                      });
1639                    });
1640                  }).catch((e) => console.log(e));
1641                }
1642            /* Initialize Luxury Presence SDK */
1643            try {
1644                window.luxuryPresence.config.setCompany("1b2e84eb-ab00-4e30-a6ec-30fa180236eb", {});
1645                window.luxuryPresence.config.setWebsite("3c006d45-b4eb-4033-b25f-50521cf2281b", {
1646                    myhomeDashboardEnabled: true,
1647                    mlsEnabled: true,
1648                    hstValuationRedirectEnabled: true,
1649                    hvStepTwoCaptureEnabled: false
1650                });
1651                const url = new URL(window.location.href);
1652                const shareId = url.searchParams.get('shareId');
1653                window.luxuryPresence.config.setPage("036d2c12-8ced-4e24-8e35-c4d0f9b73d6e", {
1654                    sourceResource: "",
1655                    pageElementId: "",
1656                    pageQueryVariables: {},
1657                    shareId: "",
1658                });
1659                window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {});
1660                window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {});
1661                    window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {});
1662                  window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {});
1663                  window.luxuryPresence.config.setEventBus({
1664                    enabled: true,
1665                    apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr",
1666                    url: "https://p.luxurypresence.com",
1667                  });
1668                window.luxuryPresence.config.setTemplateId("dbfbedc7-c7e2-4812-86ee-0ee198862c21", {});
1669                window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {});
1670                window.luxuryPresence.buttons.initialize({});
1671                    window.luxuryPresence.consent.initialize({ provider: 'lp-consent' });
1672                window.luxuryPresence.contactForms.initialize({});
1673                window.luxuryPresence.validation.initialize({});
1674                window.luxuryPresence.expandSliders.initialize({});
1675                window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false });
1676                window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true });
1677                /* Optional: cached pages / older SDKs may not carry this controller */
1678                window.luxuryPresence.currencyConversion?.initialize();
1679            } catch (e) {
1680                console.log(e);
1681            }
1682
1683            /* Inject Section Specific Javascript */
1684                try {
1685(function init(sectionDomId) {
1686  const disclaimerLabel = document.querySelector('#' + sectionDomId + ' .lp-tcr-content');
1687  if (disclaimerLabel) {
1688    const input = disclaimerLabel.querySelector('input');
1689    if (input) {
1690      input.setAttribute('id', `${sectionDomId}-termsAccepted`);
1691      input.value = 'true';
1692      const label = document.createElement('label');
1693      label.setAttribute('for', `${sectionDomId}-termsAccepted`);
1694      label.classList.add('lp-visually-hidden');
1695      label.textContent = 'Opt in/Disclaimer Consent:';
1696      disclaimerLabel.prepend(label);
1697    }
1698  }
1699  function setHttp(link) {
1700    if (link.search(/^http[s]?\:\/\/|\//) == -1) {
1701      link = 'https://' + link;
1702    }
1703    return link;
1704  }
1705  const socialLinks = document.querySelectorAll('#' + sectionDomId + ' .socials__link, #' + sectionDomId + ' .lp-socials__link');
1706  socialLinks.forEach(linkElement => {
1707    const href = linkElement.getAttribute('href');
1708    if (href) {
1709      linkElement.setAttribute('href', setHttp(href));
1710    }
1711  });
1712  const redirectLink = $('#' + sectionDomId + ' .redirect-link');
1713  if (redirectLink.length) {
1714    const rawHref = setHttp(redirectLink.attr('href'));
1715    let formEvent;
1716    if (rawHref) {
1717      formEvent = redirectLink.data('redirect') ? 'formsubmitted' : 'reset';
1718      $('#' + sectionDomId + ' .contact-form').find('form').on(formEvent, function () {
1719        redirectLink.attr('href', rawHref);
1720        redirectLink[0].click();
1721      });
1722    }
1723  }
1724})('modal-global-contact-us');
1725} catch(e) {
1726console.log(e);
1727}
1728                
1729                try {
1730(function init(sectionDomId) {
1731  const $section = $('#' + sectionDomId);
1732  const $hamburger = $section.find('.hamburger-component');
1733  function onSideMenuShow() {
1734    if (!$hamburger.hasClass('active')) {
1735      $hamburger.addClass('active');
1736    }
1737  }
1738  function onSideMenuHide() {
1739    $hamburger.removeClass('active');
1740  }
1741  const $window = $(window);
1742  $window.on('lpui-sidemenu-show.lpui-auto-clean', onSideMenuShow);
1743  $window.on('lpui-sidemenu-hide.lpui-auto-clean', onSideMenuHide);
1744  const $subContainers = $section.find('.navigation__item.sub-nav-container');
1745  $subContainers.hover(function () {
1746    $(this).find('.sub-nav').addClass('visible');
1747  }, function () {
1748    $(this).find('.sub-nav').removeClass('visible');
1749  });
1750  $window.on('click.lpui-auto-clean', function () {
1751    $('.sub-nav-container.visible-dropdown').removeClass('visible-dropdown');
1752  });
1753  let fixedWidth = 0;
1754  const rightPad = 20;
1755  function fixSubsPosition() {
1756    const wWidth = window.innerWidth;
1757    if (innerWidth === fixedWidth) {
1758      return;
1759    }
1760    fixedWidth = wWidth;
1761    $subContainers.each(function () {
1762      const $sub = $(this).find('.sub-nav');
1763      $sub[0].style.right = '';
1764      const sRect = $sub[0].getBoundingClientRect();
1765      const sRight = sRect.left + sRect.width;
1766      if (sRight > wWidth - rightPad) {
1767        const parentRect = $sub[0].offsetParent.getBoundingClientRect();
1768        const parentRight = parentRect.left + parentRect.width;
1769        $sub[0].style.right = `${parentRight - wWidth + rightPad}px`;
1770      }
1771    });
1772  }
1773  var debouncer;
1774  $window.on('resize.lpui-auto-clean', function () {
1775    clearTimeout(debouncer);
1776    debouncer = setTimeout(fixSubsPosition, 500);
1777  });
1778  fixSubsPosition();
1779  if ($('.property-intro').length || $('.property-intro-2').length) {
1780    $('nav').addClass('dark-opening');
1781    $("#global-navbar").css({
1782      "background-color": "rgb(26, 26, 26)",
1783      "color": "rgb(255, 255, 255)"
1784    });
1785  }
1786  function initAutoTruncateMenu() {
1787    const $navbar = $section.find('.navbar');
1788    const $navList = $section.find('.navigation > ul');
1789    if (!$navbar.length || !$navList.length) {
1790      return;
1791    }
1792    const $logo = $section.find('.logo');
1793    const $buttonsWrapper = $section.find('.buttons-wrapper');
1794    const $allItems = $navList.children('.navigation__item');
1795    const $phoneItem = $allItems.filter(function () {
1796      return $(this).find('a[href^="tel:"]').length > 0;
1797    });
1798    const $menuItems = $allItems.not($phoneItem);
1799    if (!$menuItems.length) {
1800      return;
1801    }
1802    const buffer = 8;
1803    function measureFixedWidth() {
1804      let width = buffer;
1805      if ($logo.length) {
1806        width += $logo.outerWidth(true) || 0;
1807      }
1808      if ($buttonsWrapper.length) {
1809        width += $buttonsWrapper.outerWidth(true) || 0;
1810      }
1811      if ($phoneItem.length) {
1812        width += $phoneItem.outerWidth(true) || 0;
1813      }
1814      return width;
1815    }
1816    function truncateMenu() {
1817      if (!$navList.is(':visible')) {
1818        return;
1819      }
1820      $menuItems.css('display', '');
1821      const availableWidth = $navbar[0].getBoundingClientRect().width - measureFixedWidth();
1822      let widthSoFar = 0;
1823      let overflowed = false;
1824      $menuItems.each(function () {
1825        const $item = $(this);
1826        if (overflowed) {
1827          $item.css('display', 'none');
1828          return;
1829        }
1830        widthSoFar += $item.outerWidth(true);
1831        if (widthSoFar > availableWidth) {
1832          $item.css('display', 'none');
1833          overflowed = true;
1834        }
1835      });
1836    }
1837    let truncateFrame;
1838    function scheduleTruncate() {
1839      if (truncateFrame) {
1840        return;
1841      }
1842      truncateFrame = window.requestAnimationFrame(function () {
1843        truncateFrame = null;
1844        truncateMenu();
1845      });
1846    }
1847    scheduleTruncate();
1848    if (window.ResizeObserver) {
1849      const resizeObserver = new ResizeObserver(scheduleTruncate);
1850      resizeObserver.observe($navbar[0]);
1851    } else {
1852      $(window).on('resize.lpui-auto-truncate', scheduleTruncate);
1853    }
1854    $section.find('img').on('load.lpui-auto-truncate', scheduleTruncate);
1855    $(window).on('load.lpui-auto-truncate', scheduleTruncate);
1856    if (document.fonts && document.fonts.ready) {
1857      document.fonts.ready.then(scheduleTruncate);
1858    }
1859  }
1860  initAutoTruncateMenu();
1861})('global-navbar');
1862} catch(e) {
1863console.log(e);
1864}
1865                try {
1866(function init(sectionDomId, options) {
1867  var elementSelector = options.elementSelector || 'nav';
1868  var element = document.querySelector(elementSelector);
1869  var sections = document.querySelectorAll('body > section');
1870  var subNavContainers = element.querySelectorAll('.sub-nav');
1871  var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor;
1872  var backgroundColorScroll = options.backgroundColorScroll || '#191919';
1873  var fontColor = options.fontColor || '#fff';
1874  var fontColorScroll = options.fontColorScroll || '#000';
1875  var didScroll = false;
1876  var lastScrollTop = 0;
1877  var delta = 5;
1878
1879  // eslint-disable-next-line sonarjs/no-collapsible-if
1880  if (wow) {
1881    // Wowjs might not trigger for position fixed elements
1882    if (window.scrollY > 0) {
1883      element.querySelectorAll('.wow').forEach(el => wow.show(el));
1884    }
1885  }
1886  function adjustNavPinState() {
1887    // Remove 'visible' class from all subNavContainers
1888    for (let i = 0; i < subNavContainers.length; i++) {
1889      subNavContainers[i].classList.remove('visible');
1890    }
1891    if (window.scrollY > 0) {
1892      element.style.backgroundColor = backgroundColorScroll;
1893      element.style.color = fontColorScroll;
1894      element.classList.add('scroll');
1895    } else {
1896      element.style.backgroundColor = initialBackgroundColor;
1897      element.style.color = fontColor;
1898      element.classList.remove('scroll');
1899    }
1900  }
1901  adjustNavPinState();
1902  function onScroll() {
1903    didScroll = true;
1904  }
1905  window.addEventListener('scroll', onScroll);
1906
1907  // eslint-disable-next-line
1908  var debounceInterval = setInterval(() => {
1909    if (didScroll) {
1910      // eslint-disable-next-line
1911      hasScrolled();
1912      didScroll = false;
1913    }
1914  }, 250);
1915  function hasScrolled() {
1916    adjustNavPinState();
1917    // eslint-disable-next-line
1918    var navbarHeight = element.offsetHeight;
1919    // eslint-disable-next-line
1920    var st = window.scrollY;
1921
1922    // Make sure they scroll more than delta
1923    if (Math.abs(lastScrollTop - st) <= delta) {
1924      return;
1925    }
1926    if (st > lastScrollTop && st > navbarHeight) {
1927      // Scroll Down
1928      element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`;
1929      document.documentElement.style.setProperty('--global-header-height', '0px');
1930
1931      // Some sections "follow" the navbar with class sticky (i.e. Producer search)
1932      sections.forEach(section => {
1933        if (section.classList.contains('sticky')) {
1934          section.style.top = '0px';
1935        }
1936      });
1937    } else {
1938      // Scroll Up
1939      // eslint-disable-next-line
1940      if (st + window.innerHeight < document.documentElement.scrollHeight) {
1941        element.style.transform = `translateY(0) scaleY(1)`;
1942        document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`);
1943        sections.forEach(section => {
1944          if (section.classList.contains('sticky')) {
1945            section.style.top = `${navbarHeight}px`;
1946          }
1947        });
1948      }
1949    }
1950    lastScrollTop = st;
1951  }
1952})('NAVBAR', JSON.parse("{\"fontColor\":\"#fff\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#fff\",\"initialFontColor\":\"#fff\",\"backgroundColorScroll\":\"#1a1a1a\",\"initialBackgroundColor\":\"rgba(0,0,0,0)\"}"));
1953} catch(e) {
1954console.log(e);
1955}
1956                try {
1957(function init(sectionDomId) {
1958  var sidemenu = $('#' + sectionDomId);
1959  sidemenu.on('lpui-sidemenu-show.lpui-auto-clean', function () {
1960    window.lpUI.requestScrollLock(sectionDomId);
1961  });
1962  $(window).on('lpui-sidemenu-hide.lpui-auto-clean', function () {
1963    window.lpUI.releaseScrollLock(sectionDomId);
1964  });
1965  $(window).click(function (e) {
1966    let targetContactForm = $(e.target).closest('#modal-global-contact-us').length;
1967    let targetSideMenu = $(e.target).closest('.sidemenu').length;
1968    let targetContactItem = $(e.target).closest('[data-type="CONTACT_US"]').length;
1969    let targetHamburger = $(e.target).closest('.hamburger-component').length;
1970    if (!(targetContactForm || targetSideMenu || targetContactItem || targetHamburger)) {
1971      $('body').removeClass('locked');
1972      $('.hamburger').removeClass('active');
1973      $('.sidemenu').removeClass('visible');
1974      $('#modal-global-contact-us').removeClass('visible');
1975    }
1976  });
1977})('global-sidemenu');
1978} catch(e) {
1979console.log(e);
1980}
1981                
1982                try {
1983(function init(footerId) {
1984  var textContent = $(".text_content_wrap p").text().trim().length;
1985  const socialLinks = $(`#${footerId} .lp-socials__link`);
1986  if (textContent < 1) {
1987    $(".text_content_wrap").remove();
1988    $(".second_text_footer").css({
1989      'margin-bottom': 0
1990    });
1991  }
1992  if (socialLinks.length > 0) {
1993    socialLinks.attr('data-wow-offset', '10');
1994  }
1995  if ($(window).width() > 1280) {
1996    let footer = document.querySelector("#" + footerId);
1997    let copyrightElem = footer.querySelector(".copy_zone");
1998    if (copyrightElem) {
1999      copyrightElem.style.whiteSpace = "nowrap";
2000      let nowrapElemWidth = copyrightElem.clientWidth;
2001      copyrightElem.style.whiteSpace = "";
2002      let normalElemWidth = copyrightElem.clientWidth;
2003      if (nowrapElemWidth > normalElemWidth) {
2004        footer.querySelector(".form-col--socials").classList.add("form-col--xl-auto");
2005      }
2006    }
2007  }
2008  const form = $("#" + footerId).find("form");
2009  const redirectLink = $('#' + footerId + ' .redirect-link');
2010  form.on("reset", function () {
2011    redirectPage(redirectLink);
2012  });
2013  function redirectPage(link) {
2014    if (link.length) {
2015      const rawHref = link.attr('href');
2016      link.attr('href', setHttp(rawHref));
2017      link[0].click();
2018    }
2019  }
2020  function setHttp(link) {
2021    if (link.search(/^http[s]?\:\/\/|\//) == -1) {
2022      link = 'http://' + link;
2023    }
2024    return link;
2025  }
2026})('global-footer');
2027} catch(e) {
2028console.log(e);
2029}
2030                
2031                try {
2032(function init(options) {})('global-mobile-contact');
2033} catch(e) {
2034console.log(e);
2035}
2036                
2037                try {
2038(function init(sectionDomId, options) {
2039  let section = null;
2040  switch (sectionDomId) {
2041    case 'NAVBAR':
2042      section = document.querySelector('body > nav, #global-navbar');
2043      break;
2044    case 'FOOTER':
2045      section = document.querySelector('body > footer, #global-footer');
2046      break;
2047    case 'SIDEMENU':
2048      section = document.querySelector('body > div.sidemenu, #global-sidemenu');
2049      break;
2050    case 'CONTACT':
2051      section = document.querySelector('#modal-global-contact-us');
2052      break;
2053    case 'MOBILE_CONTACT':
2054      section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact');
2055      break;
2056    case 'SUBSCRIBE':
2057      // Subscribe Not Implemented
2058      section = null;
2059      break;
2060    case 'ACCOUNT':
2061      // Account Not Implemented
2062      section = null;
2063      break;
2064    default:
2065      section = document.querySelector('#' + sectionDomId);
2066  }
2067  if (!section) {
2068    return;
2069  }
2070
2071  // Where content / items are rendered
2072  const dataContainer = section.querySelector('.data-container');
2073  if (!dataContainer) {
2074    // no place to render items = no need to query server or do anything else
2075    return;
2076  }
2077  let variables = options.variables || {};
2078
2079  // Some variables in options may not have been injected - remove
2080  Object.keys(variables).forEach(function (variableName) {
2081    if (typeof variables[variableName] === 'string' && variables[variableName].match(/^{{.*}}$/)) {
2082      delete variables[variableName];
2083    }
2084  });
2085
2086  // Merge page query variables
2087  if (options.usePageResource) {
2088    variables = {
2089      ...variables,
2090      ...window.luxuryPresence.config.pageMeta.pageQueryVariables[options.resource]
2091    };
2092  }
2093
2094  // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Callers
2095  // resolve the flag — fetchData reads the section stamp, aux fetches read
2096  // their own resource's stamp (auxUsesRouter).
2097  function apiUrl(useRouter) {
2098    return options.url || (useRouter ? window.luxuryPresence.defaults.routerUrl : window.luxuryPresence.defaults.apiGatewayUrl);
2099  }
2100
2101  // ROUTER-CLEANUP: aux resources roll out on their own flag, not the section's
2102  // (options.routerApiAux is stamped per aux resource server-side).
2103  function auxUsesRouter(resource) {
2104    return !!(options.routerApiAux && options.routerApiAux[resource]);
2105  }
2106
2107  // Pagination Executes on a Numbered Pagination Container
2108  //  Or via a load more button
2109  let mode = 'BUTTONLESS_PAGINATION';
2110  const container = section.querySelector('.pagination-container');
2111  const loadMoreButton = section.querySelector(options?.loadMoreSelector);
2112  if (container) {
2113    mode = 'NUMBERED_PAGINATION';
2114  }
2115  if (loadMoreButton) {
2116    mode = 'LOAD_MORE_BUTTON';
2117  }
2118  let searchContainer = section.querySelector('.search-container');
2119  const hidePaginationOnFirstPage = options.hidePaginationOnFirstPage || false;
2120  const eventPrefix = '__pagination-';
2121  const searchFormParams = options.searchFormParams || (options.resource === 'properties' ? [{
2122    param: 'neighborhoodId',
2123    urlKey: 'neighborhood'
2124  }, {
2125    param: 'search',
2126    urlKey: 'search'
2127  }, {
2128    param: 'salesPriceGTE',
2129    urlKey: 'pricemin',
2130    formKey: 'priceMin',
2131    type: 'int'
2132  }, {
2133    param: 'salesPriceLTE',
2134    urlKey: 'pricemax',
2135    formKey: 'priceMax',
2136    type: 'int'
2137  }, {
2138    param: 'livingSpaceSizeGTE',
2139    urlKey: 'areamin',
2140    formKey: 'areaMin',
2141    type: 'int'
2142  }, {
2143    param: 'livingSpaceSizeLTE',
2144    urlKey: 'areamax',
2145    formKey: 'areaMax',
2146    type: 'int'
2147  }] : []);
2148
2149  // Total entries - initialized in first render
2150  let totalNumber = 0;
2151  const DefaultSearchParams = {
2152    page: 1
2153  };
2154  searchFormParams.forEach(function (formParam) {
2155    DefaultSearchParams[formParam.formKey || formParam.param] = null;
2156  });
2157  let searchParams = {
2158    ...DefaultSearchParams
2159  };
2160  const offset = options.variables?.offset || 0;
2161  let scrollTarget = options.scrollTargetSelector ? section.querySelector(options.scrollTargetSelector) || section : section;
2162  let scrollOffset = (parseInt(options.scrollOffset, 10) || 0) ?? 100;
2163
2164  // entries of per page
2165  // when query variables for a given section would't be filled options.pageSize can store
2166  // template string, ex: "{{variables.limit}}", below code handles that case and set 9 as a default value
2167  let pageSize = parseInt(options.pageSize, 10) || 9;
2168
2169  // Adding mobile pageRange support
2170  var NARROW_BREAKPOINT = 600;
2171  var mobileBreakpoint = options.mobileBreakpoint > 0 ? options.mobileBreakpoint : NARROW_BREAKPOINT;
2172  var paginationMql = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`);
2173
2174  // Page range (pages on both sides of the current page)
2175  var mobilePageRange = options.mobilePageRange > 0 ? options.mobilePageRange : 0;
2176  var desktopPageRange = options.pageRange >= 0 ? options.pageRange : 2;
2177  var pageRange = paginationMql.matches ? mobilePageRange : desktopPageRange;
2178
2179  // Whether to display the 'Previous' button
2180  var showPrevious = true;
2181
2182  // Whether to display the 'Next' button
2183  var showNext = true;
2184
2185  // Whether to display the page buttons
2186  var showPageNumbers = true;
2187
2188  // 'Previous' text
2189  var prevText = options.prevText || '&laquo;';
2190
2191  // 'Next' text
2192  var nextText = options.nextText || '&raquo;';
2193
2194  // Ellipsis text
2195  var ellipsisText = '&hellip;';
2196  var classPrefix = 'paginationjs';
2197
2198  // Default active class
2199  var activeClassName = 'active';
2200
2201  // Default disable class
2202  var disableClassName = 'disabled';
2203
2204  // Pagination element's position in the container
2205  var position = 'bottom';
2206
2207  // Whether to trigger pagination at initialization
2208  var triggerPagingOnInit = !options.skipInitialLoad;
2209  var showFirstOnEllipsisShow = true;
2210  var showLastOnEllipsisShow = true;
2211
2212  // Instantiated in init()
2213  var el = null;
2214
2215  // Controls scrollTop logic
2216  var firstRender = true;
2217  var renderBySearch = false;
2218  var disabled = false;
2219
2220  // Pagination script class selector
2221  var paginationScriptSelector = options.paginationPartialName ? `.${options.paginationPartialName}` : '.pagination-script';
2222
2223  // Property Specific Image Override if No Image
2224  var propertyPlaceholderImage = window.luxuryPresence.defaults.propertyPlaceholderImage;
2225
2226  // Construct template
2227  var templateHTML = section.querySelector(`script${paginationScriptSelector}`)?.innerHTML || '';
2228  var template = Handlebars.compile(templateHTML);
2229
2230  // Initialize
2231  init();
2232  function init() {
2233    Object.assign(searchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId));
2234
2235    // Append/prepend pagination element to the pagination container
2236    if (mode === 'NUMBERED_PAGINATION') {
2237      el = document.createElement('div');
2238      el.className = 'paginationjs';
2239      container[position === 'bottom' ? 'append' : 'prepend'](el);
2240    }
2241    if (searchContainer) {
2242      initSearchContainer({
2243        fetchNeighborhoods: searchContainer.dataset.fetchNeighborhoods === 'true',
2244        fetchPostCategories: searchContainer.dataset.fetchPostCategories === 'true',
2245        fetchOffices: searchContainer.dataset.fetchOffices === 'true',
2246        fetchRentalRates: searchContainer.dataset.fetchRentalRates === 'true'
2247      }, function () {
2248        syncSearchFormState(searchParams);
2249      });
2250    }
2251
2252    // Bind events
2253    observer();
2254  }
2255  function syncSearchFormState(params) {
2256    searchContainer.dispatchEvent(new CustomEvent('sync', {
2257      detail: params
2258    }));
2259  }
2260  function initSearchContainer(options, done) {
2261    var promises = [];
2262    if (options.fetchNeighborhoods) {
2263      promises.push(fetchAllNeighborhoods(function (neighborhoods) {
2264        searchContainer.dispatchEvent(new CustomEvent('neighborhoods-data', {
2265          detail: {
2266            data: neighborhoods.map(function (item) {
2267              return {
2268                value: item.id,
2269                label: item.name
2270              };
2271            })
2272          }
2273        }));
2274      }));
2275    }
2276    if (options.fetchPostCategories) {
2277      promises.push(fetchPostCategories(function (categories) {
2278        searchContainer.dispatchEvent(new CustomEvent('post-categories-data', {
2279          detail: {
2280            data: categories
2281          }
2282        }));
2283      }));
2284    }
2285    if (options.fetchOffices) {
2286      promises.push(fetchOffices(function (offices) {
2287        searchContainer.dispatchEvent(new CustomEvent('offices-data', {
2288          detail: {
2289            data: offices
2290          }
2291        }));
2292      }));
2293    }
2294    if (options.fetchRentalRates) {
2295      promises.push(fetchAllRentalRates(function (rentalRates) {
2296        searchContainer.dispatchEvent(new CustomEvent('rental-rates-data', {
2297          detail: {
2298            data: rentalRates
2299          }
2300        }));
2301      }));
2302    }
2303    if (promises.length > 0) {
2304      Promise.all(promises).then(function () {
2305        done();
2306      });
2307    } else {
2308      // element's custom code is not executed yet, so we're scheduling callback to after element's code
2309      setTimeout(done);
2310    }
2311  }
2312  function fetchAllNeighborhoods(done) {
2313    var useRouter = auxUsesRouter('neighborhoods');
2314    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Same
2315    // args on both APIs (the federated neighborhoods field accepts
2316    // withProperties/withBlogPosts); only the selection set differs.
2317    var gqlQuery = 'query ($companyId: String, $withProperties: NeighborhoodPropertiesFilter, $withBlogPosts: NeighborhoodBlogPostsFilter, $offset: Int, $limit: Int) {' + 'neighborhoods (companyId: $companyId, withProperties: $withProperties, withBlogPosts: $withBlogPosts, offset: $offset, limit: $limit) {' + (useRouter ? 'items {id, name}' : 'id, name') + '}}';
2318    var payload = {};
2319    payload.offset = 0;
2320    payload.limit = 100;
2321    payload.companyId = variables.companyId;
2322    if (options.resource === 'properties') {
2323      payload.withProperties = {
2324        active: true
2325      };
2326      ['agentIds', 'tag', 'propertyTypeId', 'statusIds', 'architectureStyle', 'lifestyle', 'salesPriceGTE', 'salesPriceLTE', 'leasePriceGTE', 'leasePriceLTE', 'livingSpaceSizeGTE', 'livingSpaceSizeLTE', 'bathCountGTE', 'bathCountLTE', 'bedroomCountGTE', 'bedroomCountLTE', 'bathCountGTE', 'bathCountLTE', 'bedroomCountGTE', 'bedroomCountLTE', 'featuredListing', 'leaseProperty', 'neighborhoodId', 'developmentId', 'openHouse'].forEach(function (field) {
2327        if (variables[field] !== undefined && variables[field] !== null) {
2328          payload.withProperties[field] = variables[field];
2329        }
2330      });
2331    }
2332    if (options.resource === 'posts') {
2333      payload.withBlogPosts = {
2334        active: true
2335      };
2336      ['search', 'postStatusId', 'featured', 'categoryId', 'categoryIds', 'neighborhoodId', 'slug'].forEach(function (field) {
2337        if (variables[field] !== undefined && variables[field] !== null) {
2338          payload.withBlogPosts[field] = variables[field];
2339        }
2340      });
2341    }
2342
2343    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2344    if (useRouter) {
2345      payload = window.luxuryPresence.routerApi.transformVariables('neighborhoods', payload);
2346    }
2347    superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({
2348      query: gqlQuery,
2349      variables: payload
2350    }).then(function (res) {
2351      var value = res.body.data && res.body.data.neighborhoods || {};
2352      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2353      var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || [];
2354      done(items, items.length);
2355    });
2356  }
2357  function fetchPostCategories(done) {
2358    var featured = options.resource === 'posts' && !!variables.featured;
2359    var useRouter = auxUsesRouter('postCategories');
2360    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the
2361    // selection set differs ({ items {...} } on the router).
2362    var selection = 'id, name, publishedCount, featuredPublishedCount';
2363    var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'postCategories (companyId: $companyId, offset: $offset, limit: $limit ' + (featured ? ' withFeaturedPublishedOnly: true' : ' withPublishedOnly: true') + ') {' + (useRouter ? 'items {' + selection + '}' : selection) + '}}';
2364    var payload = {};
2365    payload.offset = 0;
2366    payload.limit = 100;
2367    payload.companyId = variables.companyId;
2368    superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({
2369      query: gqlQuery,
2370      variables: payload
2371    }).then(function (res) {
2372      var value = res.body.data && res.body.data.postCategories || {};
2373      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2374      var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || [];
2375      done(items.map(function (item) {
2376        item.count = featured ? item.featuredPublishedCount : item.publishedCount;
2377        return item;
2378      }), items.length);
2379    });
2380  }
2381  function fetchOffices(done) {
2382    var useRouter = auxUsesRouter('offices');
2383    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the
2384    // selection set differs ({ items {...} } on the router).
2385    var selection = 'id, name, tags';
2386    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. The two
2387    // APIs differ in more than the items wrapper: federated offices takes
2388    // companyId: ID! (legacy gateway: String), so each branch builds its whole doc.
2389    var gqlQuery = useRouter ? 'query ($companyId: ID!, $offset: Int, $limit: Int) {' + 'offices (companyId: $companyId, offset: $offset, limit: $limit) {' + 'items {' + selection + '}}}' : 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'offices (companyId: $companyId, offset: $offset, limit: $limit) {' + selection + '}}';
2390    var payload = {
2391      offset: 0,
2392      limit: 100,
2393      companyId: variables.companyId
2394    };
2395
2396    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2397    if (useRouter) {
2398      payload = window.luxuryPresence.routerApi.transformVariables('office
2398s', payload);
2399    }
2400    superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({
2401      query: gqlQuery,
2402      variables: payload
2403    }).then(function (res) {
2404      var value = res.body.data && res.body.data.offices || {};
2405      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2406      var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || [];
2407      done(items, items.length);
2408    });
2409  }
2410
2411  // ROUTER-CLEANUP: no rentalRates field on the federated router — legacy only.
2412  function fetchAllRentalRates(done) {
2413    var url = options.url || window.luxuryPresence.defaults.apiGatewayUrl;
2414    var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'rentalRates (companyId: $companyId, offset: $offset, limit: $limit) {rentalRateId, label}}';
2415    var payload = {
2416      offset: 0,
2417      limit: 100,
2418      companyId: variables.companyId
2419    };
2420    superagent.post(url + '/graphql').withCredentials().send({
2421      query: gqlQuery,
2422      variables: payload
2423    }).then(function (res) {
2424      var items = res.body.data && res.body.data.rentalRates || [];
2425      done(items, items.length);
2426    }).catch(function (err) {
2427      console.error('Error fetching rental rates:', err);
2428      done([], 0);
2429    });
2430  }
2431  function fetchData(params, done) {
2432    var resource = options.resource;
2433    var gqlQuery = options.query || window.luxuryPresence.defaults.gql[resource];
2434    var payload = {};
2435    try {
2436      payload = JSON.parse(JSON.stringify(variables));
2437    } catch (e) {
2438      Object.keys(variables).forEach(function (variableName) {
2439        payload[variableName] = variables[variableName];
2440      });
2441    }
2442    payload.offset = (params.page - 1) * pageSize + offset;
2443    payload.limit = pageSize;
2444    payload.companyId = options.companyId;
2445    searchFormParams.forEach(function (formParam) {
2446      var val = params[formParam.formKey || formParam.param];
2447      if (val !== null && val !== undefined) {
2448        objSet(payload, formParam.param, val);
2449      }
2450    });
2451
2452    // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2453    if (options.useRouterApi) {
2454      payload = window.luxuryPresence.routerApi.transformVariables(resource, payload);
2455    }
2456
2457    // TODO: Disabled loading due to jarring effect
2458    // dataContainer.html('Loading...');
2459    superagent.post(apiUrl(options.useRouterApi) + '/graphql').withCredentials().send({
2460      query: gqlQuery,
2461      variables: payload
2462    }).then(function (res) {
2463      if (res.body.errors) {
2464        done(res.body.errors);
2465        return;
2466      }
2467      var data = res.body.data || {};
2468      // ROUTER-CLEANUP: keep router branch, drop legacy when API retired
2469      var resources;
2470      var resourceCount;
2471      if (options.useRouterApi) {
2472        var page = window.luxuryPresence.routerApi.transformPage(data[resource]);
2473        resources = window.luxuryPresence.routerApi.transformResponse(resource, page.items);
2474        resourceCount = page.count;
2475      } else {
2476        resources = data[resource] || [];
2477        resourceCount = data[resource + 'Count'] && data[resource + 'Count'].count ? data[resource + 'Count'].count : 0;
2478      }
2479      const finish = function (items) {
2480        if (resource === 'properties' && propertyPlaceholderImage?.id) {
2481          items = items.map(item => {
2482            if (item.media?.length === 0) {
2483              return Object.assign(item, {
2484                media: [propertyPlaceholderImage]
2485              });
2486            }
2487            return item;
2488          });
2489        }
2490        done(null, items, resourceCount);
2491      };
2492
2493      // ROUTER-CLEANUP: client half of PLAT-4073 — resolve the requested
2494      // disclaimers before rendering; older SDKs skip (keys stay unset).
2495      if (options.useRouterApi && resource === 'properties' && options.routerPropertyDisclaimers && options.routerPropertyDisclaimers.length && window.luxuryPresence.routerApi && typeof window.luxuryPresence.routerApi.applyPropertyDisclaimers === 'function') {
2496        window.luxuryPresence.routerApi.applyPropertyDisclaimers(resources, options.routerPropertyDisclaimers).then(finish);
2497        return;
2498      }
2499      finish(resources);
2500    });
2501  }
2502  function getTotalPage() {
2503    return Math.ceil(totalNumber / pageSize);
2504  }
2505  function renderPaginationList() {
2506    var totalPages = getTotalPage();
2507    var rangeStart = searchParams.page - pageRange;
2508    var rangeEnd = searchParams.page + pageRange;
2509    if (rangeEnd > totalPages) {
2510      rangeEnd = totalPages;
2511      rangeStart = totalPages - pageRange * 2;
2512      rangeStart = rangeStart < 1 ? 1 : rangeStart;
2513    }
2514    if (rangeStart <= 1) {
2515      rangeStart = 1;
2516      rangeEnd = Math.min(pageRange * 2 + 1, totalPages);
2517    }
2518
2519    // Making sure that 1 more page button is shown in edge positions
2520    if (pageRange === 0) {
2521      if (searchParams.page === totalPages) {
2522        rangeStart = totalPages <= 1 ? 1 : totalPages - 1;
2523      }
2524      if (searchParams.page === 1) {
2525        rangeEnd = Math.min(2, totalPages);
2526      }
2527    }
2528
2529    // Render pagination list
2530    if (mode === 'NUMBERED_PAGINATION') {
2531      el.innerHTML = generateHTML({
2532        currentPage: searchParams.page,
2533        pageRange: pageRange,
2534        rangeStart: rangeStart,
2535        rangeEnd: rangeEnd
2536      });
2537      if (totalPages < 2 && hidePaginationOnFirstPage) {
2538        container.style.display = 'none';
2539      } else {
2540        container.style.display = '';
2541      }
2542    } else if (mode === 'LOAD_MORE_BUTTON') {
2543      if (searchParams.page >= totalPages) {
2544        loadMoreButton.style.display = 'none';
2545      } else {
2546        loadMoreButton.style.display = '';
2547      }
2548    }
2549  }
2550  function render(data) {
2551    renderPaginationList();
2552
2553    // Render new content with handlebars
2554    var html = '';
2555    if (mode === 'LOAD_MORE_BUTTON' && searchParams.page > 1) {
2556      // If using load more, append search results to existing results
2557      html = dataContainer.innerHTML;
2558    }
2559    for (var i = 0; i < data.length; i++) {
2560      var itemData = recursivelyParse(data[i]);
2561      itemData.sectionIndex = options.sectionIndex;
2562      itemData.renderOptions = options.renderOptions;
2563      html += template(itemData);
2564    }
2565    dataContainer.innerHTML = html;
2566
2567    // Scroll Top
2568    if (!firstRender && mode === 'NUMBERED_PAGINATION' && (!renderBySearch || !options.skipScrollOnSearch)) {
2569      // Only animate to the top if we replace dataContainer (numbered pagination)
2570      setTimeout(() => {
2571        const scrollTargetOffsetTop = scrollTarget.getBoundingClientRect().top + window.scrollY - scrollOffset;
2572        window.scrollTo({
2573          top: scrollTargetOffsetTop,
2574          behavior: 'smooth'
2575        });
2576      }, 250);
2577    }
2578    return true;
2579  }
2580  function generateHTML(args) {
2581    const totalPages = getTotalPage();
2582    const {
2583      rangeStart,
2584      rangeEnd
2585    } = args;
2586    const makeLnk = page => window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, {
2587      ...searchParams,
2588      page
2589    });
2590    let html = '';
2591    if (showPrevious || showPageNumbers || showNext) {
2592      html += '<div class="paginationjs-pages"><ul>';
2593
2594      // Previous button
2595      if (showPrevious) {
2596        if (searchParams.page <= 1) {
2597          html += `<li class="${classPrefix}-prev ${disableClassName}"><a>${prevText}</a></li>`;
2598        } else {
2599          html += `<li class="${classPrefix}-prev J-paginationjs-previous" data-num="${searchParams.page - 1}" title="Previous page"><a href="${makeLnk(searchParams.page - 1)}">${prevText}</a></li>`;
2600        }
2601      }
2602
2603      // Pages
2604      if (showPageNumbers) {
2605        if (rangeStart <= 3) {
2606          for (let i = 1; i < rangeStart; i++) {
2607            html += `<li class="${classPrefix}-page J-paginationjs-page ${i === searchParams.page ? activeClassName : ''}" data-num="${i}"><a ${i === searchParams.page ? '' : `href="${makeLnk(i)}"`}>${i}</a></li>`;
2608          }
2609        } else {
2610          if (showFirstOnEllipsisShow) {
2611            html += `<li class="${classPrefix}-page ${classPrefix}-first J-paginationjs-page" data-num="1"><a href="${makeLnk(1)}">1</a></li>`;
2612          }
2613          html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`;
2614        }
2615        for (let i = rangeStart; i <= rangeEnd; i++) {
2616          html += `<li class="${classPrefix}-page J-paginationjs-page ${i === searchParams.page ? activeClassName : ''}" data-num="${i}"><a ${i === searchParams.page ? '' : `href="${makeLnk(i)}"`}>${i}</a></li>`;
2617        }
2618        if (rangeEnd < totalPages - 2) {
2619          html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`;
2620          if (showLastOnEllipsisShow) {
2621            html += `<li class="${classPrefix}-page ${classPrefix}-last J-paginationjs-page" data-num="${totalPages}"><a href="${makeLnk(totalPages)}">${totalPages}</a></li>`;
2622          }
2623        } else {
2624          for (let i = rangeEnd + 1; i <= totalPages; i++) {
2625            html += `<li class="${classPrefix}-page J-paginationjs-page" data-num="${i}"><a href="${makeLnk(i)}">${i}</a></li>`;
2626          }
2627        }
2628      }
2629
2630      // Next button
2631      if (showNext) {
2632        if (searchParams.page >= totalPages) {
2633          html += `<li class="${classPrefix}-next ${disableClassName}"><a>${nextText}</a></li>`;
2634        } else {
2635          html += `<li class="${classPrefix}-next J-paginationjs-next" data-num="${searchParams.page + 1}" title="Next page"><a href="${makeLnk(searchParams.page + 1)}">${nextText}</a></li>`;
2636        }
2637      }
2638      html += '</ul></div>';
2639    }
2640    return html;
2641  }
2642  function go(newSearchParams, callback, restorationVisit) {
2643    if (disabled) return;
2644    var goToPageNumber = newSearchParams.page;
2645
2646    // Page number is out of bounds
2647    if (!goToPageNumber || goToPageNumber < 1) return;
2648    var totalPage = getTotalPage();
2649
2650    // Page number is out of bounds
2651    if (!restorationVisit && totalNumber > 0) {
2652      if (goToPageNumber > totalPage) return;
2653    }
2654    if (!options.skipSerialization && (mode === 'NUMBERED_PAGINATION' || searchContainer)) {
2655      var newURL = window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, {
2656        ...newSearchParams,
2657        page: goToPageNumber !== 1 && mode === 'NUMBERED_PAGINATION' ? newSearchParams.page : null
2658      });
2659      if (!areQueryParamsEqual(newSearchParams, searchParams) && !restorationVisit) {
2660        window.history.pushState({}, '', window.luxuryPresence.getPath(newURL, {
2661          queryString: true
2662        }));
2663      }
2664    }
2665
2666    // Fetch and update page
2667    fetchData(newSearchParams, renderWithData);
2668    disabled = true;
2669    function renderWithData(err, data, count) {
2670      if (err) {
2671        dataContainer.dispatchEvent(new Event('error'));
2672      } else {
2673        searchParams = {
2674          ...newSearchParams
2675        };
2676        totalNumber = count - offset;
2677        if (data.length === 0) {
2678          dataContainer.dispatchEvent(new Event('no-data'));
2679        } else {
2680          dataContainer.dispatchEvent(new Event('data'));
2681        }
2682        render(data);
2683        firstRender = false;
2684      }
2685      disabled = false;
2686      renderBySearch = false;
2687    }
2688  }
2689  function areQueryParamsEqual(first, second) {
2690    var differ = Object.keys(first).find(function (key) {
2691      return first[key] !== undefined && first[key] !== null && first[key] !== second[key];
2692    });
2693    if (differ) {
2694      return false;
2695    }
2696    differ = Object.keys(second).find(function (key) {
2697      return second[key] !== undefined && second[key] !== null && second[key] !== first[key];
2698    });
2699    return !differ;
2700  }
2701  function next(callback) {
2702    go({
2703      ...searchParams,
2704      page: searchParams.page + 1
2705    }, callback);
2706  }
2707  function previous(callback) {
2708    go({
2709      ...searchParams,
2710      page: searchParams.page - 1
2711    }, callback);
2712  }
2713  function refresh(callback) {
2714    go(searchParams, callback);
2715  }
2716  function update(params, callback) {
2717    renderBySearch = true;
2718    go(params, callback);
2719  }
2720  function observer() {
2721    if (searchContainer) {
2722      searchContainer.addEventListener('search', function (event, newSearchParams) {
2723        newSearchParams = event.detail || newSearchParams;
2724        update({
2725          ...searchParams,
2726          ...newSearchParams,
2727          page: 1
2728        });
2729      });
2730      searchContainer.addEventListener('clear-search', function () {
2731        const defaultSearchParams = {
2732          ...DefaultSearchParams
2733        };
2734        const isCurrentSearchFormStateDefault = areQueryParamsEqual({
2735          ...defaultSearchParams,
2736          page: null
2737        }, {
2738          ...searchParams,
2739          page: null
2740        });
2741
2742        // if mode is LOAD_MORE_BUTTON we should't make anything on clear
2743        // when search form have default state
2744        if (isCurrentSearchFormStateDefault && mode !== 'NUMBERED_PAGINATION') {
2745          return;
2746        }
2747
2748        // if someone initially go to some page and click 'Clear' on search from
2749        // we should't navigate to first page. We should preserve page value
2750        if (isCurrentSearchFormStateDefault) {
2751          defaultSearchParams.page = searchParams.page;
2752        }
2753        syncSearchFormState(defaultSearchParams);
2754        update(defaultSearchParams);
2755      });
2756    }
2757    if (mode === 'LOAD_MORE_BUTTON') {
2758      loadMoreButton.addEventListener('click', function (event) {
2759        go({
2760          ...searchParams,
2761          page: searchParams.page + 1
2762        });
2763        return false;
2764      });
2765    }
2766    if (mode === 'LOAD_MORE_BUTTON' || mode === 'BUTTONLESS_PAGINATION') {
2767      // Do initial render
2768      go(Object.assign({}, searchParams, {
2769        page: 1
2770      }));
2771      return;
2772    }
2773    if (mode === 'NUMBERED_PAGINATION') {
2774      // Go to specified page number
2775      container.addEventListener(eventPrefix + 'go', function (event) {
2776        let {
2777          pageNumber,
2778          done
2779        } = event.detail || {};
2780        pageNumber = parseInt(pageNumber, 10);
2781        if (!pageNumber) {
2782          return;
2783        }
2784        go({
2785          ...searchParams,
2786          page: pageNumber
2787        }, done);
2788      });
2789
2790      // Page number button click
2791      el.addEventListener('click', function (event) {
2792        let clickTarget = event.target;
2793        let current = clickTarget.closest('.J-paginationjs-page, .J-paginationjs-previous, .J-paginationjs-next');
2794        let pageNumber = current?.getAttribute('data-num');
2795        if (!pageNumber || current.classList.contains(disableClassName) || current.classList.contains(activeClassName)) {
2796          return;
2797        } else {
2798          go({
2799            ...searchParams,
2800            page: parseInt(pageNumber, 10)
2801          });
2802        }
2803        event.preventDefault();
2804      });
2805
2806      // Whether to load the default page
2807      var defaultPageNumber = searchParams.page;
2808      if (triggerPagingOnInit) {
2809        container.dispatchEvent(new CustomEvent(eventPrefix + 'go', {
2810          detail: {
2811            pageNumber: defaultPageNumber
2812          }
2813        }));
2814      }
2815    }
2816    window.addEventListener('popstate', function (event) {
2817      var newParams = Object.assign({}, DefaultSearchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId));
2818      if (!areQueryParamsEqual(newParams, searchParams)) {
2819        go(newParams, null, true);
2820        if (searchContainer) {
2821          syncSearchFormState(newParams);
2822        }
2823      }
2824    });
2825  }
2826  function replaceVariables(template, variables) {
2827    var formattedString;
2828    for (var key in variables) {
2829      var value = variables[key];
2830      var regexp = new RegExp('<%=\\s*' + key + '\\s*%>', 'img');
2831      formattedString = (formattedString || template).replace(regexp, value);
2832    }
2833    return formattedString;
2834  }
2835  function isTextEditorValue(obj) {
2836    return 'raw' in obj || 'gjs' in obj;
2837  }
2838  function getTextEditorValue(obj) {
2839    if (!obj.html) {
2840      return '';
2841    }
2842    var data = obj.html;
2843    var css = (obj.raw || obj.gjs || {}).css;
2844    if (css) {
2845      data = data + '<style>' + css + '</style>';
2846    }
2847    return data;
2848  }
2849
2850  /**
2851   * check rendered resources for html and raw properties that could indicate if resource is from an advanced text editor.
2852   * strips out raw proprties and returns only HTML if it exists.
2853   * @param {Object} resources a collection retrieved from the database
2854   * @return {Object} the newly modified object.
2855   */
2856  function recursivelyParse(resources) {
2857    forEach(resources, function (value, key) {
2858      if (!value) {
2859        return;
2860      }
2861      if (value instanceof Object) {
2862        if (isTextEditorValue(value)) {
2863          resources[key] = getTextEditorValue(value);
2864          return;
2865        } else {
2866          return recursivelyParse(value);
2867        }
2868      }
2869      try {
2870        var parsedData = JSON.parse(value);
2871        if (isTextEditorValue(parsedData)) {
2872          resources[key] = getTextEditorValue(parsedData);
2873        }
2874      } catch (e) {
2875        // do nothing if we failed to parse value as JSON
2876      }
2877    });
2878    return resources;
2879  }
2880  function forEach(collection, iteratee) {
2881    var func = Array.isArray(collection) ? arrayEach : baseFor;
2882    return func(collection, iteratee);
2883  }
2884  function baseFor(object, iteratee) {
2885    if (!object) {
2886      return;
2887    }
2888    var iterable = Object(object);
2889    var props = Object.keys(object);
2890    var length = props.length;
2891    var index = -1;
2892    while (length--) {
2893      var key = props[++index];
2894      if (iteratee(iterable[key], key, iterable) === false) {
2895        break;
2896      }
2897    }
2898    return object;
2899  }
2900  function objSet(obj, path, value) {
2901    const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g);
2902    pathArray.reduce((acc, key, i) => {
2903      if (acc[key] === undefined) acc[key] = {};
2904      if (i === pathArray.length - 1) acc[key] = value;
2905      return acc[key];
2906    }, obj);
2907  }
2908  function arrayEach(array, iteratee) {
2909    var index = -1;
2910    var length = array.length;
2911    while (++index < length) {
2912      if (iteratee(array[index], index, array) === false) {
2913        break;
2914      }
2915    }
2916    return array;
2917  }
2918  function selectPageRangeMode(e) {
2919    pageRange = e.matches ? mobilePageRange : desktopPageRange;
2920    renderPaginationList();
2921  }
2922  paginationMql.addEventListener('change', selectPageRangeMode);
2923})('section-9246491e-d5f8-41a8-a437-7e55d6487d07', JSON.parse("{\"pageSize\":\"8\",\"resource\":\"agents\",\"pageRange\":0,\"variables\":{\"limit\":8,\"offset\":0,\"companyId\":\"1b2e84eb-ab00-4e30-a6ec-30fa180236eb\",\"categoryId\":\"{{pageElement.categoryId}}\",\"sort\":\"displayOrder\",\"sortDir\":\"ASC\"},\"searchFormParams\":[{\"param\":\"search\",\"urlKey\":\"search\"},{\"param\":\"officeId\",\"global\":true,\"urlKey\":\"officeId\"},{\"param\":\"tags\",\"global\":true,\"urlKey\":\"area\"},{\"param\":\"tagsMode\",\"global\":true,\"urlKey\":\"tagsMode\"}],\"skipScrollOnSearch\":false,\"scrollTargetSelector\":\".search-form\",\"hidePaginationOnFirstPage\":true,\"companyId\":\"1b2e84eb-ab00-4e30-a6ec-30fa180236eb\",\"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}}"));
2924} catch(e) {
2925console.log(e);
2926}
2927                try {
2928(function init(sectionDomId) {
2929  const $section = $("#" + sectionDomId);
2930  const $searchContainer = $section.find(".search-container");
2931  const $officeSelect = $section.find('.js-office-input');
2932  const $tagSelect = $section.find('.js-tag-input');
2933  const $searchInput = $section.find('.js-search-input');
2934  const $emptyMsg = $section.find('.js-empty-message');
2935  const $dataContainer = $section.find('.data-container');
2936  const $containter = $section.find('.js-container');
2937  const officeFilter = $searchContainer.data('fetchOffices');
2938  const defaultTagsMode = $searchContainer.data('variables')?.tagsMode || 'ANY';
2939  const defaultTags = $searchContainer.data('variables')?.tags || [];
2940  const $resetSearchInput = $searchContainer.find('.lp-input-reset');
2941  convertSelectToDropdown($tagSelect);
2942  $resetSearchInput.on('click', function (event) {
2943    event.preventDefault();
2944    $searchInput.val('');
2945    onSearch();
2946  });
2947  $dataContainer.on("data", function () {
2948    $emptyMsg.removeClass("visible");
2949    $containter.removeClass('no-data');
2950  });
2951  $dataContainer.on("no-data", function () {
2952    $emptyMsg.addClass("visible");
2953    $containter.addClass('no-data');
2954  });
2955  $searchInput.on('input', window.luxuryPresence.debounce(onSearch, 1000));
2956  function onSearch() {
2957    const params = {};
2958    if (officeFilter) params.officeId = $officeSelect.val() === '' ? null : [$officeSelect.val()];
2959    if ($tagSelect.length > 0 && $tagSelect.val() !== '') {
2960      params.tagsMode = 'ANY';
2961      params.tags = [$tagSelect.val()];
2962    } else {
2963      params.tagsMode = defaultTagsMode;
2964      params.tags = defaultTags;
2965    }
2966    params.search = $searchInput.val() || null;
2967    $searchContainer[0]?.dispatchEvent(new CustomEvent('search', {
2968      detail: params
2969    }));
2970  }
2971  if (!officeFilter && $tagSelect.length === 0) return;
2972  var previousOption = '';
2973  $searchContainer.on('offices-data', (evt, {
2974    data
2975  } = {}) => {
2976    data = evt.detail?.data || data;
2977    $officeSelect.append(data.map(office => `<option value="${office.id}">${office.name}</option>`).join("\n"));
2978    convertSelectToDropdown($officeSelect);
2979  });
2980  function updateDropdown(select, value) {
2981    let $dropdown = $(select).next();
2982    let $dropdownToggle = $dropdown.find(".custom-select-toggle");
2983    let $dropdownContent = $dropdown.find(".custom-select-content");
2984    let $selectedOption = $dropdownContent.find(`button[value="${value}"]`);
2985    function unselectOption() {
2986      $linkedOption = $originalSelect.find("option").eq(0);
2987      $linkedOption.prop("selected", true);
2988      $dropdownToggle.html($linkedOption.html());
2989      $dropdownContent.find(".custom-select-item").removeClass("is-selected");
2990      $originalSelect.change();
2991      previousOption = "";
2992    }
2993    if (!$selectedOption) return;
2994    if ($selectedOption.hasClass("is-disabled")) return;
2995    let elementNumber = $selectedOption.index();
2996    let $originalSelect = $selectedOption.closest(".custom-select").siblings("select");
2997    let $linkedOption = $originalSelect.find("option").eq(elementNumber);
2998    if (previousOption === value) {
2999      unselectOption();
3000      return;
3001    }
3002    if (!$linkedOption.prop("selected")) {
3003      $linkedOption.prop("selected", true);
3004      previousOption = value;
3005      $originalSelect.change();
3006      $selectedOption.addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected");
3007      closeSelectMenu($selectedOption.closest(".custom-select-menu"));
3008      $dropdownToggle.html($linkedOption.html());
3009      if ($linkedOption.val()) {
3010        $dropdownToggle.removeClass("is-placeholder");
3011        $dropdown[$linkedOption.val() !== "" ? "addClass" : "removeClass"]("has-selection");
3012      } else {
3013        $dropdown.removeClass("has-selection");
3014        $dropdownToggle.addClass("is-placeholder");
3015      }
3016    }
3017  }
3018  function convertSelectToDropdown(selectItem) {
3019    let customDropdown = `
3020          <div class="custom-select" role="presentation">
3021              <button class="custom-select-toggle" type="button" aria-haspopup="true" aria-expanded="false"></button>
3022              <div class="custom-select-menu">
3023                  <div class="custom-select-content">
3024                  </div>
3025              </div>
3026          </div>`;
3027    $(customDropdown).insertAfter(selectItem);
3028    let $dropdown = $(selectItem).next();
3029    let $dropdownToggle = $dropdown.find(".custom-select-toggle");
3030    let $dropdownMenu = $dropdown.find(".custom-select-menu");
3031    let $dropdownContent = $dropdown.find(".custom-select-content");
3032    $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select");
3033    $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom");
3034    $dropdownToggle.attr("data-name", $(selectItem).attr("name"));
3035    $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id"));
3036    appendOptionButtons(selectItem, $dropdownContent);
3037    $(selectItem).removeClass().addClass("sr-only");
3038    $(selectItem).on("focus", function () {
3039      showSelectMenu($dropdownMenu[0]);
3040      $dropdownToggle.focus();
3041    });
3042    var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text();
3043    $dropdownToggle.addClass("is-placeholder").html(toggleText);
3044    $dropdown.on("click", ".custom-select-item", function (e) {
3045      updateDropdown($(this).closest(".lp-input-group").find("select"), $(this).attr("value"));
3046    });
3047    function convertOptionToButton(option) {
3048      var optionText = $(option).text();
3049      var optionValue = $(option).attr("value") || $(option).text();
3050      var optionIsDisabled = $(option).prop("disabled");
3051      var outputButton = `<button value="${optionValue}" class="custom-select-item lp-icon" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`;
3052      return outputButton;
3053    }
3054    function appendOptionButtons(selectItem, appendTarget) {
3055      $(selectItem).find("option").each(function () {
3056        let currentButton = convertOptionToButton(this);
3057        $(appendTarget).append(currentButton);
3058      });
3059    }
3060    function showSelectMenu(selectMenu) {
3061      var customSelect = $(selectMenu).closest(".custom-select")[0];
3062      customSelect.classList.add('open');
3063      $(selectMenu).slideDown();
3064    }
3065    $dropdown.on("click", ".custom-select-toggle", function (e) {
3066      var $customSelect = $(this).closest(".custom-select");
3067      var selectMenu = $customSelect.find(".custom-select-menu")[0];
3068      if ($customSelect.hasClass("open")) {
3069        closeSelectMenu(selectMenu);
3070      } else {
3071        showSelectMenu(selectMenu);
3072      }
3073    });
3074    $(document.body).on("click", function (e) {
3075      if (!$(e.target).closest(`#${sectionDomId} .js-select-input`).length) {
3076        $(`#${sectionDomId} .custom-select.open`).each(function () {
3077          const selectMenu = $(this).find(".custom-select-menu")[0];
3078          closeSelectMenu(selectMenu);
3079        });
3080      }
3081    });
3082  }
3083  function closeSelectMenu(selectMenu) {
3084    var customSelect = $(selectMenu).closest(".custom-select")[0];
3085    $(customSelect).removeClass("open");
3086    $(selectMenu).slideUp();
3087  }
3088  $officeSelect.change(onSearch);
3089  $tagSelect.change(onSearch);
3090})('section-9246491e-d5f8-41a8-a437-7e55d6487d07', JSON.parse("{\"resource\":\"agents\",\"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\":\"1b2e84eb-ab00-4e30-a6ec-30fa180236eb\",\"usePageResource\":false,\"sectionIndex\":2}"));
3091} catch(e) {
3092console.log(e);
3093}
3094                try {
3095(function init(sectionDomId) {
3096  const $section = $('#' + sectionDomId);
3097  if ($section.find('.parallax').length) $section.addClass('parallax-enabled');
3098  if ($section.find('.video-wrapper').length) $section.addClass('video');
3099})('section-dadd7d75-7345-43e0-9c8b-3d30a9b2aa75', 'undefined');
3100} catch(e) {
3101console.log(e);
3102}
3103                try {
3104(function init(sectionDomId, options) {
3105  let section = null;
3106  switch (sectionDomId) {
3107    case 'NAVBAR':
3108      section = document.querySelector('body > nav, #global-navbar');
3109      break;
3110    case 'FOOTER':
3111      section = document.querySelector('body > footer, #global-footer');
3112      break;
3113    case 'SIDEMENU':
3114      section = document.querySelector('body > div.sidemenu, #global-sidemenu');
3115      break;
3116    case 'CONTACT':
3117      section = document.querySelector('#modal-global-contact-us');
3118      break;
3119    case 'MOBILE_CONTACT':
3120      section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact');
3121      break;
3122    case 'SUBSCRIBE':
3123      // Subscribe Not Implemented
3124      section = null;
3125      break;
3126    case 'ACCOUNT':
3127      // Account Not Implemented
3128      section = null;
3129      break;
3130    default:
3131      section = document.querySelector('#' + sectionDomId);
3132  }
3133  if (!section) {
3134    return;
3135  }
3136  var url = window.luxuryPresence.defaults.routerUrl;
3137  var companyId = window.luxuryPresence.defaults.companyId;
3138  var limit = options.limit || 8;
3139  if (typeof limit === 'string') {
3140    limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected
3141  }
3142  var templateSelector = options.templateSelector || '.jsIGTemplate';
3143  var containerSelector = options.containerSelector || '.jsIGContainer';
3144  var hasDataClass = options.hasDataClass || 'has-data';
3145  var hideActivateMessage = options.hasDataClass || false;
3146  var payload = {
3147    companyId: companyId,
3148    limit: limit
3149  };
3150  if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) {
3151    payload.resourceId = options.resourceId;
3152    // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase
3153    payload.resource = String(options.resource || 'agent').toUpperCase();
3154    payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true;
3155  }
3156  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';
3157  var templateHTML = section.querySelector(templateSelector)?.innerHTML || '';
3158  var template = Handlebars.compile(templateHTML);
3159  var container = section.querySelector(containerSelector);
3160  if (options.variables) {
3161    Object.keys(options.variables).forEach(function (key) {
3162      if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) {
3163        payload[key] = options.variables[key];
3164      }
3165    });
3166  }
3167  function getData() {
3168    var feed = {
3169      error: true
3170    };
3171    if (payload.companyId == null || payload.companyId === '') {
3172      // instagramContentFeed requires companyId (ID!) — nothing to fetch without it.
3173      // Checked after the options.variables merge, which may override the default.
3174      // Deferred so element listeners (attached after this template runs) still receive it.
3175      setTimeout(function () {
3176        section.dispatchEvent(new CustomEvent('ig-data', {
3177          detail: feed
3178        }));
3179      }, 0);
3180      return;
3181    }
3182    superagent.post(url + '/graphql').send({
3183      query: query,
3184      variables: payload
3185    }).then(res => {
3186      try {
3187        if (!res.body.errors) {
3188          feed = res.body.data.instagramContentFeed;
3189          if (!feed.active) {
3190            if (!hideActivateMessage && sectionDomId === 'section-temp' && container) {
3191              if (payload.resourceId) {
3192                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>';
3193              } else {
3194                container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>';
3195              }
3196            }
3197          } else {
3198            if (feed.items.length) {
3199              if (hasDataClass) {
3200                section.classList.add(hasDataClass);
3201              }
3202              const feedName = feed.username;
3203              section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl));
3204              section.querySelectorAll('.jsIGName').forEach(name => {
3205                name.textContent = '@' + feedName;
3206                name.setAttribute('title', '@' + feedName);
3207              });
3208              if (container && template) {
3209                container.innerHTML = template(feed);
3210              }
3211            }
3212          }
3213        }
3214      } catch (e) {}
3215      section.dispatchEvent(new CustomEvent('ig-data', {
3216        detail: feed
3217      }));
3218    }).catch(e => {
3219      console.log('err', e);
3220      section.dispatchEvent(new CustomEvent('ig-data', {
3221        detail: feed
3222      }));
3223    });
3224  }
3225  getData();
3226})('section-840698fa-42be-4d74-b5a0-781c1f3985f0', JSON.parse("{\"limit\":5,\"resource\":\"agent\",\"resourceId\":\"\",\"fallbackToNoResource\":\"true\",\"companyId\":\"1b2e84eb-ab00-4e30-a6ec-30fa180236eb\",\"usePageResource\":false,\"sectionIndex\":4,\"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}}"));
3227} catch(e) {
3228console.log(e);
3229}
3230                try {
3231(function init(sectionId) {
3232  const $section = $('#' + sectionId);
3233  const $autoShrinks = $section.find('.jsShrink');
3234  const toAdjust = [];
3235  const minFontSize = 10;
3236  $autoShrinks.each(function () {
3237    const $el = $(this);
3238    const $parent = $el.parent();
3239    const {
3240      $cl: $sizer
3241    } = makeElementCopy($el, $parent);
3242    const {
3243      $cl: $sizerMin
3244    } = makeElementCopy($el, $parent);
3245    toAdjust.push({
3246      $el,
3247      $parent,
3248      $sizer,
3249      $sizerMin,
3250      altered: false
3251    });
3252  });
3253  adjustSizes();
3254  $section.on('ig-data', adjustSizes);
3255  $(window).on('resize.lpui-auto-clean', adjustSizes);
3256  function makeElementCopy($el, $parent) {
3257    const $cont = $('<div style="width: 0; height: 0; position: relative; overflow: hidden;"></div>');
3258    $parent.prepend($cont);
3259    const $cl = $el.clone().removeClass('wow fadeInUp jsShrink').appendTo($cont);
3260    $cl[0].removeAttribute('style');
3261    $cl[0].removeAttribute('data-wow-delay');
3262    $cl.css({
3263      'position': 'absolute',
3264      'overflow-wrap': 'normal',
3265      'white-space': 'nowrap'
3266    });
3267    return {
3268      $cont,
3269      $cl
3270    };
3271  }
3272  function resetStyles(item) {
3273    if (item.altered) {
3274      item.$el[0].style.fontSize = '';
3275      item.$el[0].style.letterSpacing = '';
3276      item.altered = false;
3277    }
3278  }
3279  function setStyles($el, k, fontSize, letterSpacing) {
3280    $el.css('font-size', `${Math.floor(fontSize * k)}px`);
3281    if (letterSpacing) {
3282      $el.css('letter-spacing', `${letterSpacing * k}px`);
3283    }
3284  }
3285  function adjustSizes() {
3286    toAdjust.forEach(function (item) {
3287      const {
3288        $el,
3289        $parent,
3290        $sizer,
3291        $sizerMin
3292      } = item;
3293      try {
3294        const contW = $parent[0].getBoundingClientRect().width;
3295        const sizeW = $sizer[0].getBoundingClientRect().width;
3296        if (!sizeW || contW >= sizeW) {
3297          resetStyles(item);
3298          return;
3299        }
3300        const mf = $sizer.css('font-size').match(/([\d\.]+)px/);
3301        if (!mf) {
3302          resetStyles(item);
3303          return;
3304        }
3305        const origFontSize = parseFloat(mf[1]);
3306        if (!origFontSize || origFontSize <= minFontSize) {
3307          resetStyles();
3308          return;
3309        }
3310        const ms = $sizer.css('letter-spacing').match(/([\d\.]+)px/);
3311        const origLetterSpacing = ms && parseFloat(ms[1]) || 0;
3312        const fontK = minFontSize / origFontSize;
3313        setStyles($sizerMin, fontK, origFontSize, origLetterSpacing);
3314        const minW = $sizerMin[0].getBoundingClientRect().width;
3315        item.altered = true;
3316        if (minW >= contW) {
3317          setStyles($el, fontK, origFontSize, origLetterSpacing);
3318        } else {
3319          setStyles($el, contW / minW * fontK, origFontSize, origLetterSpacing);
3320        }
3321      } catch (e) {
3322        console.log(e);
3323      }
3324    });
3325  }
3326})('section-840698fa-42be-4d74-b5a0-781c1f3985f0', 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\":\"1b2e84eb-ab00-4e30-a6ec-30fa180236eb\",\"usePageResource\":false,\"sectionIndex\":4}"));
3327} catch(e) {
3328console.log(e);
3329}
3330
3331            var { body } = document;
3332            var globalNav = body.querySelector(':scope > nav');
3333            var globalSideMenu = body.querySelector(':scope > div.sidemenu');
3334
3335            document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => {
3336                modalCloseBtn.addEventListener('click', function() {
3337                window.lpUI.hideClosestModal(modalCloseBtn);
3338              });
3339            });
3340
3341            window.addEventListener('click', function() {
3342                document.querySelectorAll('.share-popup').forEach(sharedPopup => {
3343                    sharedPopup.style.display = 'none' ;
3344                });
3345            });
3346
3347            /* Misc Partials / Addons */
3348            function initWOW() {
3349                if (wow) {
3350                    wow.init();
3351                    wow.scrollHandler();
3352                    setTimeout(function () {
3353                        const wowHideStyle = document.getElementById('wow-hide-elements');
3354                        if(wowHideStyle) {
3355                            wowHideStyle.disabled = true;
3356                        }
3357                    }, 1);
3358                }
3359            }
3360
3361            const wowHideElements =  document.getElementById('wow-hide-elements');
3362            if (wowHideElements) {
3363               wowHideElements.disabled = false;
3364            }
3365
3366                initWOW();
3367
3368            /* Generic Navbar Handling */
3369            globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => {
3370                hamburgerComponent.addEventListener('click', function() {
3371                window.lpUI.sideMenuToggle();
3372              });
3373            });
3374            globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => {
3375                toggleEl.addEventListener('click', function() {
3376                window.lpUI.sideMenuToggle();
3377              });
3378            });
3379
3380            document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => {
3381                linkEl.addEventListener('click', function(e) {
3382                  e.preventDefault();
3383                  e.stopPropagation();
3384                  var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav');
3385                  if (subNav && subNav.classList.contains('visible')){
3386                    subNav.classList.remove('visible');
3387                  } else {
3388                    globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => {
3389                      globalSubNav.classList.remove('visible');
3390                    });
3391                    globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => {
3392                        sideMenuSubNav.classList.remove('visible');
3393                    });
3394                    subNav?.classList.add('visible');
3395                  }
3396                });
3397            });
3398            window.addEventListener('click', function() {
3399                document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => {
3400                    subNavEl.classList.remove('visible');
3401                });
3402            });
3403
3404        }
3405
3406        document.addEventListener('DOMContentLoaded', lpGlobalInit);
3407
3408    </script>
3408
3409
3410    
3410<script type="module">
3411    function selectorExists(selector) {
3412        return document.querySelector(selector) !== null;
3413    }
3414
3415    // Function to initialize the third-party library
3416    function initParoller(selector = '.my-paroller') {
3417        var $parollerElements = $(selector);
3418        if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') {
3419            $parollerElements.paroller();
3420        }
3421    }
3422
3423    const parollerSelector = '.my-paroller';
3424
3425    if (selectorExists(parollerSelector)) {
3426        window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() {
3427            initParoller(parollerSelector);
3428            window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true;
3429        });
3430    }
3431    </script>
3431
3432
3433            <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3433-3434
3433
3434            <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3434GTM-T9SFQGHZ
vendor: 107 bytes, lines 3434-3436
3434"
3435            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
3436            
3436<!-- End Google Tag Manager -->
3437        
3437<script>
3438// adding follow up btn on ig element
3439    (function () {
3440  const sel = '.feed.redesign .lp-container';
3441  const btnClass = 'lp-follow-btn';
3442  const href = 'https://www.instagram.com/nobleblack1/';
3443
3444  function makeBtn() {
3445    if (document.querySelector(`.${btnClass}`)) return null;
3446    const a = document.createElement('a');
3447    a.className = btnClass;
3448    a.href = href;
3449    a.target = '_blank';
3450    a.rel = 'noopener noreferrer';
3451    a.textContent = 'Follow Us';
3452    return a;
3453  }
3454
3455  function insert() {
3456    const container = document.querySelector(sel);
3457    if (!container) return false;
3458    const btn = makeBtn();
3459    if (!btn) return true;
3460    const feed = container.querySelector('.feed__content');
3461    if (feed) feed.insertAdjacentElement('afterend', btn); 
3462    else container.appendChild(btn); 
3463    return true;
3464  }
3465
3466  if (document.readyState === 'loading') {
3467    document.addEventListener('DOMContentLoaded', insert);
3468  } else {
3469    if (!insert()) {
3470      setTimeout(insert, 200);
3471    }
3472  }
3473})();
3474</script>
3474
3475
3476
3477<script>
3478const nav = document.querySelector('.nav-conteiner');
3479const placeholder = document.querySelector('.nav-placeholder');
3480
3481let originalY = null;
3482let lastScrollY = window.scrollY;
3483const revealOffset = 100; // distancia a desplazar hacia abajo al hacer scroll up
3484
3485window.addEventListener('scroll', () => {
3486  const scrollY = window.scrollY;
3487
3488  // Capturamos la posición original en el primer scroll
3489  if (originalY === null && scrollY > 0) {
3490    originalY = nav.getBoundingClientRect().top + scrollY;
3491  }
3492
3493  if (originalY === null) return;
3494
3495  // Si todavía no llegó a la posición original → nav suelta
3496  if (scrollY < originalY) {
3497    nav.classList.remove('fixed', 'reveal');
3498    placeholder.style.height = "0px";
3499    lastScrollY = scrollY;
3500    return;
3501  }
3502
3503  // Llegó al top → nav fija
3504  nav.classList.add('fixed');
3505  placeholder.style.height = nav.offsetHeight + "px";
3506
3507  // Detectar dirección del scroll
3508  if (scrollY < lastScrollY) {
3509    // Scroll hacia arriba → mostrar la main nav (baja 100px)
3510    nav.classList.add('reveal');
3511  } else {
3512    // Scroll hacia abajo → oculta (queda pegada arriba)
3513    nav.classList.remove('reveal');
3514  }
3515
3516  lastScrollY = scrollY;
3517});
3518</script>
3518
3519
3520
3521<script>
3522document.addEventListener("DOMContentLoaded", function () {
3523  const containers = [
3524    document.getElementById("global-footer"),
3525    document.getElementById("modal-global-contact-us"),
3526  ];
3527
3528  containers.forEach((container) => {
3529    if (!container) return;
3530
3531    const mobileLink = container.querySelector('a[href="tel:3475263308"]');
3532    const officeLink = container.querySelector('a[href="tel:2123553550"]');
3533
3534    if (mobileLink && !mobileLink.textContent.trim().startsWith("M:")) {
3535      mobileLink.textContent = "M: " + mobileLink.textContent.trim();
3536    }
3537
3538    if (officeLink && !officeLink.textContent.trim().startsWith("O:")) {
3539      officeLink.textContent = "O: " + officeLink.textContent.trim();
3540    }
3541  });
3542});
3543</script>
3543
3544
3545
3546            
3546<script
3547                src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js"
3548                data-website-id="3c006d45-b4eb-4033-b25f-50521cf2281b"
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:'a480da7eaea4b1d6',t:'MTc5MTU4NTI3NA=='};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.