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>Atlanta Real Estate Tips & More | Team Rich Richardson</title> 10 <meta property="og:title" content="Atlanta Real Estate Tips & More | Team Rich Richardson"> 11 <meta name="twitter:title" content="Atlanta Real Estate Tips & More | Team Rich Richardson"> 12 <meta property="og:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/1aaa8e52-da75-458c-89f9-701e2ac686d7"> 13 <meta name="twitter:image" content="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/1aaa8e52-da75-458c-89f9-701e2ac686d7"> 14 <meta property="og:url" content="https://teamrr.com/blog"> 15 <link rel="canonical" href="https://teamrr.com/blog"> 16
16<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
16 17 <link rel="preconnect" href="https://fonts.googleapis.com"> 18 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 19 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Oswald:200,300,400,500,600,700"><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"> 20 <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'"> 21 <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript> 22 <link rel="icon" type="image/x-icon" href="/favicon.ico"> 23 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 24 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 25 <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"> 26 <style id="global-css">:root{--global-primary-font-family:Oswald,sans-serif;--global-primary-font-family-short:Oswald;--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:16px;--global-h1-font-size:70px;--global-h2-font-size:43px;--global-h3-font-size:30px;--global-h4-font-size:21px;--global-h5-font-size:17px;--global-h6-font-size:16px;--global-section-padding:96px;}@media (max-width: 768px){:root{--global-section-padding:64px;}}body{padding:0px;background-color:#fff;font-family:Poppins,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:Oswald,sans-serif;}h1{font-size:70px;}h2{font-size:43px;}h3{font-size:30px;}h4{font-size:21px;}h5{font-size:17px;}h6{font-size:16px;}</style> 27 <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/producer/index.css" /> 28 <style id="website-css">.redesign .btn--small{padding:20px 46px;}.lp-btn{padding:20px 46px!important;}button.newsletter-signup__form-item{line-height:1;font-weight:700;}#modal-global-contact-us .contact-form .section-message form .submitButton{padding:14px 20px;}h1{text-transform:uppercase!important;}.lp-h1{text-transform:uppercase!important;}h2{text-transform:uppercase!important;}.lp-h2{text-transform:uppercase!important;}h3{text-transform:uppercase!important;}.lp-h3{text-transform:uppercase!important;}h4{text-transform:uppercase!important;}.lp-h4{text-transform:uppercase!important;}h5{text-transform:uppercase!important;}.lp-h5{text-transform:uppercase!important;}div#global-sidemenu.sidemenu a,nav#global-navbar a{text-transform:uppercase;}div#global-sidemenu.sidemenu button,nav#global-navbar button{text-transform:uppercase;}nav#global-navbar .navigation__link{font-size:12px!important;}nav#global-navbar .header .navigation .sub-nav ul{background-color:transparent;}nav#global-navbar .header .navigation .sub-nav ul li{background-color:#F7F7F7;}nav#global-navbar .header .navigation .sub-nav ul li:hover{background-color:#232A30;}nav#global-navbar .header .navigation .sub-nav ul a{color:#6D6D6C;}nav#global-navbar{background-color:#F7F7F7!important;}nav#global-navbar .header{margin-top:0px;}nav#global-navbar li.navigation__item a.navigation__link{color:#232A30;font-size:12px!important;}nav#global-navbar li.navigation__item a.navigation__link span:after{background-color:#AB6333;}nav#global-navbar button.hamburger-component.hamburger{color:#232A30;}nav#global-navbar .header .navigation .sub-nav ul a:hover{color:#fff!important;}nav#global-navbar .header a.logo__link img:last-child{display:block!important;}nav#global-navbar .header a.logo__link img:first-child{display:none!important;}nav#global-navbar .header{padding-top:5px;padding-bottom:5px;}nav#global-navbar .header .logo{max-height:45px;}@media only screen and (min-width:768px){nav#global-navbar .header .logo a.logo__link img{max-height:45px;}}@media (max-width: 768px){footer#global-footer .footer .info-wrap .type_user{margin-bottom:21px;}}@media (min-width: 1201px){footer#global-footer .footer .info-wrap .type_user{margin-bottom:21px;}}footer#global-footer .footer .info-privacy .copy_zone a,footer#global-footer .footer .info-privacy .powered_zone a{font-weight:400;}footer#global-footer a.hvr_animation,footer#global-footer .lp-link{position:relative!important;color:#fff!important;-webkit-transition:0.4s;transition:0.4s;}footer#global-footer a.hvr_animation:hover,footer#global-footer .lp-link:hover{color:#AB6333!important;}footer#global-footer a.hvr_animation:before,footer#global-footer .lp-link:before,footer#global-footer a.hvr_animation:after,footer#global-footer .lp-link:after{-webkit-transition:0.4s;transition:0.4s;-webkit-text-decoration:none!important;text-decoration:none!important;line-height:1;content:"" "";height:1px;position:absolute!important;bottom:0;left:0;}footer#global-footer a.hvr_animation:before,footer#global-footer .lp-link:before{width:100%!important;background-color:#ccc!important;}footer#global-footer a.hvr_animation:after,footer#global-footer .lp-link:after{width:0%!important;background-color:#AB6333!important;}footer#global-footer a.hvr_animation:hover:after,footer#global-footer .lp-link:hover:after{width:100%!important;}#global-footer>div>div>div.info-wrap>div>div.info-wrap-contact_zone.type_user>div:nth-child(3)>p:before{content:"MOBILE NUMBER";display:block;font-size:14px;}#global-footer>div>div>div.info-wrap>div>div.info-wrap-contact_zone.type_user>div:nth-child(3)>p{font-size:0;}footer#global-footer .info-wrap-contact_zone:nth-of-type(2) .info-wrap-contact_cell:last-child .contact_title{font-size:0;letter-spacing:0;}footer#global-footer .info-wrap-contact_zone:nth-of-type(2) .info-wrap-contact_cell:last-child .contact_title:after{content:"OFFICE NUMBER";font-size:14px;line-height:1;letter-spacing:1.5px;}div#modal-global-contact-us .contact-form .info-zone .info-zone_contact_cell{margin-bottom:21px;}div#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:21px;}@media only screen and (max-width: 768px){div#modal-global-contact-us .contact-form .info-zone .type_user{margin-bottom:25px;}}div#modal-global-contact-us .contact-form .info-zone_contact{margin-bottom:14px;}div#modal-global-contact-us .contact-form .section-message h2{font-size:38px;}@media only screen and (max-width: 768px){div#modal-global-contact-us .contact-form .section-message h2{font-size:28px;}}div#modal-global-contact-us .contact-form h2{font-size:38px;}@media only screen and (max-width: 768px){div#modal-global-contact-us .contact-form h2{font-size:28px;}}#modal-global-contact-us .contact-form .section-message label{text-transform:uppercase;color:#fff!important;}#modal-global-contact-us .lp-input-group .lp-input{border-color:#fff!important;}div#modal-global-contact-us a:not(.lp-socials__link):after{background-color:#fff!important;}.info-zone_contact_cell a:hover{color:#AB6333!important;}.info-zone_contact_cell a:before{background-color:#ccc!important;width:100%;}.info-zone_contact_cell a:after{background-color:#AB6333!important;}.lp-tcr-message{font-weight:400;}#modal-global-contact-us>div>div>div>
28div.section-details>div>div:nth-child(1)>div>p{font-size:0;}#modal-global-contact-us>div>div>div>div.section-details>div>div:nth-child(1)>div>p:before{font-size:14px;content:'Mobile Number';}#modal-global-contact-us>div>div>div>div.section-details>div>div:nth-child(2)>div:nth-child(1)>p{font-size:0;}#modal-global-contact-us>div>div>div>div.section-details>div>div:nth-child(2)>div:nth-child(1)>p:before{font-size:14px;content:'Office Number';}#global-mobile-contact .pop-up .lp-disclaimer a{position:relative!important;color:#000!important;-webkit-transition:0.4s;transition:0.4s;font-weight:400;-webkit-text-decoration:none!important;text-decoration:none!important;display:inline-block;}#global-mobile-contact .pop-up .lp-disclaimer a:hover{color:#AB6333!important;}#global-mobile-contact .pop-up .lp-disclaimer a:before,#global-mobile-contact .pop-up .lp-disclaimer a:after{-webkit-transition:0.4s;transition:0.4s;-webkit-text-decoration:none!important;text-decoration:none!important;line-height:1;content:"" "";height:1px;position:absolute!important;bottom:0;left:0;}#global-mobile-contact .pop-up .lp-disclaimer a:before{width:100%!important;background-color:rgba(0, 0, 0, 0.1)!important;}#global-mobile-contact .pop-up .lp-disclaimer a:after{width:0%!important;background-color:#AB6333!important;}#global-mobile-contact .pop-up .lp-disclaimer a:hover:after{width:100%!important;}@media only screen and (max-width: 768px){#global-mobile-contact .pop-up .lp-disclaimer a{-webkit-text-decoration:underline;text-decoration:underline;}#global-mobile-contact .pop-up .lp-disclaimer a:before,#global-mobile-contact .pop-up .lp-disclaimer a:after{display:none;}#global-mobile-contact .pop-up .lp-disclaimer a:hover{color:#000;}}#global-mobile-contact .pop-up input,#global-mobile-contact .pop-up textarea{border-color:rgba(0, 0, 0, 0.1);-webkit-text-fill-color:#000;}#global-mobile-contact .pop-up input:focus,#global-mobile-contact .pop-up textarea:focus{border-color:rgba(0, 0, 0, 0.75);}#global-mobile-contact .pop-up .close-btn{color:#000;}#global-mobile-contact .pop-up .lp-container{padding:64px;}@media only screen and (max-width: 768px){#global-mobile-contact .pop-up .lp-container{padding:24px 24px;}}footer#global-footer .info-wrap-contact_zone:nth-child(2){-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;}footer#global-footer .info-wrap-contact_zone:nth-child(3){margin-top:-64px;}@media (max-width: 768px){footer#global-footer .info-wrap-contact_zone:nth-child(3){margin-top:0;}}footer#global-footer .footer div.type_user div.info-wrap-contact_cell:first-of-type{width:400px!important;}footer#global-footer .container .info-privacy{border-top-color:#AB6333;}@media (max-width: 768px){footer#global-footer .container .info-privacy .copy_zone{border-color:#AB6333;}}#global-mobile-contact .contact-form__inputs-container .contact-form__item .lp-input{border-color:#000;color:#000;}#global-mobile-contact .contact-form__inputs-container .contact-form__item .lp-input:-webkit-autofill{border:1px solid rgba(0,0,0, 0.9);-webkit-text-fill-color:#000!important;}#global-mobile-contact .lp-btn{border-color:#232A30;background-color:#232A30;color:#fff;}#global-mobile-contact .lp-btn:hover{border-color:#AAB9C0;background-color:#AAB9C0;color:#232A30;}#global-mobile-contact .contact-form__inputs-container .contact-form__item .lp-input::-webkit-input-placeholder{color:#000;opacity:1;}#global-mobile-contact .contact-form__inputs-container .contact-form__item .lp-input::-moz-placeholder{color:#000;opacity:1;}#global-mobile-contact .contact-form__inputs-container .contact-form__item .lp-input:-ms-input-placeholder{color:#000;opacity:1;}#global-mobile-contact .contact-form__inputs-container .contact-form__item .lp-input::placeholder{color:#000;opacity:1;}</style> 29 <style id="wow-hide-elements">.wow{visibility:hidden!important}</style> 30 <style id="page-css"> 31 #section-7616ebb1-721c-4d8d-a841-e30b8b294494{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/1aaa8e52-da75-458c-89f9-701e2ac686d7');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-7616ebb1-721c-4d8d-a841-e30b8b294494 .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;
31-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}#section-7616ebb1-721c-4d8d-a841-e30b8b294494 .custom-intro .container{z-index:1;text-align:center;max-width:900px;}#section-7616ebb1-721c-4d8d-a841-e30b8b294494 .custom-intro__title{margin-bottom:0px;font-weight:400;margin-bottom:24px;}@media (max-width: 768px){#section-7616ebb1-721c-4d8d-a841-e30b8b294494 .custom-intro__title{font-size:32px;}}@media (max-width: 360px){#section-7616ebb1-721c-4d8d-a841-e30b8b294494 .custom-intro__title{font-size:22px;}}#section-7616ebb1-721c-4d8d-a841-e30b8b294494 .custom-intro__subtitle{font-weight:400;white-space:pre-line;font-size:21px;line-height:1.57;}@media (max-width: 768px){#section-7616ebb1-721c-4d8d-a841-e30b8b294494 .custom-intro__subtitle{font-size:18px;}}#section-7616ebb1-721c-4d8d-a841-e30b8b294494 .description{margin-bottom:15px;}@media (min-width: 960px) and (orientation: landscape){#section-7616ebb1-721c-4d8d-a841-e30b8b294494{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/1aaa8e52-da75-458c-89f9-701e2ac686d7');}}@media (min-width: 1280px) and (orientation: landscape){#section-7616ebb1-721c-4d8d-a841-e30b8b294494{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/1aaa8e52-da75-458c-89f9-701e2ac686d7');}}@media (min-width: 1920px) and (orientation: landscape){#section-7616ebb1-721c-4d8d-a841-e30b8b294494{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/1aaa8e52-da75-458c-89f9-701e2ac686d7');}}@media (min-width: 2560px) and (orientation: landscape){#section-7616ebb1-721c-4d8d-a841-e30b8b294494{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/1aaa8e52-da75-458c-89f9-701e2ac686d7');}}#section-247e796e-9beb-412d-bb50-69569f8459de{color:#000000;--fontColor:#000000;--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;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(2 / 4 * var(--global-section-padding));background-color:rgba(255, 255, 255, 1);}@media (min-width: 1024px){#section-247e796e-9beb-412d-bb50-69569f8459de div.blog-list{padding:96px 0 0;}}@media (max-width: 678px){#section-247e796e-9beb-412d-bb50-69569f8459de div.blog-list{padding:64px 0 0;}}#section-247e796e-9beb-412d-bb50-69569f8459de h4{text-transform:uppercase;}#section-247e796e-9beb-412d-bb50-69569f8459de div.blog-list__item-content h4:after{background-color:#000;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list{padding:120px 0;position:relative;z-index:1;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list .center-items{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;max-width:1282px;}@media(max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__container{padding:0;}}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__container.hide-date .blog-list__item-date{display:none;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__container.hide-author .blog-list__item-author{display:none;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__container.hide-author .blog-list__item-date{margin-left:0;padding-left:0;border-left:none;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__container .blog-list__item{background-color:#fff;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__section-title,#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list .description{text-align:center;margin-bottom:50px;max-width:75%;margin-left:auto;margin-right:auto;}@media(max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__section-title,#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list .description{max-width:100%;}}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item{width:calc(50% - 18px);margin-bottom:34px;}@media(max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item{width:100%;margin-bottom:32px;}}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item:nth-child(2n) .blog-list__item-content h4:after{right:-116px;left:60%;}@media(max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item:nth-child(2n) .blog-list__item-content h4:after{right:-25px;left:40%;}}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-image{padding-top:70.16%;position:relative;background-color:#808080;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-image img{position:absolute;object-fit:cover;height:100%;width:100%;top:0;z-index:0;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-content{padding:46px 36px;}@media(max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-content{padding:40px 25px;}}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-content h4{margin:0 0 36px;position:relative;}@media(max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-content h4{margin:0 0 38px;}}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-content h4:after{content:'';position:absolute;bottom:-17px;left:-116px;right:60%;height:1px;background-color:#c0c0c0;}@media(max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-content h4:after{right:40%;left:-25px;bottom:-21px;}}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-content .link{display:inline-block;margin-top:36px;text-transform:uppercase;font-size:14px;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-details{list-style-type:none;display:block;margin:0 0 9px;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-details >li{display:inline-block;position:relative;font-size:14px;font-weight:700;line-height:1.4;text-transform:uppercase;}#section-247e796e-9beb-412d-bb50-69569f8459de .blog-list__item-details >li+li{margin-left:3px;padding-left:5px;border-left:2px solid;}#section-247e796e-9beb-412d-bb50-69569f8459de .search-container{margin-bottom:48px;}@media (max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .search-container{margin-bottom:32px;}}#section-247e796e-9beb-412d-bb50-69569f8459de .search-container__row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;
31-webkit-justify-content:center;justify-content:center;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;gap:12px;}#section-247e796e-9beb-412d-bb50-69569f8459de .search-container__row:has(.lp-btn.lp-i--chevron-down){-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}@media (max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .search-container__row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}#section-247e796e-9beb-412d-bb50-69569f8459de .input-container{width:100%;max-width:485px;position:relative;}@media (max-width: 1024px){#section-247e796e-9beb-412d-bb50-69569f8459de .input-container{max-width:350px;}}@media (max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .input-container{max-width:100%;}}#section-247e796e-9beb-412d-bb50-69569f8459de .input-container .lp-input{height:50px;width:100%;}#section-247e796e-9beb-412d-bb50-69569f8459de .input-container .search-icon{position:absolute;top:50%;right:0;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);}#section-247e796e-9beb-412d-bb50-69569f8459de .empty-results{text-align:center;display:none;}#section-247e796e-9beb-412d-bb50-69569f8459de .empty-results.visible{display:block;}#section-247e796e-9beb-412d-bb50-69569f8459de .filter-container{padding-top:16px;display:none;}#section-247e796e-9beb-412d-bb50-69569f8459de .category-cell{margin:0 8px 8px 0;border-width:2px;padding:10px 15px;opacity:.3;position:relative;cursor:pointer;}#section-247e796e-9beb-412d-bb50-69569f8459de .category-cell.active{opacity:1;}@media(hover: hover) and (pointer: fine){#section-247e796e-9beb-412d-bb50-69569f8459de .category-cell:hover{opacity:1;}}#section-247e796e-9beb-412d-bb50-69569f8459de .lp-btn.lp-i--chevron-down{display:none;gap:10px;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}@media (max-width: 768px){#section-247e796e-9beb-412d-bb50-69569f8459de .lp-btn.lp-i--chevron-down{width:100%;}}#section-247e796e-9beb-412d-bb50-69569f8459de .lp-btn.lp-i--chevron-down:before{-webkit-transition:-webkit-transform .3s;transition:transform .3s;}#section-247e796e-9beb-412d-bb50-69569f8459de .lp-btn.lp-i--chevron-down.active:before{-webkit-transform:scaleY(-1);-moz-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);}#section-247e796e-9beb-412d-bb50-69569f8459de .category{position:absolute;top:0;left:0;background-color:#fff;color:#000;padding:8px 34px;font-size:14px;font-weight:700;line-height:24px;letter-spacing:1.5px;text-transform:uppercase;z-index:2;}#section-247e796e-9beb-412d-bb50-69569f8459de>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(2 / 4 * var(--global-section-padding))!important;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6{color:#ffffff;--fontColor:#ffffff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#F7F7F7;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:97%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#F7F7F7;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal{min-height:0px!important;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .form-group .lp-title-group,#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .form-group .form-inputs-wrap{max-width:100%;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .form-group .lp-input{border-color:rgba(255, 255, 255, 0.25);}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a{position:relative!important;color:#fff!important;-webkit-transition:0.4s;transition:0.4s;-webkit-text-decoration:none!important;text-decoration:none!important;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a:hover{color:#fff!important;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a:before,#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a:after{-webkit-transition:0.4s;transition:0.4s;-webkit-text-decoration:none!important;text-decoration:none!important;line-height:1;content:"" "";height:1px;position:absolute!important;bottom:0;left:0;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a:before{width:100%!important;background-color:rgba(255, 255, 255, 0.25)!important;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a:after{width:0%!important;background-color:#fff!important;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a:hover:after{width:100%!important;}@media only screen and (max-width: 768px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a{-webkit-text-decoration:underline!important;text-decoration:underline!important;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a:before,#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer a:after{display:none;}}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form{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;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal{width:100%;background:center no-repeat;-webkit-background-size:cover;background-size:cover;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;color:var(--fontColor);}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .lp-text--subtitle{max-width:100%;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .input-container+.input-container{margin-top:16px;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__container{z-index:2;width:100%;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .lp-title-group{text-align:center;max-width:420px;}@media (max-width: 768px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .lp-title-group{max-width:100%;}}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form{background-color:#fff;max-width:860px;margin:auto;text-align:center;min-height:463px;position:relative;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form .form-group{padding:65px;
31display:block;}@media (max-width: 1200px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form .form-group{margin:0;max-width:50%;}}@media (max-width: 768px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form .form-group{padding:30px;max-width:100%;}}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form--with-image{max-width:1300px;min-height:675px;text-align:left;}@media (max-width: 768px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form--with-image{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;min-height:1px;}}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form--with-image .lp-title-group{text-align:left;margin-left:0;}@media (max-width: 768px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form--with-image .lp-title-group{max-width:100%;text-align:center;}}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form--with-image .image{width:50%;height:100%;object-fit:cover;position:absolute;top:0;right:0;}@media (max-width: 768px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form--with-image .image{position:static;width:100%;height:331px;}}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form--with-image .form-group{width:50%;}@media (max-width: 999px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form--with-image .form-group{padding:40px;}}@media (max-width: 768px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__form--with-image .form-group{width:100%;padding:20px;}}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__input{width:100%;display:block;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal__submit{margin-top:16px;width:100%;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .form-inputs-wrap{max-width:420px;}@media (max-width: 768px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .form-inputs-wrap{max-width:100%;}}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .form-inputs-wrap .lp-btn{display:block;width:100%;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .thank-you{display:none;padding:24px;text-align:center;min-height:675px;height:100%;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .thank-you .lp-title-group{margin-left:auto;margin-right:auto;text-align:center;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .success .thank-you{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .success .form-group{dis
31play:none;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal .success .image{display:none;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal h2{margin-bottom:8px;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal h4{margin-bottom:48px;}@media (max-width: 768px){#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .popup-modal h4{margin-bottom:32px;}}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .form-inputs-wrap.center-aligned{margin-left:auto;margin-right:auto;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-h-pot{height:0;width:0;}#section-552d56a9-1f0c-4092-837c-0f3b8aa080b6 .lp-disclaimer{margin-top:16px;}#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2{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/mmuoldghq4qxbqourd46');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .work-with-us:before{-webkit-background-position:right!important;background-position:right!important;}#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2.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-20ee9b76-e31b-4654-a4fa-449d2c85d8b2.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:-9999;}#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2.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-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .redesign.work-with-us{position:relative;color:var(--fontColor, #ffffff);}#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .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-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .redesign.work-with-us .container{min-height:auto;padding-top:100px;padding-bottom:100px;}}#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .redesign.work-with-us h2{position:relative;padding-bottom:28px;margin:0 0 30px;}@media(max-width: 768px){#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .redesign.work-with-us h2{padding-bottom:40px;}}#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .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-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .redesign.work-with-us .description{margin:0 0 30px;}@media(max-width: 768px){#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .redesign.work-with-us .description{margin-bottom:40px;}}#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .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-20ee9b76-e31b-4654-a4fa-449d2c85d8b2 .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-20ee9b76-e31b-4654-a4fa-449d2c85d8b2{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/mmuoldghq4qxbqourd46');}}@media (min-width: 1280px) and (orientation: landscape){#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2{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/mmuoldghq4qxbqourd46');}}@media (min-width: 1920px) and (orientation: landscape){#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2{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/mmuoldghq4qxbqourd46');}}@media (min-width: 2560px) and (orientation: landscape){#section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2{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/mmuoldghq4qxbqourd46');}}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d{color:rgba(0, 0, 0, 1);--fontColor:rgba(0, 0, 0, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:0%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 1);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:rgba(255, 255, 255, 1);}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed{padding:80px 0;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .title{margin:0 20px 0 0;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .instagram-link{display:block;margin:0 20px 0 0;color:var(--global-primary-font-color);}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .instagram-link .instagram-name{display:inline;margin:0;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .title+.instagram-link{margin-top:5px;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .top-wrapper{margin-bottom:20px;
31display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .top-right{margin-left:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .follow-button{margin:20px 0 0 0;display:block;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .nav-button{margin-top:20px;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:42px;color:#1a1a1a;border:1px solid currentColor;cursor:pointer;transition-property:color,background-color,border-color;transition-duration:.3s;transition-timing-function:ease;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .nav-button:not(.slick-disabled):hover{background-color:#1a1a1a;border-color:#1a1a1a;color:#fff;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .top-nav-prev{margin-left:30px;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .top-nav-next{margin-left:10px;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .hidden-control{display:none;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-single,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi{position:relative;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;width:calc(100% / 3);padding:10px;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-single:first-child,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi:first-child{margin-left:auto;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-single:last-child,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi:last-child{margin-right:auto;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-single.type2,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi.type2{width:calc(100% / 5 * 2);}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-single.type3,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi.type3{width:calc(100% / 2);}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-single.type4,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi.type4{width:calc(100% / 2);}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-single.type5,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi.type5{width:100%;}@media (max-width: 440px){#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed-container{padding:0;width:100%;}}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed-feed{width:calc(100% + 20px);position:relative;left:-10px;overflow:hidden;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed-slider{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed-item__img{position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;background:center/cover no-repeat;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed-item__info{position:absolute;top:0;left:0;bottom:0;right:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:10%;overflow:hidden;color:#fff;text-align:center;background-color:rgba(0, 0, 0, 0.8);opacity:0;-webkit-transition:opacity .3s ease;transition:opacity .3s ease;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed-item:hover .ig-feed-item__info{opacity:1;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed-item__caption{text-overflow:ellipsis;-webkit-line-clamp:4;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .video-icon{position:absolute;width:50px;height:50px;background-color:#fff;left:50%;
31top:50%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);border-radius:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;opacity:1;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .video-icon::before{content:'';display:block;width:0px;height:0px;border-style:solid;position:relative;left:1px;border-width:7.5px 0px 7.5px 11px;border-color:transparent transparent transparent #292826;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed-item:hover .video-icon{opacity:0;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-single .ig-feed-item__info{padding:15%;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-single .ig-feed-item__caption{-webkit-line-clamp:7;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed-item{background-color:var(--tileColor, #000);display:block;width:100%;padding-bottom:125%;overflow:hidden;position:relative;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi::before{content:'';display:block;width:100%;padding-bottom:125%;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi-content{padding:10px;position:absolute;width:100%;height:100%;left:0;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;overflow:hidden;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi-content .ig-feed-item{width:calc(50% - 10px);padding-bottom:calc(62.5% - 12.5px);}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .slide-multi-content .ig-feed-item:nth-child(n + 3){-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .bottom-controls{width:100%;display:none;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .bottom-nav-button{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:20px 10px 0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:48px;height:48px;color:#1a1a1a;border:1px solid currentColor;cursor:pointer;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .bottom-nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}@media (max-width: 767px){#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .top-right,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .top-left{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .title,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .instagram-link{margin-right:0;text-align:center;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .top-nav-prev,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .top-nav-next{display:none;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .bottom-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .ig-feed{display:none;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d .has-data .ig-feed{display:block;}#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d.has-data .ig-feed,#section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d#section-temp .ig-feed{display:block;}#modal-global-contact-us .close{z-index:11;}#modal-global-contact-us .description{margin-bottom:15px;}#modal-global-contact-us .close:focus{outline:0;}#modal-global-contact-us .contact-form{padding:70px 0;width:100%;min-height:100vh;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;color:var(--colorTxt, #ffffff);-webkit-background-size:cover;background-size:cover;}#modal-global-contact-us .contact-form:after{content:'';position:absolute;display:block;background-color:rgba(2, 5, 7, 0.85);height:100%;width:100%;z-index:0;}
31#modal-global-contact-us .contact-form.loading textarea,#modal-global-contact-us .contact-form.loading input,#modal-global-contact-us .contact-form.loading label,#modal-global-contact-us .contact-form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .submit-icon{display:none;}#modal-global-contact-us .contact-form .contact-form-close{width:40px;height:50px;display:block;padding:0;border:none;background-color:transparent;cursor:pointer;position:absolute;right:50px;top:50px;z-index:110;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close{right:20px;top:20px;width:30px;height:40px;}}#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{content:'';display:block;width:40px;height:1px;background-color:#fff;position:absolute;left:50%;top:50%;}@media (max-width: 560px){#modal-global-contact-us .contact-form .contact-form-close:before,#modal-global-contact-us .contact-form .contact-form-close:after{width:30px;}}#modal-global-contact-us .contact-form .contact-form-close:before{-webkit-transform:translate(-50%, -50%) rotate(45deg);-moz-transform:translate(-50%, -50%) rotate(45deg);-ms-transform:translate(-50%, -50%) rotate(45deg);transform:translate(-50%, -50%) rotate(45deg);}#modal-global-contact-us .contact-form .contact-form-close:after{-webkit-transform:translate(-50%, -50%) rotate(-45deg);-moz-transform:translate(-50%, -50%) rotate(-45deg);-ms-transform:translate(-50%, -50%) rotate(-45deg);transform:translate(-50%, -50%) rotate(-45deg);}#modal-global-contact-us .contact-form .container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-width:1440px;width:100%;padding:0 160px;margin:0 auto;z-index:10;}@media (max-width: 1320px){#modal-global-contact-us .contact-form .container{padding:0 80px;}}@media (max-width: 1200px){#modal-global-contact-us .contact-form .container{padding:0 30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .container{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}@media (max-width: 560px){#modal-global-contact-us .contact-form .container{padding:0 20px;}}#modal-global-contact-us .contact-form h2{margin:0 0 18px 0;padding:0;}@media (max-width: 560px){#modal-global-contact-us .contact-form h2{margin:0 0 24px 0;}}#modal-global-contact-us .contact-form .section-details{width:50%;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-details{padding-right:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-details{width:100%;padding-right:0;max-width:700px;margin-bottom:38px;}}#modal-global-contact-us .contact-form .section-message{width:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;position:relative;}@media (max-width: 1200px){#modal-global-contact-us .contact-form .section-message{padding-left:30px;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message{width:100%;padding-left:0;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}}#modal-global-contact-us .contact-form .section-message:after{content:'';position:absolute;display:block;width:1px;background:#999999;height:calc(100% + 50px);left:0;top:-20px;}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message:after{display:none;}}#modal-global-contact-us .contact-form .section-message form{max-width:435px;width:100%;}#modal-global-contact-us .contact-form .section-message form .submitButton{width:auto;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message form .submitButton{width:100%;}}@media (max-width: 900px){#modal-global-contact-us .contact-form .section-message form{max-width:700px;}}#modal-global-contact-us .contact-form .section-message form.loading textarea,#modal
31-global-contact-us .contact-form .section-message form.loading input,#modal-global-contact-us .contact-form .section-message form.loading label,#modal-global-contact-us .contact-form .section-message form.loading button{pointer-events:none;opacity:.5;}#modal-global-contact-us .contact-form .section-message form.loading .label-loading{display:inline;}#modal-global-contact-us .contact-form .section-message form.loading .label-success,#modal-global-contact-us .contact-form .section-message form.loading .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.loading .submit-icon{display:inline-block;}#modal-global-contact-us .contact-form .section-message form.success .label-loading,#modal-global-contact-us .contact-form .section-message form.success .label-initial{display:none;}#modal-global-contact-us .contact-form .section-message form.success .label-success{display:inline;}#modal-global-contact-us .contact-form .section-message .label-loading,#modal-global-contact-us .contact-form .section-message .label-success{display:none;}#modal-global-contact-us .contact-form .section-message .submit-icon{display:none;}#modal-global-contact-us .contact-form .section-message h2{margin-bottom:28px;}#modal-global-contact-us .contact-form .section-message .form-group_modal{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:39px;}#modal-global-contact-us .contact-form .section-message .form-group_modal input{border:none;border-bottom:1px solid #c0c0c0;display:block;width:100%;background:transparent;color:#ffffff;height:22px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group_modal input{height:25px;}}#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message .form-group-textarea{margin-bottom:23px;}}#modal-global-contact-us .contact-form .section-message label{display:block;width:100%;line-height:1.63;letter-spacing:1px;color:#c0c0c0;font-weight:bold;text-transform:uppercase;}#modal-global-contact-us .contact-form .section-message textarea{resize:none;height:105px;width:100%;background:transparent;border:solid 1px #ffffff;margin:23px 0 0 0;color:#ffffff;padding:10px;font-size:16px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .section-message textarea{margin:10px 0 0 0;height:89px;}}#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 16px 0;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone h4{margin:0 0 13px 0;}}#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:30px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user{margin-bottom:58px;}}#modal-global-contact-us .contact-form .info-zone_contact{margin-bottom:23px;}#modal-global-contact-us .contact-form .info-zone_contact:nth-last-child(2){margin-bottom:30px;}#modal-global-contact-us .contact-form .info-zone_contact_cell{position:relative;padding-left:45px;margin-bottom:22px;font-weight:bold;font-size:14px;max-width:90%;letter-spacing:1.5px;text-transform:uppercase;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell{padding-left:0;}}#modal-global-contact-us .contact-form .info-zone_contact_cell:last-of-type{margin-bottom:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:absolute;left:0;top:0;display:block;}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone_contact_cell i{position:relative;margin-bottom:7px;}}#modal-global-contact-us .contact-form .info-zone_contact_cell i svg path{fill:var(--colorTxt);}#modal-global-contact-us .contact-form .info-zone_contact_cell div{padding:0;}#modal-global-contact-us .contact-form .info-zone_contact_cell .contact_title{line-height:1;margin-bottom:5px;}#modal-global-contact-us .contact-form .info-zone_contact_link{color:var(--colorTxt);}@media (max-width: 560px){#modal-global-contact-us .contact-form .info-zone .type_user:nth-of-type(2){margin-bottom:58px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form .hours_box{margin-bottom:52px;}}#modal-global-contact-us .contact-form .socials_zone{padding-left:45px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone{padding-left:0;}}#modal-global-contact-us .contact-form .socials_zone li{margin-bottom:10px;}#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:34px;}@media (max-width: 560px){#modal-global-contact-us .contact-form .socials_zone li:not(:last-child){padding-right:12px;}}#modal-global-contact-us .contact-form .success-message.success{margin-top:15px;color:var(--colorTxt);position:absolute;}#modal-global-contact-us .contact-form .success-message.hide{opacity:0;}#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:73px;}@media (max-width: 768px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:51px;}}@media (max-width: 560px){#modal-global-contact-us .contact-form.one_contact .info-zone .type_user{margin-bottom:40px;}}#modal-global-contact-us .contact-form.one_contact .hours_box{margin-bottom:38px;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell{padding-left:0;}#modal-global-contact-us .contact-form.no_icon .info-zone_contact_cell i{display:none;}#modal-global-contact-us .contact-form.no_icon .socials_zone{padding-left:0;}#modal-global-contact-us .contact-form .pre-line{white-space:pre-line;}#modal-global-contact-us .lp-input-group{margin-bottom:40px;}#modal-global-contact-us .lp-input-group.m16{margin-bottom:16px;}#modal-global-contact-us .lp-disclaimer{margin-top:0;}#modal-global-contact-us .lp-input{border-color:#ffffff;}#modal-global-contact-us .lp-input:focus,#modal-global-contact-us .lp-input:active{border-color:#5e5e5e;}nav{color:#fff;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;z-index:102;}nav.scroll .logo .logo__img.light{display:block;}nav.scroll .logo .logo__img.dark{display:none;}nav .header{height:100px;-webkit-transform:translateY(24px);-moz-transform:translateY(24px);-ms-transform:translateY(24px);transform:translateY(24px);}@media (max-width: 768px){nav .header{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}}nav .header .container{max-width:1440px;padding:0 15px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;}@media (max-width: 1024px){nav .header .container{padding:0 15px;}}nav .header .navbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;
31-webkit-justify-content:space-between;justify-content:space-between;min-height:70px;padding:8px 0 7px;width:100%;}nav .header .logo{z-index:911;position:relative;margin-right:10px;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;max-width:300px;}nav .header .logo a{overflow:hidden;display:inline-block;}nav .header .logo img{max-width:100%;max-height:52px;vertical-align:top;object-fit:contain;}@media (max-width: 1024px){nav .header .logo img{max-height:50px;}}nav .header .logo img.dark{display:none;}@media(max-width: 1024px){nav .header .logo img.dark{display:none!important;}}nav .header .logo img.light{display:block;}@media(max-width: 1024px){nav .header .logo img.light{display:inline-block!important;}}nav .header .logo__link{-webkit-animation-duration:1s;animation-duration:1s;overflow:hidden;}nav .header .logo__img.light{display:block;}nav .header .logo__img.dark{display:none;}nav .header .navigation{margin-left:auto;color:inherit;}@media (max-width: 1024px){nav .header .navigation{display:none;}}nav .header .navigation ul{position:relative;list-style-type:none;padding-left:0;margin-bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}nav .header .navigation ul li a span,nav .header .navigation ul li button span{position:relative;white-space:nowrap;}nav .header .navigation ul li a span:after,nav .header .navigation ul li button span:after{content:'';position:absolute;display:block;height:1px;background-color:#c6c6c6;width:0;bottom:0;left:0;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation ul li a:hover span:after,nav .header .navigation ul li button:hover span:after{width:100%;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation__item{padding:0;margin:0;}nav .header .navigation__link{display:block;padding:12px 13px;color:inherit;position:relative;font-size:13px;line-height:1.08;font-weight:700;letter-spacing:1.5px;background-color:transparent;border:none;cursor:pointer;text-align:left;text-transform:uppercase;}@media (max-width: 1280px){nav .header .navigation__link{padding:19px 10px;font-size:11.5px;}}nav .header .navigation__link .sub-nav-container .navigation__link:hover{background:#000000;}nav .header .navigation .sub-nav{position:absolute;bottom:0;padding:0;opacity:0;visibility:hidden;-webkit-transition:all .2s ease;transition:all .2s ease;-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav .header .navigation .sub-nav ul{margin:0;padding:12px 0;display:block;background-color:rgba(26, 26, 26, .75);max-width:300px;}nav .header .navigation .sub-nav__item{position:relative;display:block;margin:0;text-align:left;}nav .header .navigation .sub-nav__item:last-child{border-bottom-color:transparent;}nav .header .navigation .sub-nav__link{display:block;max-width:300px;color:#ffffff;margin:0;line-height:1;letter-spacing:1.5px;padding:19px 13px;-webkit-transition:all .2s ease;transition:all .2s ease;}nav .header .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, 100%);-moz-transform:translate(0, 100%);-ms-transform:translate(0, 100%);transform:translate(0, 100%);}nav .header .navigation .sub-nav.visible+.navigation__link{background:#000000;}nav .header .hamburger{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:none;padding:28px 13px;background-color:transparent;color:inherit;vertical-align:middle;cursor:pointer;outline:none;z-index:915;opacity:1;}nav .header .hamburger__bars{position:relative;display:block;width:26px;height:2px;background-color:currentColor;-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before,nav .header .hamburger__bars:after{content:'';display:block;width:26px;height:2px;background-color:currentColor;position:absolute;
31left:0;top:0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:0.2s -webkit-transform ease;transition:0.2s transform ease;}nav .header .hamburger__bars:before{-webkit-transform:translateY(-9px);-moz-transform:translateY(-9px);-ms-transform:translateY(-9px);transform:translateY(-9px);}nav .header .hamburger__bars:after{-webkit-transform:translateY(9px);-moz-transform:translateY(9px);-ms-transform:translateY(9px);transform:translateY(9px);}nav .header .hamburger:hover{text-shadow:.5px 0 0,-.5px 0 0;}nav .header .hamburger:hover .hamburger__bars:before{-webkit-transform:translateY(-7px);-moz-transform:translateY(-7px);-ms-transform:translateY(-7px);transform:translateY(-7px);}nav .header .hamburger:hover .hamburger__bars:after{-webkit-transform:translateY(7px);-moz-transform:translateY(7px);-ms-transform:translateY(7px);transform:translateY(7px);}nav .header .hamburger.active .hamburger__bars{-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg);opacity:0;}nav .header .hamburger.active .hamburger__bars:before{display:none;}nav .header .hamburger.active .hamburger__bars:after{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);}nav .content-container{-webkit-transition:0.2s all ease;transition:0.2s all ease;}nav.scroll .content-container,nav .scroll .content-container{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}nav.scroll .content-container .navigation__link,nav .scroll .content-container .navigation__link{visibility:visible!important;}nav.scroll .content-container .navigation .sub-nav,nav .scroll .content-container .navigation .sub-nav{-webkit-transform:translate(0, calc(100% + -10px));-moz-transform:translate(0, calc(100% + -10px));-ms-transform:translate(0, calc(100% + -10px));transform:translate(0, calc(100% + -10px));}nav.scroll .content-container .navigation .sub-nav ul,nav .scroll .content-container .navigation .sub-nav ul{padding:0;}nav.scroll .content-container .navigation .sub-nav.visible,nav .scroll .content-container .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(0, calc(100% + 23px));-moz-transform:translate(0, calc(100% + 23px));-ms-transform:translate(0, calc(100% + 23px));transform:translate(0, calc(100% + 23px));}nav .dark-opening{background-color:rgb(26, 26, 26)!important;}nav nav.dark-opening .header{margin-top:0;}nav #ctaShowButton,nav #ctaMessage{display:none!important;}nav #ctaShowButton{display:none;opacity:0;pointer-events:none;}nav .search{cursor:pointer;}nav .search svg{display:block;}nav .buttons-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}body>div.sidemenu{background-color:rgba(35, 42, 48, 1);color:rgba(255, 255, 255, 1);--fontColor:rgba(255, 255, 255, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(35, 42, 48, 1);--bgColor_H:208;--bgColor_S:16%;--bgColor_L:16%;--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;
31-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( 32 var(--bgColor_H, 0), 33 var(--bgColor_S, 0%), 34 calc(50% + (var(--bgColor_L, 100%) - 50%) * 0.9), 35 var(--bgColor_A, 1) 36 );}body>div.sidemenu .sidebar__nav-link{display:inline-block;padding:10px;border:none;border-radius:0;background:transparent;text-transform:none;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__nav-link:focus{outline:none;}body>div.sidemenu .sidebar__subnav{list-style:none;padding:4px 0 10px;margin:0;font-size:17px;}@media (max-width: 767px){body>div.sidemenu .sidebar__subnav{font-size:14px;letter-spacing:.3px;}}body>div.sidemenu .sidebar__subnav-item{margin-bottom:10px;}body>div.sidemenu .sidebar__subnav-item:last-child{margin-bottom:0;}body>div.sidemenu .sidebar__subnav-link{display:inline-block;padding:0;border:none;border-radius:0;background:transparent;text-transform:none;opacity:.7;-webkit-transition:all .25s;transition:all .25s;cursor:pointer;color:inherit;}body>div.sidemenu .sidebar__subnav-link:focus{outline:none;}body>div.sidemenu .sub-nav{visibility:hidden;opacity:0;max-height:0;-webkit-transition:all .3s;transition:all .3s;}body>div.sidemenu .sub-nav.visible{display:block;visibility:visible;opacity:1;max-height:100vh;}body>div.sidemenu .sub-nav.visible+.main-nav{color:#7a7a7a;}body>div.sidemenu .sub-nav.visible+.main-nav:after{margin-left:40px;border-bottom:2px solid var(--fontColor, #7a7a7a);border-right:2px solid var(--fontColor, #7a7a7a);}body>div.sidemenu .sub-nav-container{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}body>div.sidemenu .sub-nav-container:hover .main-nav:after{border-bottom:2px solid var(--fontColor, #7a7a7a);border-right:2px solid var(--fontColor, #7a7a7a);}body>div.sidemenu .sub-nav-container .main-nav{position:relative;display:inline-block;}body>div.sidemenu .sub-nav-container .main-nav:after{content:'';display:inline-block;position:relative;width:8px;height:8px;margin-left:25px;-webkit-transform:rotate(45deg) translateX(-100%);-moz-transform:rotate(45deg) translateX(-100%);-ms-transform:rotate(45deg) translateX(-100%);transform:rotate(45deg) translateX(-100%);border-bottom:2px solid var(--fontColor, #000000);border-right:2px solid var(--fontColor, #000000);top:0;bottom:auto;left:auto;-webkit-transition:0.5s all ease;transition:0.5s all ease;background-color:transparent;}body>div.sidemenu #main-section .sidebar{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);}footer{background-color:rgba(35, 42, 48, 1);color:rgba(255, 255, 255, 1);--fontColor:rgba(255, 255, 255, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:rgba(35, 42, 48, 1);--bgColor_H:208;--bgColor_S:16%;--bgColor_L:16%;--bgColor_A:1;--bgColor_darkenDir:1;--greyColor:hsla( 37var(--fontColor_H), 38var(--fontColor_S), 39calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445), 40var(--fontColor_A));}footer .redesign .inp--dark-bg input{color:var(--fontColor);border-color:hsla( 41 var(--fontColor_H), 42 var(--fontColor_S), 43 calc(var(--fontColor_L) + (50% - var(--fontColor_L)) * 0.445), 44 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;
44-webkit-justify-content:flex-end;justify-content:flex-end;}footer .redesign .socials--grey .socials__link{background-color:hsla( 45 var(--bgColor_H), 46 var(--bgColor_S), 47 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.15), 48 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( 49 var(--bgColor_H), 50 var(--bgColor_S), 51 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.4), 52 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;
52left: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( 53 var(--bgColor_H), 54 var(--bgColor_S), 55 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55), 56 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( 57 var(--bgColor_H), 58 var(--bgColor_S), 59 calc(var(--bgColor_L) + (50% - var(--bgColor_L)) * 0.55), 60 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;
60-webkit-justify-content:flex-start;justify-content:flex-start;}}@media (max-width: 768px){footer .footer .info-privacy .socials_zone{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin-top:0;margin-bottom:20px;}footer .footer .info-privacy .socials_zone li{padding:0 7px 10px 7px;}}footer .footer.one_contact .type_user{margin-bottom:73px;}@media (max-width: 768px){footer .footer.one_contact .type_user{margin-bottom:51px;}}footer .footer.no_newsletter h3{margin-bottom:46px;}footer .footer.no_newsletter .newsletter_box{display:none;}footer .footer.no_newsletter .info-wrap-contact{width:calc(70% + 230px);width:100%;padding-left:230px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact{padding-left:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact{width:100%;}}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_cell{width:50%;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_cell{width:100%;}}footer .footer.no_newsletter .info-wrap-contact h4{position:absolute;margin-top:-8px;left:0;max-width:200px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;width:100%;margin-bottom:20px;margin-top:0;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact h4{position:relative;left:auto;max-width:100%;}}footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:71px;}@media (max-width: 1200px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:39px;}}@media (max-width: 768px){footer .footer.no_newsletter .info-wrap-contact_zone:first-of-type{margin-bottom:51px;}}footer .footer.no_newsletter .info-wrap-contact_zone:last-child{margin-bottom:0;}footer .footer.no_icon .info-wrap-contact_cell{padding-left:0;}footer .footer.no_icon .info-wrap-contact_cell i{display:none;}footer .footer.no-names .info-wrap-contact{padding-left:0;}footer .form-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-left:-15px;margin-right:-15px;}@media (min-width: 1281px){footer .form-row{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}}@media (max-width: 900px){footer .form-row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;padding-left:15px;padding-right:15px;}@media (min-width: 768px){footer .form-col{-webkit-flex:1 1 0;-ms-flex:1 1 0;flex:1 1 0;}}@media (min-width: 768px){footer .form-col--socials{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;}}@media (min-width: 1281px){footer .form-col--socials{-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;}}@media (max-width: 768px){footer .form-col--socials{-webkit-order:-1;-ms-flex-order:-1;order:-1;}}@media (min-width: 1281px){footer .form-col--xl-auto{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;}}footer .additional-links-separator{display:block;width:100%;height:0;overflow:hidden;}@media (min-width: 768px){footer .additional-links-separator{display:inline;width:auto;height:auto;}footer .additional-links-separator:before{content:"|";}}footer .h-pot{height:0;width:0;overflow:hidden;visibility:hidden;}footer .img-wrap{max-width:100px;width:100%;display:block;margin-right:20px;}@media (max-width: 900px){footer .img-wrap{margin-right:0;margin-bottom:10px;}}footer .img-wrap img{width:100%;object-fit:cover;}footer .powered-box{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;}@media (max-width: 900px){footer .powered-box{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .form-col--copyright{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:10px 0;}footer .luxury-link{white-space:nowrap;}footer .footer__disclaimers{padding-top:24px;padding-bottom:24px;}@media (max-width: 900px){footer .footer__disclaimers{text-align:center;}}body>div.mobile-contact-wrapper{z-index:200;position:relative;}body>div.mobile-contact-wrapper .lp-ico:before{content:'';width:1em;height:1em;background-color:currentColor;-webkit-background-size:cover;background-size:cover;display:block;-webkit-mask-position:center;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-transition:all .3s;transition:all .3s;}body>div.mobile-contact-wrapper .lp-ico-search:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='25' height='25' viewB
60ox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6231 21.3002L17.1372 16.8143M19.5606 10.9877C19.5606 15.5441 15.8669 19.2377 11.3106 19.2377C6.75421 19.2377 3.06055 15.5441 3.06055 10.9877C3.06055 6.43135 6.75421 2.73769 11.3106 2.73769C15.8669 2.73769 19.5606 6.43135 19.5606 10.9877Z' stroke='black' stroke-width='1.82813' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='25' height='25' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6231 21.3002L17.1372 16.8143M19.5606 10.9877C19.5606 15.5441 15.8669 19.2377 11.3106 19.2377C6.75421 19.2377 3.06055 15.5441 3.06055 10.9877C3.06055 6.43135 6.75421 2.73769 11.3106 2.73769C15.8669 2.73769 19.5606 6.43135 19.5606 10.9877Z' stroke='black' stroke-width='1.82813' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='25' height='25' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6231 21.3002L17.1372 16.8143M19.5606 10.9877C19.5606 15.5441 15.8669 19.2377 11.3106 19.2377C6.75421 19.2377 3.06055 15.5441 3.06055 10.9877C3.06055 6.43135 6.75421 2.73769 11.3106 2.73769C15.8669 2.73769 19.5606 6.43135 19.5606 10.9877Z' stroke='black' stroke-width='1.82813' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-arrow-top:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.8716 9.99976L8.87158 5.99976L4.87158 9.99976' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.8716 9.99976L8.87158 5.99976L4.87158 9.99976' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='17' height='16' viewBox='0 0 17 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.8716 9.99976L8.87158 5.99976L4.87158 9.99976' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-scroll-top:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 3H3M12 21V7M12 7L5 14M12 7L19 14' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 3H3M12 21V7M12 7L5 14M12 7L19 14' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 3H3M12 21V7M12 7L5 14M12 7L19 14' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");}body>div.mobile-contact-wrapper .lp-ico-close:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5986 6.32617L5.59863 18.3262M5.59863 6.32617L17.5986 18.3262' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5986 6.32617L5.59863 18.3262M5.59863 6.32617L17.5986 18.3262' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M17.5986 6.32617L5.59863 18.3262M5.59863 6.32617L17.5986 18.3262' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E ");}body>div.mobile-contact-wrapper .lp-ico-phone:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8
60699 6.57142C14.7459 6.74157 15.551 7.16808 16.1821 7.79637C16.8132 8.42465 17.2416 9.22612 17.4126 10.0982M13.8699 3C15.6899 3.20128 17.3871 4.01265 18.6827 5.3009C19.9784 6.58914 20.7955 8.27768 21 10.0893M10.4412 13.592C9.36357 12.5192 8.51264 11.3061 7.88843 10.0118C7.83474 9.90047 7.80789 9.84481 7.78726 9.77437C7.71397 9.52405 7.76662 9.21668 7.91909 9.00469C7.962 8.94504 8.01326 8.894 8.11578 8.79194C8.42933 8.47979 8.58611 8.32372 8.6886 8.16677C9.07515 7.57491 9.07515 6.81189 8.6886 6.22002C8.58611 6.06308 8.42933 5.90701 8.11578 5.59486L7.94101 5.42087C7.46438 4.94637 7.22607 4.70912 6.97012 4.58024C6.4611 4.32392 5.85996 4.32392 5.35093 4.58024C5.09499 4.70912 4.85667 4.94637 4.38004 5.42087L4.23867 5.56161C3.76367 6.03449 3.52617 6.27093 3.34478 6.59239C3.1435 6.94909 2.99878 7.5031 3.00001 7.91222C3.00111 8.28092 3.07295 8.53291 3.21664 9.03688C3.98881 11.7453 5.44574 14.3009 7.58743 16.4331C9.72911 18.5652 12.2963 20.0156 15.0168 20.7843C15.523 20.9274 15.7761 20.9989 16.1465 21C16.5575 21.0012 17.114 20.8571 17.4723 20.6568C17.7952 20.4762 18.0327 20.2397 18.5077 19.7669L18.649 19.6261C19.1257 19.1516 19.364 18.9144 19.4934 18.6596C19.7509 18.1528 19.7509 17.5544 19.4934 17.0476C19.364 16.7928 19.1257 16.5556 18.649 16.0811L18.4743 15.9071C18.1607 15.5949 18.0039 15.4388 17.8463 15.3368C17.2518 14.952 16.4853 14.952 15.8908 15.3368C15.7332 15.4388 15.5764 15.5949 15.2628 15.9071C15.1603 16.0091 15.1091 16.0602 15.0491 16.1029C14.8362 16.2547 14.5274 16.3071 14.276 16.2341C14.2052 16.2136 14.1493 16.1869 14.0375 16.1334C12.7374 15.512 11.5189 14.6648 10.4412 13.592Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8699 6.57142C14.7459 6.74157 15.551 7.16808 16.1821 7.79637C16.8132 8.42465 17.2416 9.22612 17.4126 10.0982M13.8699 3C15.6899 3.20128 17.3871 4.01265 18.6827 5.3009C19.9784 6.58914 20.7955 8.27768 21 10.0893M10.4412 13.592C9.36357 12.5192 8.51264 11.3061 7.88843 10.0118C7.83474 9.90047 7.80789 9.84481 7.78726 9.77437C7.71397 9.52405 7.76662 9.21668 7.91909 9.00469C7.962 8.94504 8.01326 8.894 8.11578 8.79194C8.42933 8.47979 8.58611 8.32372 8.6886 8.16677C9.07515 7.57491 9.07515 6.81189 8.6886 6.22002C8.58611 6.06308 8.42933 5.90701 8.11578 5.59486L7.94101 5.42087C7.46438 4.94637 7.22607 4.70912 6.97012 4.58024C6.4611 4.32392 5.85996 4.32392 5.35093 4.58024C5.09499 4.70912 4.85667 4.94637 4.38004 5.42087L4.23867 5.56161C3.76367 6.03449 3.52617 6.27093 3.34478 6.59239C3.1435 6.94909 2.99878 7.5031 3.00001 7.91222C3.00111 8.28092 3.07295 8.53291 3.21664 9.03688C3.98881 11.7453 5.44574 14.3009 7.58743 16.4331C9.72911 18.5652 12.2963 20.0156 15.0168 20.7843C15.523 20.9274 15.7761 20.9989 16.1465 21C16.5575 21.0012 17.114 20.8571 17.4723 20.6568C17.7952 20.4762 18.0327 20.2397 18.5077 19.7669L18.649 19.6261C19.1257 19.1516 19.364 18.9144 19.4934 18.6596C19.7509 18.1528 19.7509 17.5544 19.4934 17.0476C19.364 16.7928 19.1257 16.5556 18.649 16.0811L18.4743 15.9071C18.1607 15.5949 18.0039 15.4388 17.8463 15.3368C17.2518 14.952 16.4853 14.952 15.8908 15.3368C15.7332 15.4388 15.5764 15.5949 15.2628 15.9071C15.1603 16.0091 15.1091 16.0602 15.0491 16.1029C14.8362 16.2547 14.5274 16.3071 14.276 16.2341C14.2052 16.2136 14.1493 16.1869 14.0375 16.1334C12.7374 15.512 11.5189 14.6648 10.4412 13.592Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8699 6.57142C14.7459 6.74157 15.551 7.16808 16.1821 7.79637C16.8132 8.42465 17.2416 9.22612 17.4126 10.0982M13.8699 3C15.6899 3.20128 17.3871 4.01265 18.6827 5.3009C19.9784 6.58914 20.7955 8.27768 21 10.0893M10.4412 13.592C9.36357 12.5192 8.51264 11.3061 7.88843 10.0118C7.83474 9.90047 7.80789 9.84481 7.78726 9.77437C7.71397 9.52405 7.76662 9.21668 7.91909 9.00469C7.962 8.94504 8.01326 8.894 8.11578 8.79194C8.42933 8.47979 8.58611 8.32372 8.6886 8.16677C9.07515 7.57491 9.07515 6.81189 8.6886 6.22002C8.58611 6.06308 8.42933 5.90701 8.11578 5.59486L7.94101 5.42087C7.46438 4.94637 7.22607 4.70912 6.97012 4.58024C6.4611 4.32392 5.85996 4.32392 5.35093 4.58024C5.09499 4.70912 4.85667 4.94637 4.38004 5.42087L4.23867 5.56161C3.76367 6.03449 3.52617 6.27093 3.34478 6.59239C3.1435 6.94909 2.99878 7.5031 3.00001 7.91222C3.00111 8.28092 3.07295 8.53291 3.21664 9.03688C3.98881 11.7453 5.44574 14.3009 7.58743 16.4331C9.72911 18.5652 12.2963 20.0156 15.0168 20.7843C15.523 20.9274 15.7761 20.9989 16.1465 21C16.5575 21.0012 17.114 20.8571 17.4723 20.6568C17.7952 20.4762 18.0327 20.2397 18.5077 19.7669L18.649 19.6261C19.1257 19.1516 19.364 18.9144 19.4934 18.6596C19.7509 18.1528 19.7509 17.5544 19.4934 17.0476C19.364 16.7928 19.1257 16.5556 18.649 16.0811L18.4743 15.9071C18.1607 15.5949 18.0039 15.4388 17.8463 15.3368C17.2518 14.952 16.4853 14.952 15.8908 15.3368C15.7332 15.4388 15.5764 15.5949 15.2628 15.9071C15.1603 16.0091 15.1091 16.0602 15.0491 16.1029C14.8362 16.2547 14.5274 16.3071 14.276 16.2341C14.2052 16.2136 14.1493 16.1869 14.0375 16.1334C12.7374 15.512 11.5189 14.6648 10.4412 13.592Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-sms:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 11.5C21.0034 12.8199 20.6951 14.1219 20.1 15.3C19.3944 16.7117 18.3098 17.8992 16.9674 18.7293C15.6251 19.5594 14.0782 19.9994 12.5 20C11.1801 20.0034 9.87812 19.6951 8.7 19.1L3 21L4.9 15.3C4.30493 14.1219 3.99656 12.8199 4 11.5C4.00061 9.92176 4.44061 8.37485 5.27072 7.03255C6.10083 5.69025 7.28825 4.60557 8.7 3.9C9.87812 3.30493 11.1801 2.99656 12.5 3H13C15.0843 3.11499 17.053 3.99476 18.5291 5.47086C20.0052 6.94695 20.885 8.91565 21 11V11.5Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 11.5C21.0034 12.8199 20.6951 14.1219 20.1 15.3C19.3944 16.7117 18.3098 17.8992 16.9674 18.7293C15.6251 19.5594 14.0782 19.9994 12.5 20C11.1801 20.0034 9.87812 19.6951 8.7 19.1L3 21L4.9 15.3C4.30493 14.1219 3.99656 12.8199 4 11.5C4.00061 9.92176 4.44061 8.37485 5.27072 7.03255C6.10083 5.69025 7.28825 4.60557 8.7 3.9C9.87812 3.30493 11.1801 2.99656 12.5 3H13C15.0843 3.11499 17.053 3.99476 18.5291 5.47086C20.0052 6.94695 20.885 8.91565 21 11V11.5Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 11.5C21.0034 12.8199 20.6951 14.1219 20.1 15.3C19.3944 16.7117 18.3098 17.8992 16.9674 18.7293C15.6251 19.5594 14.0782 19.9994 12.5 20C11.1801 20.0034 9.87812 19.6951 8.7 19.1L3 21L4.9 15.3C4.30493 14.1219 3.99656 12.8199 4 11.5C4.00061 9.92176 4.44061 8.37485 5.27072 7.03255C6.10083 5.69025 7.28825 4.60557 8.7 3.9C9.87812 3.30493 11.1801 2.99656 12.5 3H13C15.0843 3.11499 17.053 3.99476 18.5291 5.47086C20.0052 6.94695 20.885 8.91565 21 11V11.5Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper .lp-ico-email:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 18L14.85
6071 12M9.14286 12L2.50003 18M2 7L10.1649 12.7154C10.8261 13.1783 11.1567 13.4097 11.5163 13.4993C11.8339 13.5785 12.1661 13.5785 12.4837 13.4993C12.8433 13.4097 13.1739 13.1783 13.8351 12.7154L22 7M6.8 20H17.2C18.8802 20 19.7202 20 20.362 19.673C20.9265 19.3854 21.3854 18.9265 21.673 18.362C22 17.7202 22 16.8802 22 15.2V8.8C22 7.11984 22 6.27976 21.673 5.63803C21.3854 5.07354 20.9265 4.6146 20.362 4.32698C19.7202 4 18.8802 4 17.2 4H6.8C5.11984 4 4.27976 4 3.63803 4.32698C3.07354 4.6146 2.6146 5.07354 2.32698 5.63803C2 6.27976 2 7.11984 2 8.8V15.2C2 16.8802 2 17.7202 2.32698 18.362C2.6146 18.9265 3.07354 19.3854 3.63803 19.673C4.27976 20 5.11984 20 6.8 20Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 18L14.8571 12M9.14286 12L2.50003 18M2 7L10.1649 12.7154C10.8261 13.1783 11.1567 13.4097 11.5163 13.4993C11.8339 13.5785 12.1661 13.5785 12.4837 13.4993C12.8433 13.4097 13.1739 13.1783 13.8351 12.7154L22 7M6.8 20H17.2C18.8802 20 19.7202 20 20.362 19.673C20.9265 19.3854 21.3854 18.9265 21.673 18.362C22 17.7202 22 16.8802 22 15.2V8.8C22 7.11984 22 6.27976 21.673 5.63803C21.3854 5.07354 20.9265 4.6146 20.362 4.32698C19.7202 4 18.8802 4 17.2 4H6.8C5.11984 4 4.27976 4 3.63803 4.32698C3.07354 4.6146 2.6146 5.07354 2.32698 5.63803C2 6.27976 2 7.11984 2 8.8V15.2C2 16.8802 2 17.7202 2.32698 18.362C2.6146 18.9265 3.07354 19.3854 3.63803 19.673C4.27976 20 5.11984 20 6.8 20Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.5 18L14.8571 12M9.14286 12L2.50003 18M2 7L10.1649 12.7154C10.8261 13.1783 11.1567 13.4097 11.5163 13.4993C11.8339 13.5785 12.1661 13.5785 12.4837 13.4993C12.8433 13.4097 13.1739 13.1783 13.8351 12.7154L22 7M6.8 20H17.2C18.8802 20 19.7202 20 20.362 19.673C20.9265 19.3854 21.3854 18.9265 21.673 18.362C22 17.7202 22 16.8802 22 15.2V8.8C22 7.11984 22 6.27976 21.673 5.63803C21.3854 5.07354 20.9265 4.6146 20.362 4.32698C19.7202 4 18.8802 4 17.2 4H6.8C5.11984 4 4.27976 4 3.63803 4.32698C3.07354 4.6146 2.6146 5.07354 2.32698 5.63803C2 6.27976 2 7.11984 2 8.8V15.2C2 16.8802 2 17.7202 2.32698 18.362C2.6146 18.9265 3.07354 19.3854 3.63803 19.673C4.27976 20 5.11984 20 6.8 20Z' stroke='white' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}body>div.mobile-contact-wrapper a{-webkit-text-decoration:none;text-decoration:none;}body>div.mobile-contact-wrapper .btn-holder{bottom:-50px;left:19px;position:fixed;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:13px;opacity:0;-webkit-transition:all .3s;transition:all .3s;}@media (max-width: 1024px){body>div.mobile-contact-wrapper .btn-holder{right:19px;padding:0 48px;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}body>div.mobile-contact-wrapper .btn-holder.visible{bottom:28px;opacity:1;}body>div.mobile-contact-wrapper .search-btn{width:48px;height:48px;border-radius:999px;font-size:0;line-height:0;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-transition:all .3s;transition:all .3s;padding:12px;color:#141414;background:#fff;}@media (max-width: 1024px){body>div.mobile-contact-wrapper .search-btn{position:absolute;left:0;bottom:0;}}body>div.mobile-contact-wrapper .search-btn:before{width:24px;height:24px;}body>div.mobile-contact-wrapper .connect-btn{height:48px;padding:0 24px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;text-transform:uppercase;border-radius:25px;color:var(--pillTextColor);background:var(--pillBackgroundColor);border:1px solid rgba(255, 255, 255, 0.2);cursor:pointer;font-size:10px;font-style:normal;font-weight:500;line-height:16px;letter-spacing:0.4px;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-transition:all .4s;transition:all .4s;box-shadow:0 0 0 0 rgba(255, 255, 255, 0.2);-webkit-animation:pulsate 2s ease infinite;animation:pulsate 2s ease infinite;}body>div.mobile-contact-wrapper .connect-btn:before{width:16px;height:16px;}body>div.mobile-contact-wrapper .pop-up{display:none;position:fixed;bottom:0;left:0;width:100%;-webkit-transition:all .3s;transition:all .3s;border-radius:16px 16px 0 0;color:var(--textColor);background:var(--backgroundColor);}@media (max-height: 850px){body>div.mobile-contact-wrapper .pop-up{max-height:85vh;overflow-y:auto;}}@media (min-width: 1025px){body>div.mobile-contact-wrapper .pop-up{max-height:none;overflow-y:initial;max-width:637px;border-radius:16px;bottom:28px;left:19px;}}body>div.mobile-contact-wrapper .pop-up .lp-container{padding-top:24px;padding-bottom:24px;-webkit-box-pack:center;-ms-flex-pack:center;
60-webkit-justify-content:center;justify-content:center;}@media (min-width: 1025px){body>div.mobile-contact-wrapper .pop-up .lp-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding-top:40px;padding-bottom:40px;min-height:450px;padding-left:56px;padding-right:56px;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}body>div.mobile-contact-wrapper .pop-up .close-btn{width:44px;height:44px;background-color:transparent;border-color:transparent;display:block;margin:24px auto 0;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--textColor);cursor:pointer;padding:10px;border:0;}body>div.mobile-contact-wrapper .pop-up .close-btn:before{width:24px;height:24px;}@media (min-width: 1025px){body>div.mobile-contact-wrapper .pop-up .close-btn{position:absolute;top:14px;right:12px;margin:0;}}body>div.mobile-contact-wrapper .pop-up .icon-btn{width:44px;height:44px;border-radius:999px;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-left:8px;color:var(--textColor);position:relative;}body>div.mobile-contact-wrapper .pop-up .icon-btn:after{position:absolute;bottom:0;width:100%;left:0;border-radius:999px;
60height:100%;content:'';border:solid 1px var(--textColor);opacity:.3;}body>div.mobile-contact-wrapper .pop-up .icon-btn:before{width:24px;height:24px;}body>div.mobile-contact-wrapper .success-block{display:none;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}@media (min-width: 1025px){body>div.mobile-contact-wrapper .success-block{-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}body>div.mobile-contact-wrapper .success-block .lp-btn{margin-top:24px;}body>div.mobile-contact-wrapper .contact-form{margin:0;}@media (max-width: 1024px){body>div.mobile-contact-wrapper .contact-form__item{width:100%;}}body>div.mobile-contact-wrapper .contact-form__item .lp-input{width:100%;}body>div.mobile-contact-wrapper .contact-form__item .is-placeholder{color:#818181;}body>div.mobile-contact-wrapper .contact-form__item+.contact-form__item{margin-top:16px;}body>div.mobile-contact-wrapper .contact-form.show-success .contact-form__container,body>div.mobile-contact-wrapper .contact-form.success .contact-form__container{display:none;}body>div.mobile-contact-wrapper .contact-form.show-success .success-block,body>div.mobile-contact-wrapper .contact-form.success .success-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}body>div.mobile-contact-wrapper .contact-form .lp-disclaimer{margin-top:16px;}body>div.mobile-contact-wrapper .contact-form .lp-h3{margin-bottom:16px;}body>div.mobile-contact-wrapper .success-message{font-size:22px;}@-webkit-keyframes pulsate{0%{box-shadow:0 0 0 0 rgba(255, 255, 255, 0.2);}50%{box-shadow:0 0 4px 6px rgba(255, 255, 255, .5);}100%{box-shadow:0 0 12px 12px rgba(255, 255, 255, 0);}} 61 </style> 62 <style id="custom-style-css">.button-style-1{color:rgba(255, 255, 255, 1)!important;background-color:rgba(35, 42, 48, 1)!important;border-color:rgba(35, 42, 48, 1)!important;}.button-style-1:hover{color:rgba(35, 42, 48, 1)!important;background-color:rgba(170, 185, 192, 1)!important;border-color:rgba(170, 185, 192, 1)!important;}.pagination-style-1 li a{color:rgba(35, 42, 48, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-1 li a:hover{color:rgba(35, 42, 48, 1)!important;background-color:rgba(170, 185, 192, 1)!important;border-color:rgba(170, 185, 192, 1)!important;}.pagination-style-1 li.active a{color:rgba(35, 42, 48, 1)!important;background-color:rgba(170, 185, 192, 1)!important;border-color:rgba(170, 185, 192, 1)!important;}.hyperlink-style-1{color:rgba(0, 0, 0, 1)!important;}.hyperlink-style-1:hover{color:rgba(171, 99, 51, 1)!important;}.social_icons-style-1 a{border-color:rgba(35, 42, 48, 1)!important;background-color:rgba(35, 42, 48, 1)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-1 a:hover{border-color:rgba(170, 185, 192, 1)!important;background-color:rgba(170, 185, 192, 1)!important;color:rgba(35, 42, 48, 1)!important;}.social_icons-style-1 a i{color:inherit!important;}
62.social_icons-style-1 a svg,.social_icons-style-1 a svg path{fill:currentColor!important;}.button-style-2{color:rgba(35, 42, 48, 1)!important;background-color:rgba(247, 247, 247, 1)!important;border-color:rgba(247, 247, 247, 1)!important;}.button-style-2:hover{color:rgba(35, 42, 48, 1)!important;background-color:rgba(170, 185, 192, 1)!important;border-color:rgba(170, 185, 192, 1)!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:rgba(171, 99, 51, 1)!important;}.pagination-style-2 li a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-2 li a:hover{color:rgba(35, 42, 48, 1)!important;background-color:rgba(170, 185, 192, 1)!important;border-color:rgba(170, 185, 192, 1)!important;}.pagination-style-2 li.active a{color:rgba(35, 42, 48, 1)!important;background-color:rgba(170, 185, 192, 1)!important;border-color:rgba(170, 185, 192, 1)!important;}.social_icons-style-2 a{border-color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 1)!important;color:rgba(35, 42, 48, 1)!important;}.social_icons-style-2 a:hover{border-color:rgba(170, 185, 192, 1)!important;background-color:rgba(170, 185, 192, 1)!important;color:rgba(35, 42, 48, 1)!important;}.social_icons-style-2 a i{color:inherit!important;}
62.social_icons-style-2 a svg,.social_icons-style-2 a svg path{fill:currentColor!important;}.button-style-3{color:rgba(35, 42, 48, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(35, 42, 48, 1)!important;}.button-style-3:hover{color:rgba(35, 42, 48, 1)!important;background-color:rgba(170, 185, 192, 1)!important;border-color:rgba(170, 185, 192, 1)!important;}.button-style-4{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-4:hover{color:rgba(35, 42, 48, 1)!important;background-color:rgba(170, 185, 192, 1)!important;border-color:rgba(170, 185, 192, 1)!important;}.button-style-5{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 35, 73, 1)!important;border-color:rgba(0, 35, 73, 1)!important;}.button-style-5:hover{color:rgba(0, 35, 73, 1)!important;background-color:rgba(0, 0, 0, 0.01)!important;border-color:rgba(0, 35, 73, 1)!important;}.button-style-6{color:#000000!important;background-color:#FFFFFF!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-6:hover{color:#FFFFFF!important;background-color:rgba(0, 0, 0, 0)!important;border-color:#FFFFFF!important;}.button-style-7{color:rgba(255, 255, 255, 1)!important;background-color:rgba(233, 22, 29, 1)!important;border-color:rgba(233, 22, 29, 1)!important;}.button-style-7:hover{color:rgba(233, 22, 29, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(233, 22, 29, 1)!important;}</style> 63 <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode 64 defaults, and dynamically loads the locale + main (and banner if needed). --> 65
65<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="4d649273-d03b-4e27-a6a8-89e21a8a5908"></script>
65 66 67 68
68<script> 69 (function utmParse() { 70 const url = new URL(window.location.href); 71 if (url.search) { 72 const utm = url.search.split(/\?|&/g).reduce((acc, current) => { 73 const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g); 74 if (matched) { 75 acc[matched[0]] = current.replace(`${matched[0]}=`, ''); 76 } 77 return acc; 78 }, {}); 79 if (Object.keys(utm).length) { 80 window.localStorage.setItem('utm_vars', JSON.stringify(utm)); 81 } else { 82 // Remove old utm vars 83 window.localStorage.removeItem('utm_vars'); 84 } 85 } 86 // Set referrer in local storage 87 // This is meant to be stored once to avoid self-referrals and to have the first referrer only. 88 if (!window.localStorage.getItem('referrer')) { 89 // Capture the Referrer URL 90 const referrer = document.referrer; 91 if (referrer) { 92 // Only store the referrer if it comes from outside the current domain (to avoid self-referrals) 93 const currentDomain = window.location.hostname; 94 const referrerDomain = new URL(referrer).hostname; 95 96 if (referrerDomain !== currentDomain) { 97 // Store it in localStorage 98 localStorage.setItem('referrer', referrer); 99 } 100 } 101 } 102 })(); 103 </script>
103 104 105 <!-- GOOGLE TRANSLATE STYLES are moved to external CSS --> 106</head> 107<body> 108 <div id="google_translate_element" style="display: none"></div> 109 110 <nav id="global-navbar" data-el-id="43e7a874-fb1e-4cdd-91fe-eb6bf5b9179b"> 111 <div class="redesign"> 112 <div class="content-container header"> 113 <div class="container header__container"> 114 <div class="navbar"> 115 <div class="logo"> 116 <a href="/" class="logo__link"> 117 <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/dpcqeuty2d9xsncctzld" 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/dpcqeuty2d9xsncctzld 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/dpcqeuty2d9xsncctzld 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/dpcqeuty2d9xsncctzld 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/dpcqeuty2d9xsncctzld 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/dpcqeuty2d9xsncctzld 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/dpcqeuty2d9xsncctzld 3456w" class="logo__img light" alt=""> 118 <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/fmglixzx06g35ck6vuxv" 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/fmglixzx06g35ck6vuxv 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/fmglixzx06g35ck6vuxv 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/fmglixzx06g35ck6vuxv 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/fmglixzx06g35ck6vuxv 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/fmglixzx06g35ck6vuxv 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/fmglixzx06g35ck6vuxv 3456w" class="logo__img dark" alt=""> 119 </a> 120 </div> 121 <div class="navigation"> 122 <ul> 123 <li class="navigation__item"> 124 <a href="/agent/rich-richardson" class="navigation__link wow fadeInUp" data-wow-delay="2.0"><span>Meet Rich</span></a> 125 </li> 126 <li class="navigation__item"> 127 <a href="/team" class="navigation__link wow fadeInUp" data-wow-delay="2.1"><span>Meet Team Rich Richardson</span></a> 128 </li> 129 <li class="navigation__item sub-nav-container"> 130 <a href="#" class="navigation__link wow fadeInUp">Properties</a> 131 <div class="sub-nav"> 132 <ul> 133 <li class="sub-nav__item"><a href="/properties/sale" class="nav-link sub-nav__link feature"><span>Featured Properties</span></a></li> 134 <li class="sub-nav__item"><a href="/properties/sold" class="nav-link sub-nav__link feature"><span>Notable Transactions</span></a></li> 135 </ul> 136 </div> 137 </li> 138 <li class="navigation__item"> 139 <a href="/home-search/listings" class="navigation__link wow fadeInUp" data-wow-delay="2.3"><span>Home Search</span></a> 140 </li> 141 <li class="navigation__item"> 142 <a data-type="CONTACT_US" class="navigation__link wow fadeInUp"><span>Let's Connect</span></a> 143 </li> 144 <li class="navigation__item"> 145 <a href="tel:4046801144" class="navigation__link wow fadeInUp" data-wow-delay="2.5"><span>(404) 680-1144</span></a> 146 </li> 147 </ul> 148 </div> 149 <div class="buttons-wrapper"> 150 <button type="button" class="hamburger-component hamburger">
151 <span class="hamburger__bars"></span> 152 </button> 153 </div> 154 </div> 155 </div> 156 </div> 157</div> 158 159 </nav> 160 <div id="global-sidemenu" class="sidemenu" data-el-id="11fa925d-d2dd-4213-a0fa-d46f769e2c18"> 161 <div class="sidebar"> 162 163 <button class="toggle sidebar__close close"></button> 164 <div class="sidebar__content"> 165 166 <ul class="sidebar__nav"> 167 <li class="sidebar__nav-item"> 168 <a href="/" class="sidebar__nav-link">Home</a> 169 </li> 170 <li class="sidebar__nav-item"> 171 <a href="/agent/rich-richardson" class="sidebar__nav-link">Meet Rich</a> 172 </li> 173 <li class="sidebar__nav-item"> 174 <a href="/team" class="sidebar__nav-link">Meet the Team</a> 175 </li> 176 <li class="sidebar__nav-item sub-nav-container"> 177 <div class="sub-nav"> 178 <ul class="sidebar__subnav"> 179 <li class="sidebar__subnav-item"><a href="/properties/sale" class="sidebar__subnav-link">Featured Properties</a></li> 180 <li class="sidebar__subnav-item"><a href="/properties/sold" class="sidebar__subnav-link">Notable Transactions</a></li> 181 </ul> 182 </div> 183 <a href="#" class="sidebar__nav-link link main-nav">Properties</a> 184 </li> 185 <li class="sidebar__nav-item"> 186 <a href="/home-search/listings" class="sidebar__nav-link">Home Search</a> 187 </li> 188 <li class="sidebar__nav-item sub-nav-container"> 189 <div class="sub-nav"> 190 <ul class="sidebar__subnav"> 191 <li class="sidebar__subnav-item"><a href="/neighborhoods" class="sidebar__subnav-link">Neighborhoods</a></li> 192 <li class="sidebar__subnav-item"><a target="_blank" href="https://www.schooldigger.com/go/GA/search.aspx" class="sidebar__subnav-link">Schools</a></li> 193 </ul> 194 </div> 195 <a href="#" class="sidebar__nav-link link main-nav">Neighborhoods + Schools</a> 196 </li> 197 <li class="sidebar__nav-item"> 198 <a href="/bolst-cofounder" class="sidebar__nav-link">Bolst Cofounder</a> 199 </li> 200 <li class="sidebar__nav-item sub-nav-container"> 201 <div class="sub-nav"> 202 <ul class="sidebar__subnav"> 203 <li class="sidebar__subnav-item"><a href="/buyers-guide" class="sidebar__subnav-link">Buyer's Guide</a></li> 204 <li class="sidebar__subnav-item"><a href="/sellers-guide" class="sidebar__subnav-link">Seller's Guide</a></li> 205 </ul> 206 </div> 207 <a href="#" class="sidebar__nav-link link main-nav">Resources</a> 208 </li> 209 <li class="sidebar__nav-item"> 210 <a href="/blog" class="sidebar__nav-link">Blog</a> 211 </li> 212 <li class="sidebar__nav-item"> 213 <a href="/contact-us" class="sidebar__nav-link">Let's Connect</a> 214 </li> 215 <li class="sidebar__nav-item"> 216 <a href="/testimonials" class="sidebar__nav-link">Testimonials</a> 217 </li> 218 </ul> 219 </div> 220</div> 221 </div> 222 <div id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="befe5af2-a6ca-4119-924a-a85d96d36b51"> 223 <div class="btn-holder" 224style=" 225--backgroundColor: rgba(247, 247, 247, 1); 226--textColor: rgba(35, 42, 48, 1); 227--pillTextColor: rgba(255, 255, 255, 1); 228--pillBackgroundColor: rgba(35, 42, 48, 1);"> 229 230 <button type="button" class="connect-btn lp-ico lp-ico-arrow-top visible">Contact Us</button> 231</div> 232 233 234<div class="pop-up" style="--backgroundColor: rgba(247, 247, 247, 1); --textColor: rgba(35, 42, 48, 1);"> 235 <div class="lp-container"> 236 <form data-type="contact-form" class="contact-form"> 237 <div class="contact-form__container"> 238 <h3 class="lp-h3">Leave a Message</h3> 239 240 <div class="contact-form__content"> 241 <div class="contact-form__inputs-container"> 242 <div class="contact-form__item"> 243 <input 244 id="__FullName" 245 type="text" name="name" 246 class="lp-input lp-input--light" 247 required 248 placeholder="Full Name"> 249 </div> 250 <div class="contact-form__item"> 251 <input 252 id="__Email" 253 type="email" name="email"
254 class="lp-input js-email-input lp-input--light" 255 required 256 placeholder="Email"> 257 </div> 258 <div class="contact-form__item"> 259 <input 260 class="lp-input lp-input--light" 261 type="tel" 262 placeholder="Phone" 263 id="__Phone" 264 name="phone" 265 required> 266 </div> 267 268 <div class="contact-form__item input-group-select"> 269 <select name="interest" id="-field-interest" placeholder="Interest" 270 class="lp-input dropdown-select js-select js-form-element lp-input--light" required> 271 <option value="" disabled selected data-label="Interest">Interested in...</option> 272 <option value="Selling & Buying">Selling & Buying</option> 273 <option value="Selling">Selling</option> 274 <option value="Buying">Buying</option> 275 <option value="Renting">Renting</option> 276 <option value="Other">Other</option> 277 </select> 278 <label for="-field-interest" class="lp-label sr-only">Interest</label> 279 </div> 280 281 <div class="contact-form__item"> 282 <textarea 283 name="message" 284 rows="4" 285 id="__Message" 286 class="lp-input lp-input--light" 287 placeholder="Message" 288 required></textarea> 289 </div> 290 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 291 <label class='lp-tcr-content'> 292 <span class='lp-tcr-checkbox'> 293 <input 294 type='checkbox' 295 id='-termsAccepted' 296 name='termsAccepted' 297 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 298 oninput="this.setCustomValidity('')" 299 required 300 /></span> 301 <span class='lp-tcr-message'> 302 303 I agree to be contacted by 304 Rich Richardson 305 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 306 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 307 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 308 </span> 309 </label> 310 311</div> 312 <button type="submit" class="lp-btn lp-btn--filled lp-btn--dark submit contact-form__item">Submit</button> 313 314 <div class="lp-h-pot"> 315 <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 316 </div> 317 318 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 319 <input type="hidden" name="button_text" value="Contact Us"> 320 </div> 321 </div> 322 </div> 323 324 325 <div class="success-block"> 326 <h3 class="lp-h3 success-message">Thank you for your message. We will be in touch with you shortly.</h3> 327 328 </div> 329 </form> 330 331 <button type="button" class="close-btn lp-ico lp-ico-close"></button> 332 333 334 </div> 335</div> 336 337 338 </div> 339 <section class="image-section is-font-color-light is-background-color-light" id="section-7616ebb1-721c-4d8d-a841-e30b8b294494" data-el-id="e6c6941b-dd32-4d6b-b4aa-56593f2d58bb"> 340 <div class="redesign custom-intro"> 341 <div class="container"> 342 <h1 class="custom-intro__title">Blog</h1> 343 344 </div> 345</div> 346 347</section> 348<section id="section-247e796e-9beb-412d-bb50-69569f8459de" class="solid-section is-font-color-dark is-background-color-light" data-el-id="1e77e4a0-6624-43db-b736-bd434565fece">
349<script type="text/x-handlebars-template" class="gridItem pagination-script"><a href="/blog/{{slug}}" class="blog-list__item"> 350 <div class="blog-list__item-image"> 351 352 353 354 {{#if media.length}} 355 {{{mediaImage media.[0] alt=title}}} 356 {{/if}} 357 </div> 358 359 <div class="blog-list__item-content"> 360 <h4 class="serif">{{title}}</h4> 361 <ul class="blog-list__item-details"> 362 363 {{#isEmpty customAuthor}} 364 {{#if (or createdBy.firstName createdBy.lastName)}}<li class="blog-list__item-author">{{createdBy.firstName}} {{createdBy.lastName}}</li>{{/if}} 365 {{else}} 366 <li class="blog-list__item-author">{{customAuthor}}</li> 367 {{/isEmpty}} 368 369 <li class="blog-list__item-date">{{hbFormatDate publishedAt 'MM/DD/YY'}}</li> 370 </ul> 371 372 {{#if subtitle}} 373 <p>{{truncate (striptags subtitle) 130 "..."}}</p> 374 {{/if}} 375 <span class="link hyperlink-style-1">Read MORE</span> 376 </div> 377</a> 378</script>
378 379 380 381 382 383 384 385<div class="redesign blog-list"> 386 387 388 <div class="container blog-list__container data-container hide-date hide-author"> 389 <a href="/blog/johns-creek-built-the-walk-before-the-destination-and-medley-finishes-it-on-oct-29" class="blog-list__item"> 390 <div class="blog-list__item-image"> 391 392 393 394 <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/9118ae0b-59cd-42e3-83cd-f17e134c9381" 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/9118ae0b-59cd-42e3-83cd-f17e134c9381 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/9118ae0b-59cd-42e3-83cd-f17e134c9381 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/9118ae0b-59cd-42e3-83cd-f17e134c9381 1536w" alt="Johns Creek Built the Walk Before the Destination, and Medley Finishes It on Oct. 29" loading="lazy"> 395 </div> 396 397 <div class="blog-list__item-content"> 398 <h4 class="serif">Johns Creek Built the Walk Before the Destination, and Medley Finishes It on Oct. 29</h4> 399 <ul class="blog-list__item-details"> 400 401 402 403 <li class="blog-list__item-date">10/8/26</li> 404 </ul> 405 406 <span class="link hyperlink-style-1">Read MORE</span> 407 </div> 408 </a> 409 <a href="/blog/the-trail-at-milton-city-park-and-preserve-is-finally-done-the-parking-lot-isnt" class="blog-list__item"> 410 <div class="blog-list__item-image"> 411 412 413 414 <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/3c903dd0-100a-435d-ad99-2e1e9f6e2111" 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/3c903dd0-100a-435d-ad99-2e1e9f6e2111 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/3c903dd0-100a-435d-ad99-2e1e9f6e2111 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/3c903dd0-100a-435d-ad99-2e1e9f6e2111 1536w" alt="Charcoal-brick house corner above a stone terrace, with deep lawn and a gold-turning oak." loading="lazy"> 415 </div> 416 417 <div class="blog-list__item-content"> 418 <h4 class="serif">The Trail At Milton City Park And Preserve Is Finally Done. The Parking Lot Isn't.</h4> 419 <ul class="blog-list__item-details"> 420 421 422 423 <li class="blog-list__item-date">10/1/26</li> 424 </ul> 425 426 <span class="link hyperlink-style-1">Read MORE</span> 427 </div> 428 </a> 429 <a href="/blog/riverside-park-went-dark-in-2026-roswell-quietly-moved-the-party-downtown" class="blog-list__item"> 430 <div class="blog-list__item-image"> 431 432 433 434 <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/84151a57-2c73-43d8-b355-0ed678c0cf32" 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/84151a57-2c73-43d8-b355-0ed678c0cf32 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/84151a57-2c73-43d8-b355-0ed678c0cf32 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/84151a57-2c73-43d8-b355-0ed678c0cf32 1408w" alt="Red-brick Southern home with a columned portico, herringbone walk, clipped hedges, and magnolia beneath an oak canopy." loading="lazy"> 435 </div> 436 437 <div class="blog-list__item-content"> 438 <h4 class="serif">Riverside Park Went Dark in 2026. Roswell Quietly Moved the Party Downtown.</h4> 439 <ul class="blog-list__item-details"> 440 441 442 443 <li class="blog-list__item-date">09/24/26</li> 444 </ul> 445
446 <span class="link hyperlink-style-1">Read MORE</span> 447 </div> 448 </a> 449 <a href="/blog/decatur-has-two-new-developments-right-now-only-one-opens-this-year" class="blog-list__item"> 450 <div class="blog-list__item-image"> 451 452 453 454 <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/57e8050f-bdad-4a26-a279-fa2dee10e032" 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/57e8050f-bdad-4a26-a279-fa2dee10e032 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/57e8050f-bdad-4a26-a279-fa2dee10e032 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/57e8050f-bdad-4a26-a279-fa2dee10e032 1408w" alt="Symmetrical two-story brick home with a green door, white-columned portico, magnolia canopy, and diagonal brick walkway." loading="lazy"> 455 </div> 456 457 <div class="blog-list__item-content"> 458 <h4 class="serif">Decatur Has Two "New Developments" Right Now. Only One Opens This Year.</h4> 459 <ul class="blog-list__item-details"> 460 461 462 463 <li class="blog-list__item-date">09/17/26</li> 464 </ul> 465 466 <span class="link hyperlink-style-1">Read MORE</span> 467 </div> 468 </a> 469 <a href="/blog/the-sandy-springs-tax-bill-you-see-isnt-the-one-youll-pay" class="blog-list__item"> 470 <div class="blog-list__item-image"> 471 472 473 474 <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/79c73d62-2912-4662-a985-a8707e9c5e6d" 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/79c73d62-2912-4662-a985-a8707e9c5e6d 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/79c73d62-2912-4662-a985-a8707e9c5e6d 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/79c73d62-2912-4662-a985-a8707e9c5e6d 1408w" alt="Modern dark-brick home behind a curving bluestone walk and lawn, shaded by an oak canopy." loading="lazy"> 475 </div> 476 477 <div class="blog-list__item-content"> 478 <h4 class="serif">The Sandy Springs Tax Bill You See Isn't the One You'll Pay</h4> 479 <ul class="blog-list__item-details"> 480 481 482 483 <li class="blog-list__item-date">09/10/26</li> 484 </ul> 485 486 <span class="link hyperlink-style-1">Read MORE</span> 487 </div> 488 </a> 489 <a href="/blog/atlantas-new-tree-ordinance-just-repriced-what-a-tuxedo-park-teardown-is-worth" class="blog-list__item"> 490 <div class="blog-list__item-image"> 491 492 493 494 <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/b1a34254-d1f4-40ff-a5d8-dd7967c02dc6" 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/b1a34254-d1f4-40ff-a5d8-dd7967c02dc6 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/b1a34254-d1f4-40ff-a5d8-dd7967c02dc6 1280w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/b1a34254-d1f4-40ff-a5d8-dd7967c02dc6 1408w" alt="Symmetrical two-story brick estate beneath arching oak canopies, with a broad lawn and brick path leading to its arched entry." loading="lazy"> 495 </div> 496 497 <div class="blog-list__item-content"> 498 <h4 class="serif">Atlanta'
498s New Tree Ordinance Just Repriced What a Tuxedo Park Teardown Is Worth</h4> 499 <ul class="blog-list__item-details"> 500 501 502 503 <li class="blog-list__item-date">09/10/26</li> 504 </ul> 505 506 <span class="link hyperlink-style-1">Read MORE</span> 507 </div> 508 </a> 509 </div> 510 <div class="empty-results">Sorry, we couldn't find any results that match that search. Try another search.</div> 511 <div class="pagination-container pagination-container--dark pagination-style-1"></div> 512</div> 513</section> 514<section id="section-552d56a9-1f0c-4092-837c-0f3b8aa080b6" class="solid-section is-font-color-light is-background-color-light" data-el-id="c486d5ea-5179-43ae-904c-a0e6d0289d98"> 515 <div class="popup-modal redesign lp-vertical-paddings"> 516 <div class="lp-container popup-modal__container"> 517 <form class="popup-modal__form popup-modal__form--with-image" data-type="contact-form" style='background-color: rgba(35, 42, 48, 1);' data-delay="5000"> 518 <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/mcqjbzmdubyarnamnj4e" 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/mcqjbzmdubyarnamnj4e 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/mcqjbzmdubyarnamnj4e 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/mcqjbzmdubyarnamnj4e 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/mcqjbzmdubyarnamnj4e 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/mcqjbzmdubyarnamnj4e 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/mcqjbzmdubyarnamnj4e 3456w" sizes="50vw" alt="Form Image" class="image" loading="lazy"> 519 <div class="form-group"> 520 521 <div class="lp-title-group popup-modal__left-align"> 522 <h2 class="lp-h2">Get Access To Our Private Listings</h2> 523 <div class="lp-h6 lp-text--subtitle"><p>Fill out the form below to receive our comprehensive list of market listings.</p></div> 524 </div> 525 526 <div class="form-inputs-wrap "> 527 528 <div class="input-container"> 529 <input id="section-552d56a9-1f0c-4092-837c-0f3b8aa080b6-mp-name" name="name" type="text" class="lp-input lp-input--light popup-modal__input" placeholder="Name" required> 530 <span class="input-icon"></span> 531 </div> 532 533 534 <div class="input-container"> 535 <input id="section-552d56a9-1f0c-4092-837c-0f3b8aa080b6-mp-email" name="email" type="email" class="lp-input lp-input--light popup-modal__input" placeholder="Email" required pattern="[a-zA-Z0-9.!#$%&â*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+"> 536 <span class="input-icon"></span> 537 </div> 538 539 <div class="input-container"> 540 <input id="section-552d56a9-1f0c-4092-837c-0f3b8aa080b6-mp-phone" name="phone" type="tel" class="lp-input lp-input--light popup-modal__input" placeholder="Phone" required> 541 <span class="input-icon"></span> 542 </div> 543 544 <div class="lp-h-pot"> 545 <label for="section-552d56a9-1f0c-4092-837c-0f3b8aa080b6-middleName">Middle Name</label> 546 <input id="section-552d56a9-1f0c-4092-837c-0f3b8aa080b6-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 547 </div> 548 <div class="lp-disclaimer"> <label style='display: none;' for='section-552d56a9-1f0c-4092-837c-0f3b8aa080b6-termsAccepted'>Opt In/Disclaimer Consent:</label> 549 <label class='lp-tcr-content'> 550 <span class='lp-tcr-checkbox'> 551 <input 552 type='checkbox' 553 id='section-552d56a9-1f0c-4092-837c-0f3b8aa080b6-termsAccepted' 554 name='termsAccepted' 555 oninvalid="this.setCustomValidity('Please accept the terms and conditions')"
556 oninput="this.setCustomValidity('')" 557 required 558 /></span> 559 <span class='lp-tcr-message'> 560 561 I agree to be contacted by 562 Rich Richardson 563 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 564 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 565 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 566 </span> 567 </label> 568 569</div> 570 571 <input type="hidden" name="source" value="CONTACT_INQUIRY"> 572 <button class="popup-modal__submit lp-btn lp-btn--light lp-btn--filled button-style-2" type="submit">Submit</button> 573 </div> 574 575 </div> 576 577 578 579 <div class="thank-you"> 580 <div class="lp-title-group"> 581 <h2 class="lp-h2">Thank You!</h2> 582 <p class="lp-h6 lp-text--subtitle">Find all current listings available</p> 583 </div> 584 585 <a 586 href="/properties/sale" 587 588 class="lp-btn lp-btn--dark lp-btn--outline button-style-2" 589 590 591 592 593 594 > 595 See Your Listing 596 </a> 597 </div> 598 </form> 599 600 </div> 601</div> 602 603</section> 604<section class="image-section is-font-color-light is-background-color-light" id="section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2" data-el-id="e6b1ae9f-5b8d-4ac5-a23f-bfb55ef91c3c"> 605
605<script> 606 (function(){ 607 const sectionId = 'section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2' 608 const section = document.querySelector(`#${sectionId}`); 609 var sectionBg = window.getComputedStyle(section, null).getPropertyValue('background-image'); 610 611 if('true' === 'true') { 612 section.classList.add('parallax-enabled'); 613 section.style.setProperty('--sectionBackground', sectionBg); 614 section.style.setProperty('background', 'none'); 615 } 616 })() 617</script>
617 618<div class="redesign work-with-us parallax"> 619 <div class="container"> 620 <h2 class="serif">Work With Us</h2> 621 <div class="description">We pride ourselves in providing personalized solutions that bring our clients closer to their dream properties and enhance their long-term wealth. Contact us today to find out how we can be of assistance to you! 622</div> 623 <div class="btn-container"> 624 <a 625 role="button" 626 data-type="CONTACT_US" 627 class="btn btn--primary-light button-style-2" 628 629 630 631 632 633 > 634 Contact Us 635 </a> 636 </div> 637 </div> 638</div> 639</section> 640<section id="section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d" class="solid-section is-font-color-dark is-background-color-light" data-el-id="5db65d6a-01e9-4ee3-babf-2748e074a284"> 641
641<script type="text/x-handlebars-template" class="jsIGItem"> 642 <a href="{{permalink}}" target="_blank" class="ig-feed-item insta-type-{{mediaType}}"> 643 <div class="ig-feed-item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{^}}{{mediaUrl}}{{/ifEquals}}');"></div> 644 <div class="ig-feed-item__info"><div class="ig-feed-item__caption">{{caption}}</div></div> 645 {{#ifEquals mediaType 'VIDEO'}}<div class="video-icon"></div>{{/ifEquals}} 646 </a> 647</script>
647 648<div class="ig-feed redesign"> 649 <div class="ig-feed-top lp-container"> 650 <div class="top-wrapper"> 651 <div class="top-left"> 652 <h3 class="lp-h3 title">Follow Me on Instagram</h3> 653 <a href="#" target="_blank" class="instagram-link jsIGLink"><h4 class="lp-h4 instagram-name jsIGName"></h4></a> 654 </div> 655 <div class="top-right"> 656 <a href="#" target="_blank" class="lp-btn lp-btn--dark lp-btn--outline lp-btn--mob-full-width follow-button jsIGLink button-style-1">Follow Me</a> 657 <a class="nav-button top-nav-prev hidden-control button-style-1"> 658 <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.099 13.25l-5.25-5.775L7.099 1.7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 659 </a> 660 <a class="nav-button top-nav-next hidden-control button-style-1"> 661 <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.90137 1.75L7.15137 7.525L1.90137 13.3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 662 </a> 663 </div> 664 </div> 665 </div> 666 <div class="lp-container ig-feed-container "> 667 <div class="ig-feed-feed" data-limit="33"> 668 </div> 669 </div> 670 <div class="bottom-controls"> 671 <a class="bottom-nav-button bottom-nav-prev button-style-1"> 672 <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7.099 13.25l-5.25-5.775L7.099 1.7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 673 </a> 674 <a class="bottom-nav-button bottom-nav-next button-style-1"> 675 <svg width="9" height="15" viewBox="0 0 9 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.90137 1.75L7.15137 7.525L1.90137 13.3" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg> 676 </a> 677 </div> 678</div> 679 680</section> 681 682 <div id="modals" class="modals"></div> 683 <footer id="global-footer" class="is-font-color-light is-background-color-dark" data-el-id="874a9373-949d-4275-b72f-04c2a6ec373b"> 684 <div class="footer redesign no_newsletter "> 685 <div class="container"> 686 <h3>Team Rich Richardson</h3> 687 <div class="info-wrap"> 688 <div class="info-wrap-contact agent_box"> 689 <div class="info-wrap-contact_zone type_user"> 690 <h4 class="serif">Get Started</h4> 691 <div class="info-wrap-contact_cell"> 692 <i> 693 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 694 <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" /> 695 </svg> 696 </i> 697 <p class="contact_title">Email</p> 698 <a href="/cdn-cgi/l/email-protection#2d5f444e456d59484c405f5f034e4240" class="lp-link info-wrap-contact_link grey-text hyperlink-style-2"><span class="__cf_email__" data-cfemail="5f2d363c371f2b3a3e322d2d713c3032">[email protected]</span></a> 699 </div> 700 <div class="info-wrap-contact_cell"> 701 <i><svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 702 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.7964 8.1207H19.2036V8.7279C19.2036 10.8195 20.9082 12.5259 23.001 12.5259H24.741L25.2852 20.7051C25.3776 22.1235 24.2868 23.2719 22.8822 23.2719H7.0032C5.5944 23.2719 4.5084 22.1085 4.6002 20.7039C4.782 17.9895 4.9152 15.23
70213 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" /> 703 </svg></i> 704 <p class="contact_title">Phone Number</p> 705 <a href="tel:4046801144" class="lp-link info-wrap-contact_link grey-text hyperlink-style-2">M: (404) 680-1144</a> 706 </div> 707 </div> 708 <div class="info-wrap-contact_zone type_user"> 709 <div class="info-wrap-contact_cell"> 710 <i> 711 <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 712 <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" /> 713 </svg> 714 </i> 715 <p class="contact_title">Phone Number</p> 716 <a href="tel:4044822293" class="lp-link info-wrap-contact_link grey-text hyperlink-style-2">O: (404) 482-2293</a> 717 </div> 718 </div> 719 <div class="info-wrap-contact_zone"> 720 <div class="info-wrap-contact_cell"> 721 <i> 722 <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 723 <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
7230.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" /> 724 <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" /> 725 <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" /> 726 </svg> 727 </i> 728 <p class="info-wrap-contact_title">Address</p> 729 <p class="info-wrap-contact_link grey-text"><p>620 GLEN IRIS DR NE UNIT 1</p> 730<p>ATLANTA GA 30308</p></p> 731 </div> 732 </div> 733 </div> 734 </div> 735 <div class="text_footer first_text_footer"> 736 <div class="images_box"> 737 <div class="img_size"> 738 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/rp0akum0uzqujfgkg6dr" 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/rp0akum0uzqujfgkg6dr 320w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/rp0akum0uzqujfgkg6dr 844w" alt="Footer Image" sizes="200px"> 739 </div> 740 </div> 741 <div class="luxury-text"> 742 <p style="font-size: 12px;">All information is deemed reliable but not guaranteed and should be independently reviewed and verified.<br><br></p> 743<p style="opacity: 1;"><img style="width: 100px; height: auto; filter: invert(1);" src="https://media-production.lp-cdn.com/media/d684a1ed-6f8b-4df2-9370-dbc78886cc0d"></p> 744 </div> 745 </div> 746 <div class="text_footer second_text_footer"> 747 <div class="text_content_wrap"> 748 <div> 749 <div> </div> 750<style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style> 751 </div> 752 </div> 753 </div> 754 <div class="info-privacy"> 755 <div class="form-row info-privacy__row"> 756 757 <div class="form-col form-col--powered powered-box"> 758 <div class="img-wrap"> 759 <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/yx3xrks5spqir2skpzkx" 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/yx3xrks5spqir2skpzkx 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/yx3xrks5spqir2skpzkx 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/yx3xrks5spqir2skpzkx 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/yx3xrks5spqir2skpzkx 1920w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/yx3xrks5spqir2skpzkx 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/yx3xrks5spqir2skpzkx 3456w" sizes="200px" alt=""> 760 </div> 761 <div class="powered_zone"> 762 Real Estate Website Design by <a href="https://www.luxurypresence.com/real-estate-website-design/" target="_blank" class="lp-link grey-text luxury-link underlined hyperlink-style-2">Luxury Presence</a> 763 </div> 764 </div> 765 766 <div class="form-col form-col--copyright"> 767 <div class="copy_zone">
768 <span class="copy_words">Copyright ©</span> <span class="auto-year-update">2026</span> 769 | <a href="/terms-and-conditions" class="lp-link grey-text hyperlink-style-2">Privacy Policy</a> 770 771 </div> 772 </div> 773 774 <div class="form-col form-col--socials"> 775 <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone"> 776 777 <li> 778 <a 779 href="https://www.facebook.com/teamrichrichardson" 780 class="lp-socials__link socials__item socials__link wow fadeInUp" 781 data-wow-delay="0s" 782 target="_blank" 783 aria-label="FACEBOOK" 784 > 785 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 786 </a> 787 </li> 788 <li> 789 <a 790 href="https://www.instagram.com/teamrichrichardson/?hl=en" 791 class="lp-socials__link socials__item socials__link wow fadeInUp" 792 data-wow-delay="0.1s" 793 target="_blank" 794 aria-label="INSTAGRAM" 795 > 796 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 797 </a> 798 </li> 799 <li> 800 <a 801 href="https://www.linkedin.com/in/rich-richardson-8942b44/" 802 class="lp-socials__link socials__item socials__link wow fadeInUp" 803 data-wow-delay="0.2s" 804 target="_blank" 805 aria-label="LINKEDIN" 806 > 807 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 808 </a> 809 </li> 810 <li> 811 <a 812 href="https://www.google.com/search?q=Team+Rich+Richardson++GA&sca_esv=17cd44fc334c6f6b&rlz=1C1GCEB_enPH922PH922&ei=6FG6ZuKQLavO2roP2bS44AQ&ved=0ahUKEwjipNaiiPCHAxUrp1YBHVkaDkwQ4dUDCA8&uact=5&oq=Team+Rich+Richardson++GA&gs_lp=Egxnd3Mtd2l6LXNlcnAiGFRlYW0gUmljaCBSaWNoYXJkc29uICBHQTIIEAAYgAQYogQyCBAAGIAEGKIEMggQABiABBiiBEjyAlAAWABwAHgAkAEAmAF-oAF-qgEDMC4xuAEDyAEA-AEC-AEBmAIBoAKKAZgDAOIDBRIBMSBAkgcDMC4xoAfGAQ&sclient=gws-wiz-serp#lrd=0x88f508c1162669a3:0x1d54375e2f411425,1,,,," 813 class="lp-socials__link socials__item socials__link wow fadeInUp" 814 data-wow-delay="0.3s" 815 target="_blank" 816 aria-label="GOOGLE" 817 > 818 <span class="lp-i lp-i--google" aria-hidden="true"></span> 819 </a> 820 </li> 821 <li> 822 <a 823 href="https://www.zillow.com/profile/TeamRR" 824 class="lp-socials__link socials__item socials__link wow fadeInUp" 825 data-wow-delay="0.4s" 826 target="_blank" 827 aria-label="ZILLOW" 828 > 829 <span class="lp-i lp-i--zillow" aria-hidden="true"></span> 830 </a> 831 </li> 832 </ul> </div> 833 </div> 834 </div> 835 </div> 836</div> 837 838 </footer> 839 840 <div id="modal-global-contact-us" class="modal " 841 data-el-id="" 842 style="background-color: ;" 843 > 844 <div class="modal-content"> 845 <div class="contact-form redesign " style="background-image: url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/xr52fnlqupos3cacoaf8')"> 846 <div class="container">
847 <div class="section-details" style="--colorTxt: #ffffff"> 848 <h2>Contact Details</h2> 849 850 <div class="info-zone"> 851 852 <div class="info-zone_contact type_user"> 853 <h4 class="serif">Team Rich Richardson</h4> 854 <div class="info-zone_contact_cell"> 855 <i> 856 <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 857 <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"/> 858 </svg> 859 </i> 860 <p class="contact_title">Phone</p> 861 <a href="tel:M: (404) 680-1144" class="lp-link info-zone_contact_link link hyperlink-style-2">M: (404) 680-1144</a> 862 </div> 863 </div> 864 <div class="info-zone_contact type_user"> 865 <div class="info-zone_contact_cell"> 866 <i> 867 <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 868 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.7964 8.1207H19.2036V8.7279C19.2036 10.8195 20.9082 12.5259 23.001 12.5259H24.741L25.2852 20.7051C25.3776 22.1235 24.2868 23.2719 22.8822 23.2719H7.0032C5.5944 23.2719 4.5084 22.1085 4.6002 20.7039C4.782 17.9895 4.9152 15.2313 5.154 12.5265H6.9996C9.0918 12.5265 10.797 10.8207 10.797 8.7285V8.1207H10.7964ZM11.46 16.5807C11.46 14.6565 13.0188 13.0977 14.943 13.0977C16.8666 13.0977 18.4254 14.6571 18.4254 16.5807C18.4254 18.5055 16.8678 20.0631 14.943 20.0631C13.02 20.0637 11.46 18.5043 11.46 16.5807ZM14.943 12.0381C12.4344 12.0381 10.4004 14.0721 10.4004 16.5807C10.4004 19.0887 12.435 21.1233 14.943 21.1233C17.4486 21.1233 19.485 19.0869 19.485 16.5807C19.485 14.0727 17.451 12.0381 14.943 12.0381ZM9.0846 4.8363C8.22 4.8363 7.512 5.5443 7.512 6.4089V8.7285C7.512 9.0093 7.2804 9.2415 6.999 9.2415H1.5726C1.2906 9.2415 1.0596 9.0111 1.0596 8.7285V6.9285C1.0596 6.4797 1.1628 6.0945 1.3902 5.7069C1.896 4.8465 2.7294 4.1013 3.795 3.4749C9.279 0.2517 20.7192 0.2523 26.2044 3.4749C27.2706 4.1013 28.104 4.8465 28.6098 5.7069C28.8354 6.0921 28.9398 6.48
86815 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"/> 869 </svg> 870 </i> 871 <p class="contact_title">Phone</p> 872 <a href="tel:O: (404) 482-2293" class="info-zone_contact_link hvr_animation link link--white hyperlink-style-2">O: (404) 482-2293</a> 873 </div> 874 <div class="info-zone_contact_cell"> 875 <i> 876 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 877 <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"/> 878 </svg> 879 </i> 880 <p class="contact_title">Email</p> 881 <a href="/cdn-cgi/l/email-protection#691b000a01291d0c08041b1b470a0604" class="info-zone_contact_link hvr_animation link link--white hyperlink-style-2"><span class="__cf_email__" data-cfemail="74061d171c340011151906065a171b19">[email protected]</span></a> 882 </div> 883 </div> 884 <div class="info-zone_contact"> 885 <div class="info-zone_contact_cell"> 886 <i> 887 <svg width="31" height="30" viewBox="0 0 31 30" fill="none" xmlns="http://www.w3.org/2000/svg"> 888 <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"/> 889 <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"/> 890 <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"/> 891 </svg> 892 </i> 893 <p class="info-wrap-contact_title">Address</p> 894 <p class="info-zone_contact_link pre-line">620 GLEN IRIS DR NE UNIT 1 895 ATLANTA, GA 30308</p> 896 </div> 897 </div> 898 <div class="info-zone_contact"> 899 <div class="info-zone_contact_cell"> 900 <p class="pre-line"><div></div><style>* { box-sizing: border-box; } body {margin: 0;}ul{list-style:inherit;}</style></p> 901 </div> 902 </div> 903 <ul class="lp-socials social_icons-style-2 socials socials--grey socials_zone footer__c
903ontact-column"> 904 905 <li> 906 <a 907 href="https://www.facebook.com/teamrichrichardson" 908 class="lp-socials__link socials__item wow fadeInUp socials__link" 909 data-wow-delay="0s" 910 target="_blank" 911 aria-label="FACEBOOK" 912 > 913 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 914 </a> 915 </li> 916 <li> 917 <a 918 href="https://www.instagram.com/teamrichrichardson/?hl=en" 919 class="lp-socials__link socials__item wow fadeInUp socials__link" 920 data-wow-delay="0.1s" 921 target="_blank" 922 aria-label="INSTAGRAM" 923 > 924 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 925 </a> 926 </li> 927 <li> 928 <a 929 href="https://www.linkedin.com/in/rich-richardson-8942b44/" 930 class="lp-socials__link socials__item wow fadeInUp socials__link" 931 data-wow-delay="0.2s" 932 target="_blank" 933 aria-label="LINKEDIN" 934 > 935 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 936 </a> 937 </li> 938 <li> 939 <a 940 href="https://www.google.com/search?q=Team+Rich+Richardson++GA&sca_esv=17cd44fc334c6f6b&rlz=1C1GCEB_enPH922PH922&ei=6FG6ZuKQLavO2roP2bS44AQ&ved=0ahUKEwjipNaiiPCHAxUrp1YBHVkaDkwQ4dUDCA8&uact=5&oq=Team+Rich+Richardson++GA&gs_lp=Egxnd3Mtd2l6LXNlcnAiGFRlYW0gUmljaCBSaWNoYXJkc29uICBHQTIIEAAYgAQYogQyCBAAGIAEGKIEMggQABiABBiiBEjyAlAAWABwAHgAkAEAmAF-oAF-qgEDMC4xuAEDyAEA-AEC-AEBmAIBoAKKAZgDAOIDBRIBMSBAkgcDMC4xoAfGAQ&sclient=gws-wiz-serp#lrd=0x88f508c1162669a3:0x1d54375e2f411425,1,,,," 941 class="lp-socials__link socials__item wow fadeInUp socials__link" 942 data-wow-delay="0.3s" 943 target="_blank" 944 aria-label="GOOGLE" 945 > 946 <span class="lp-i lp-i--google" aria-hidden="true"></span> 947 </a> 948 </li> 949 <li> 950 <a 951 href="https://www.zillow.com/profile/TeamRR" 952 class="lp-socials__link socials__item wow fadeInUp socials__link" 953 data-wow-delay="0.4s" 954 target="_blank" 955 aria-label="ZILLOW" 956 > 957 <span class="lp-i lp-i--zillow" aria-hidden="true"></span> 958 </a> 959 </li> 960 </ul> </div> 961 </div> 962 <div class="section-message"> 963 <form data-type="contact-form"> 964 <h2>Submit a Message</h2> 965 <div class="h-pot"> 966 <label for="-middleName">Middle Name</label> 967 <input id="-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 968 </div> 969 970
971 <div class="lp-input-group"> 972 <label for="prod-name" class="lp-label">Name</label> 973 <input id="prod-name" name="name" value="" required="" class="lp-input lp-input--light"> 974 </div> 975 <div class="lp-input-group"> 976 <label for="prod-email" class="lp-label">Email</label> 977 <input id="prod-email" type="email" name="email" value="" required="" class="lp-input lp-input--light"> 978 </div> 979 <div class="lp-input-group"> 980 <label for="prod-phone" class="lp-label">Phone</label> 981 <input id="prod-phone" type="tel" name="phoneNumber" value="" required="" class="lp-input lp-input--light"> 982 </div> 983 <div class="lp-input-group m16"> 984 <label for="prod-message" class="lp-label">Message</label> 985 <textarea id="prod-message" name="message" value="" required="" class="lp-input"></textarea> 986 </div> 987 988 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 989 <label class='lp-tcr-content'> 990 <span class='lp-tcr-checkbox'> 991 <input 992 type='checkbox' 993 id='-termsAccepted' 994 name='termsAccepted' 995 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 996 oninput="this.setCustomValidity('')" 997 required 998 /></span> 999 <span class='lp-tcr-message'> 1000 1001 I agree to be contacted by 1002 Rich Richardson 1003 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1004 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 1005 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 1006 </span> 1007 </label> 1008 1009 </div> 1010 1011 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 1012 1013 1014 <button type="submit" class="submitButton lp-btn button-style-2"> 1015 <span class="label-initial">Submit</span> 1016 <span class="label-loading">Submitting</span> 1017 <span class="label-success">Submitted</span> 1018 <span class="submit-icon lp-i lp-i--circle-notch lp-i--spin"></span> 1019 </button> 1020 <p class="success-message success hide"> 1021 Message sent successfully! 1022 </p> 1023 </form> 1024 1025 1026 </div> 1027 </div> 1028 </div> 1029 1030 </div> 1031 <button class="close lp-close" type="button" aria-label="close modal"> 1032 <span class="lp-close-icon" aria-hidden="true"></span> 1033 </button> 1034 </div> 1035 <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;"> 1036 <style> 1037 #qualifying-questions-modal .custom-select-toggle { 1038 border: 1px solid #848484; 1039 border-radius: 8px; 1040 padding: 12px 16px; 1041 } 1042 1043 #qualifying-questions-modal .custom-select-toggle.is-placeholder { 1044 color: #848484; 1045 } 1046 1047 #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder { 1048 color: #848484; 1049 opacity: 1; 1050 } 1051 1052 #qualifying-questions-modal .disclaimer-more { 1053 display: none; 1054 } 1055 1056 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more { 1057 display: inline; 1058 } 1059 1060 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis { 1061 display: none; 1062 } 1063 </style>
vendor: 119 bytes, lines 1063-1064
1063 1064 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1064<script> 1065 function toggleDisclaimerQualifyingQuestionsModal() { 1066 const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text'); 1067 const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer'); 1068 1069 if (disclaimerText.classList.contains('collapsed')) { 1070 disclaimerText.classList.remove('collapsed'); 1071 toggleButton.textContent = 'Read less'; 1072 toggleButton.setAttribute('aria-expanded', 'true'); 1073 } else { 1074 disclaimerText.classList.add('collapsed'); 1075 toggleButton.textContent = 'Read more'; 1076 toggleButton.setAttribute('aria-expanded', 'false'); 1077 } 1078 } 1079 </script>
1079 1080 <div style="max-width: 400px; width: 95%; margin: 0 auto;"> 1081 <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;"> 1082 <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;"> 1083 <span aria-hidden="true">×</span> 1084 </button> 1085 <div style="padding: 40px 30px 32px;"> 1086 <div style="text-align: left; margin-bottom: 32px;"> 1087 <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;"> 1088 Thanks, please provide more information to help serve you 1089 </h2> 1090 </div> 1091 <form id="qualifying-questions-modal-form" data-type="contact-form"> 1092 <input type="hidden" name="source" value="PROFILE_UPDATE" /> 1093 <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" /> 1094 <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" /> 1095 <label for="qualifying-questions-modal-email" style="display:none;"> 1096 Email 1097 </label> 1098 <label for="qualifying-questions-modal-triggerSource" style="display:none;"> 1099 Trigger Source 1100 </label> 1101 1102 <div style="margin-bottom: 20px;"> 1103 <label for="qualifying-questions-modal-phoneNumber" style="display:none;"> 1104 Phone Number 1105 </label> 1106 <input 1107 type="tel" 1108 id="qualifying-questions-modal-phoneNumber" 1109 name="phoneNumber" 1110 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;" 1111 pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$" 1112 required 1113 placeholder="Phone" 1114 aria-label="Phone Number" 1115 inputmode="tel" 1116 autocomplete="tel" 1117 onfocus="this.style.borderColor='black';" 1118 onblur="this.style.borderColor='#848484';" 1119 /> 1120 </div> 1121 1122 <div style="margin-bottom: 20px;"> 1123 <label for="qualifying-questions-modal-interest" style="display:none;"> 1124 Interest 1125 </label> 1126 <select 1127 id="qualifying-questions-modal-interest" 1128 name="interest" 1129 required 1130 data-label="Interest" 1131 aria-label="Interest" 1132 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;" 1133 onfocus="this.style.borderColor='black'; this.style.color='black';" 1134 onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';" 1135 > 1136 <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option> 1137 <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option> 1138 <option value="Selling" style="background: #fff; color: black;">Selling</option> 1139 <option value="Buying" style="background: #fff; color: black;">Buying</option> 1140 <option value="Renting" style="background: #fff; color: black;">Renting</option> 1141 <option value="Other" style="background: #fff; color: black;">Other</option> 1142 </select> 1143 </div> 1144 1145 <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;"> 1146 <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label> 1147 <label class='lp-tcr-content'>
1148 <span class='lp-tcr-checkbox'> 1149 <input 1150 type='checkbox' 1151 id='qualifying-questions-modal-qualifying-questions-termsAccepted' 1152 name='termsAccepted' 1153 aria-describedby='qualifying-questions-modal-disclaimer-text' 1154 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 1155 oninput="this.setCustomValidity('')" 1156 required 1157 /></span> 1158 <span class='lp-tcr-message'> 1159 <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;"> 1160 1161 I agree to be contacted by 1162 <strong>Rich Richardson</strong> 1163 via call, email, and text <span class="disclaimer-more">for real estate services. 1164 To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1165 You can also click the unsubscribe link in the emails. 1166 Message and data rates may apply. Message frequency may vary.</span> 1167 <span class="disclaimer-ellipsis">...</span> 1168 <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>. 1169 </div> 1170 <button 1171 id="qualifying-questions-modal-toggle-disclaimer" 1172 type="button" 1173 style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;" 1174 aria-expanded="false" 1175 onclick="toggleDisclaimerQualifyingQuestionsModal()" 1176 > 1177 Read more 1178 </button> 1179 </span> 1180 </label> 1181 </div> 1182 1183 <div> 1184 <button 1185 type="submit" 1186 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;" 1187 onmouseover="this.style.background='transparent'; this.style.color='black';" 1188 onmouseout="this.style.background='black'; this.style.color='white';" 1189 > 1190 Submit 1191 </button> 1192 </div> 1193 </form> 1194 </div> 1195 </div> 1196 </div> 1197 </div> 1198 1199
1199<script> 1200 (function() { 1201 var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy")); 1202 1203 if ("IntersectionObserver" in window && lazyVideos.length > 0) { 1204 var lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 1205 entries.forEach(function(video) { 1206 if (video.isIntersecting) { 1207 for (var source in video.target.children) { 1208 var videoSource = video.target.children[source]; 1209 if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") { 1210 videoSource.src = videoSource.dataset.src; 1211 } 1212 } 1213 1214 video.target.load(); 1215 video.target.classList.remove("lazy"); 1216 lazyVideoObserver.unobserve(video.target); 1217 } 1218 }); 1219 }); 1220 1221 lazyVideos.forEach(function(lazyVideo) { 1222 lazyVideoObserver.observe(lazyVideo); 1223 }); 1224 } 1225 })(); 1226 </script>
1226 1227 1228 <!-- Global site tag (gtag.js) - Google Analytics --> 1229
1229<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1229 1230 1231 <!-- Google Tag Manager --> 1232
1232<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1233 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1234 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1235 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1236 })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1236 1237 <!-- End Google Tag Manager --> 1238 1239 1240 <!-- LP Tracker (divolte.js) - LP Divolte --> 1241
1241<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1241 1242 <!-- LP Tracker (eventBus) - LP EventBus --> 1243
1243<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1243 1244 1245
1245<script> 1246 window.dataLayer = window.dataLayer || []; 1247 document.sendGoogleTagManagerEvent = function() { 1248 /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */ 1249 if (window.navigator.globalPrivacyControl) { 1250 return; 1251 } 1252 1253 dataLayer.push(arguments); 1254 } 1255 1256 document.sendGoogleTagManagerEvent('js', new Date()); 1257 document.sendGoogleTagManagerEvent('config', 'G-W6XMG1M6F4', { page: location.pathname, location: location.href }); 1258 document.sendGoogleAnalyticsEvent = function(googleEvent) { 1259 document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, { 1260 event_category: googleEvent.eventCategory, 1261 event_label: googleEvent.eventLabel, 1262 value: googleEvent.eventValue, 1263 page: googleEvent.page, 1264 location: googleEvent.location 1265 }) 1266 }; 1267 1268 document.addEventListener("DOMContentLoaded", function() { 1269 (function() { 1270 //If the page has an element with ID of auto-year-update the element will be populated with the current year. 1271 var date = new Date(); 1272 var elements = document.getElementsByClassName('auto-year-update'); 1273 var i; 1274 for (i = 0; i < elements.length; i++) { 1275 elements[i].innerText = date.getFullYear(); 1276 } 1277 })(); 1278 if (window.divolteLp) { 1279 window.divolteLp('sendLpPageView', {}); 1280 } 1281 if (window.eventBusLp) { 1282 window.eventBusLp('sendLpPageView', {}); 1283 } 1284 }); 1285 </script>
1285 1286 1287 1288
1288<script> 1289 // Function to dynamically load a script 1290 function loadScript(url, callback) { 1291 var script = document.createElement('script'); 1292 script.type = 'text/javascript'; 1293 script.src = url; 1294 script.defer = true; 1295 script.async = true; 1296 script.onload = callback; 1297 document.head.appendChild(script); 1298 } 1299 1300 // Function to dynamically load CSS file 1301 function loadCSS(url) { 1302 var link = document.createElement("link"); 1303 link.rel = "stylesheet"; 1304 link.href = url; 1305 document.head.appendChild(link); 1306 } 1307 1308 // Global methods / variables that can be accessed by element js 1309 window.luxuryPresence = { 1310 libs: { 1311 loadJs: loadScript, 1312 loadCss: loadCSS, 1313 jsLibsMap: { 1314 paroller: { 1315 jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js', 1316 isLoaded: false, 1317 }, 1318 ionRangeSlider: { 1319 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js', 1320 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css', 1321 isLoaded: false, 1322 requires: ['jquery'], 1323 }, 1324 splide: { 1325 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js', 1326 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css', 1327 isLoaded: false, 1328 }, 1329 wow: { 1330 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 1331 isLoaded: false, 1332 }, 1333 jquery: { 1334 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', 1335 isLoaded: false, 1336 }, 1337 slick: { 1338 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', 1339 isLoaded: false, 1340 requires: ['jquery'], 1341 }, 1342 libphonenumber: { 1343 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js', 1344 isLoaded: false, 1345 }, 1346 }, 1347 }, 1348 }; 1349 </script>
1349 1350
1350<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>
1350 1351
1351<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1351 1352
1352<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1352 1353
1353<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1353 1354
1354<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>
1354 1355
1355<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>
1355 1356
1356<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>
1356 1357 1358 <!-- GOOGLE TRANSLATE SCRIPT --> 1359
1359<script> 1360 function googleTranslateElementInit() { 1361 // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'` 1362 // Language codes can be taken from here https://cloud.google.com/translate/docs/languages 1363 const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt'; 1364 document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){ 1365 translate.innerText = ''; 1366 new google.translate.TranslateElement({ 1367 pageLanguage: 'en', 1368 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 1369 includedLanguages: window.customLanguages || DEFAULT_LANGUAGES, 1370 }, translate); 1371 }); 1372 } 1373 </script>
1373 1374
1374<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1374 1375
1375<script defer src="https://accounts.google.com/gsi/intermediate"></script>
1375 1376 1377 <!-- GOOGLE TRANSLATE SCRIPT END--> 1378
1378<script> 1379 1380 // UI helpers 1381 (function () { 1382 1383 function getSideMenu () { 1384 return document.querySelector('body > div.sidemenu'); 1385 } 1386 1387 function sideMenuHide (instant) { 1388 var sideMenu = getSideMenu(); 1389 if (!sideMenu || !sideMenu.classList.contains('visible')) { 1390 return; 1391 } 1392 sideMenu.classList.remove('visible'); 1393 sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } })); 1394 window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} })); 1395 } 1396 1397 function sideMenuShow () { 1398 var sideMenu = getSideMenu(); 1399 if (!sideMenu || sideMenu.classList.contains('visible')) { 1400 return; 1401 } 1402 sideMenu.classList.add('visible'); 1403 sideMenu.dispatchEvent(new Event('lpui-show')); 1404 window.dispatchEvent(new Event('lpui-sidemenu-show')); 1405 } 1406 1407 function sideMenuToggle () { 1408 var sideMenu = getSideMenu(); 1409 if (!sideMenu) { 1410 return; 1411 } 1412 var isSideMenuVisible = sideMenu.classList.contains('visible'); 1413 if (isSideMenuVisible) { 1414 sideMenuHide(); 1415 } else { 1416 sideMenuShow(); 1417 } 1418 } 1419 1420 var scrollLockRequests = {}; 1421 window.__debug_scrollLockRequests = scrollLockRequests; 1422 var hideScrollStyles = ''+ 1423 'body {'+ 1424 'overflow: hidden;' + 1425 '}'; 1426 var hideScrollId = 'hide-body-scroll-style'; 1427 1428 function scrollLock () { 1429 var style = document.createElement('style'); 1430 style.id = hideScrollId; 1431 style.textContent = hideScrollStyles; 1432 document.head.appendChild(style); 1433 window.dispatchEvent(new Event('lpui-scroll-locked')); 1434 } 1435 1436 function scrollUnlock () { 1437 document.getElementById(hideScrollId)?.remove(); 1438 window.dispatchEvent(new Event('lpui-scroll-unlocked')); 1439 } 1440 1441 function requestScrollLock (lockId) { 1442 var wasLocked = Object.keys(scrollLockRequests).length > 0; 1443 scrollLockRequests[lockId || '__anonymous_lock'] = true; 1444 if (!wasLocked) { 1445 scrollLock(); 1446 } 1447 } 1448 1449 function releaseScrollLock (lockId) { 1450 if (lockId) { 1451 delete scrollLockRequests[lockId]; 1452 if (!Object.keys(scrollLockRequests).length) { 1453 scrollUnlock(); 1454 } 1455 } else { 1456 scrollLockRequests = {}; 1457 window.__debug_scrollLockRequests = scrollLockRequests; 1458 scrollUnlock(); 1459 } 1460 } 1461 1462 function showModal (modalId, options) { 1463 var modal = document.getElementById(modalId); 1464 if (!modal) { 1465 return; 1466 } 1467 1468 if (!modal.classList.contains('visible')) { 1469 modal.classList.add('visible'); 1470 if (options && options.scrollLock) { 1471 window.lpUI.requestScrollLock(modalId); 1472 } 1473 modal.dispatchEvent(new Event('lpui-show')); 1474 window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } })); 1475 } 1476 1477 const visibleModals = document.querySelectorAll('.modal.visible'); 1478 1479 if (visibleModals.length > 1) { 1480 1481 const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => { 1482 const zIndex = window.getComputedStyle(modal).zIndex; 1483 const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0; 1484 return Math.max(maxZIndex, parsedZIndex); 1485 }, 0); 1486 1487 modal.style.zIndex = maxZIndex + 1; 1488 } 1489 1490 } 1491 1492 function _hideModal (modalEl) { 1493 if (!modalEl) { 1494 return; 1495 } 1496 if (!modalEl.classList.contains('visible')) { 1497 return; 1498 } 1499 modalEl.classList.remove('visible'); 1500 modalEl.style.zIndex = '';
1501 modalEl.dispatchEvent(new Event('lpui-hide')); 1502 var modalId = modalEl.getAttribute('id'); 1503 if (modalId) { 1504 window.lpUI.releaseScrollLock(modalId); 1505 window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } })); 1506 } 1507 } 1508 1509 function hideModal (modalId) { 1510 _hideModal(document.getElementById(modalId)); 1511 } 1512 1513 function hideClosestModal (el) { 1514 const modal = el?.closest('.modal'); 1515 if (!modal) { 1516 return; 1517 } 1518 if (modal.classList) { 1519 _hideModal(modal); 1520 return; 1521 } 1522 if (modal.length && modal[0].classList) { 1523 _hideModal(modal[0]); 1524 } 1525 } 1526 1527 window.lpUI = { 1528 sideMenuHide: sideMenuHide, 1529 sideMenuShow: sideMenuShow, 1530 sideMenuToggle: sideMenuToggle, 1531 requestScrollLock: requestScrollLock, 1532 releaseScrollLock: releaseScrollLock, 1533 showModal: showModal, 1534 hideModal: hideModal, 1535 hideClosestModal: hideClosestModal 1536 } 1537 })(); 1538 1539 var stringifyPrimitive = function(v) { 1540 switch (typeof v) { 1541 case 'string': 1542 return v; 1543 1544 case 'boolean': 1545 return v ? 'true' : 'false'; 1546 1547 case 'number': 1548 return isFinite(v) ? v : ''; 1549 1550 default: 1551 return ''; 1552 } 1553 }; 1554 1555 function objectToQuerystring(obj, sep, eq, name) { 1556 // https://github.com/Gozala/querystring/blob/master/encode.js 1557 sep = sep || '&'; 1558 eq = eq || '='; 1559 if (obj === null) { 1560 obj = undefined; 1561 } 1562 1563 if (typeof obj === 'object') { 1564 return Object.keys(obj).map(function(k) { 1565 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 1566 if (Array.isArray(obj[k])) { 1567 return obj[k].map(function(v) { 1568 return ks + encodeURIComponent(stringifyPrimitive(v)); 1569 }).join(sep); 1570 } else { 1571 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 1572 } 1573 }).filter(Boolean).join(sep); 1574 1575 } 1576 1577 if (!name) return ''; 1578 return encodeURIComponent(stringifyPrimitive(name)) + eq + 1579 encodeURIComponent(stringifyPrimitive(obj)); 1580 } 1581 1582 function getPath(url, options) { 1583 var parser = document.createElement('a'); 1584 parser.href = url || ''; 1585 var path = parser.pathname || ''; 1586 if (path[0] !== '/') { 1587 // IE does not return path starting with a slash 1588 path = '/' + path; 1589 } 1590 1591 if (options && options.queryString) { 1592 path += parser.search; 1593 } 1594 1595 return path; 1596 } 1597 1598 function getMLSAutocomplete(keyword) { 1599 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1600 var query = { 1601 kind: 'listings', 1602 query: keyword 1603 }; 1604 1605 return superagent 1606 .get(searchURL) 1607 .query(query) 1608 .then(function(res) { 1609 var data = res.body || []; 1610 // Array of listing_auto_complete documents: id, display_address, city, state, 1611 // price, sold_price, status, status_modified_at, photo_urls (array of URLs). 1612 1613 return data; 1614 }); 1615 } 1616 1617 function getMLSAutocompleteWithFilters(keyword, filters = {}) { 1618 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 1619 1620 return superagent 1621 .get(searchURL) 1622 .query({ kind: 'listings', query: keyword, ...filters }) 1623 .then(function(res) { 1624 // Same response shape as getMLSAutocomplete. 1625 return res.body || []; 1626 }); 1627 } 1628 1629 function makeMlsLink(data) { 1630 // Code Dupe from utils/googlePlace 1631 // mapping of google data type to mls data type 1632 var mapping = { 1633 neighborhood: 'neighborhood', 1634 locality: 'place', 1635 administrative_area_level_2: 'county', 1636 administrative_area_level_1: 'state', 1637 postal_code: 'postalcode', 1638 }; 1639 1640 function _filterTypes(types) { 1641 return types.filter(function(type) { return type !== 'political' }); 1642 } 1643 1644 if (!data || !Object.keys(data).length) { 1645 return '/home-search/listings'; 1646 } 1647 1648 var newData = {};
1649 _filterTypes(data.types).forEach(function(type) { 1650 if (mapping[type]) { 1651 newData.search_type = mapping[type]; 1652 } 1653 }); 1654 newData.omnibox = data.formatted_address; 1655 data.address_components.forEach(function(component) { 1656 _filterTypes(component.types).forEach(function(type) { 1657 if (mapping[type]) { 1658 newData[mapping[type]] = component.long_name; 1659 } 1660 }); 1661 }); 1662 var bounds = data.geometry.bounds; 1663 var convertedData = Object.assign(bounds, newData); 1664 1665 return '/home-search/listings?' + objectToQuerystring(convertedData); 1666 } 1667 1668 function debounce(func, wait) { 1669 let timeout; 1670 return function(...args) { 1671 const context = this; 1672 clearTimeout(timeout); 1673 timeout = setTimeout(() => func.apply(context, args), wait) 1674 } 1675 } 1676 1677 // Global methods / variables that can be accessed by element js 1678 window.luxuryPresence = { 1679 ...window.luxuryPresence, 1680 defaults: { 1681 companyId: '62dea509-9e98-4ea1-8332-c3f17e7eb5f7', 1682 apiGatewayUrl: '/api-gw', 1683 routerUrl: '/api-nv', 1684 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\
1684n }\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
1684x\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"}, 1685 propertyPlaceholderImage: {"id":"e87a15ed-6ef5-493d-827e-d54ef6df701b","alt":null,"bytes":13728,"width":1500,"format":"png","height":1500,"shared":true,"curated":false,"duration":null,"largeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/gyrjm1qqli4as1dzaifa","smallUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=960/https://media-production.lp-cdn.com/media/gyrjm1qqli4as1dzaifa","authorUrl":null,"createdAt":"2024-10-03T18:50:57.243Z","mediumUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/gyrjm1qqli4as1dzaifa","sourceUrl":null,"updatedAt":"2024-10-03T18:50:57.243Z","xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/gyrjm1qqli4as1dzaifa","__typename":"Media","altTagText":null,"authorName":null,"sourceName":"r2","xxLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/gyrjm1qqli4as1dzaifa","description":null,"displayName":"agent_team-rich-richardson","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/gyrjm1qqli4as1dzaifa","resourceType":"image","thumbnailUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=320/https://media-production.lp-cdn.com/media/gyrjm1qqli4as1dzaifa","originalFileName":"Agent_Team Rich Richardson","cloudinaryPublicId":"gyrjm1qqli4as1dzaifa"} 1686 }, 1687 objectToQuerystring: objectToQuerystring, 1688 getPath: getPath, 1689 getMLSAutocomplete: getMLSAutocomplete, 1690 getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters, 1691 makeMlsLink: makeMlsLink, 1692 debounce: debounce, 1693 }; 1694 1695 var wowOffset = 100; 1696 </script>
1696 1697
1697<script> 1698 (()=>{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));
1698if(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)];
1698let t="x"===e[2]||"X"===e[2],r=parseInt(e.slice(t?3:2,-1),t?16:10);return 0===r||r>1114111||r>=55296&&r<=57343?e:160===r?" ":String.fromCodePoint(r)}(r[0]):"&",end:r?d.lastIndex:t+1}}(e,o):function(e,t,r){let i=function(e,t){let r=null;u.lastIndex=t+1;let i=u.exec(e);for(;i;){let t=i[0];if(r)t===r&&(r=null);else if('"'===t||"'"===t)r=t;else if(">"===t)return u.lastIndex;i=u.exec(e)}return -1}(e,t);return{text:-1===i?"<":function(e,t,r,i){if(!i)return"";let s=e.slice(t,r);if(/^<br\s*\/?>$/.test(s))return" ";if(/^<\/p\s*>$/.test(s)){h.lastIndex=r;let t=h.exec(e);if(t&&"<"===t[0][0])return" "}return""}(e,t,i,r),end:-1===i?t+1:i}}(e,o,t);r+=n.text,i=n.end}return r}n=function(e,{isEqual:t}){let r=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],i=function(e,t,r){let i="en-US";if(!e)return"";if("string"==typeof e){let t=e.trim();if(/[^+\-0-9.]/.test(t))return e;if(!(e=parseFloat(t)))return""}let s="number"==typeof r?r:0,o=Number.isInteger(e)?0:s,n={minimumFractionDigits:o,maximumFractionDigits:o};return"USD"===t?`$${e.toLocaleString(i,n)}`:"CAD"===t?`$${e.toLocaleString(i,n)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(i,n)}`:"GBP"===t?`\xa3${e.toLocaleString(i,n)}`:"PERCENT"===t?`${e}%`:"number"==typeof r&&r>-1?e.toLocaleString(i,{maximumFractionDigits:r}):e.toLocaleString(i)},s=function(e){switch(e){case"DAY":return"daily";case"MONTH":return"monthly";case"WEEK":return"weekly";case"YEAR":return"yearly";case"QUARTER":return"quarterly";case"HALF_YEAR":return"semi-annually";case"NIGHTLY":return"nightly";case"SEASONAL":return"seasonally";default:return""}},o=function(e){switch(e){case"DAY":return"day";case"WEEK":return"wk";case"MONTH":return"mo";case"YEAR":return"yr";case"QUARTER":return"3 mos";case"HALF_YEAR":return"6 mos";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},n=function(e){switch(e){case"DAY":return"day";case"WEEK":return"week";case"MONTH":return"month";case"YEAR":return"year";case"QUARTER":return"quarter";case"HALF_YEAR":return"6 months";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},l=function(e,t){let r,i,a=t||{};switch(a.mode){case"short":r=o(e),i=a.frequencySeparator||"/";break;case"standard":case"std":r=n(e),i=a.frequencySeparator||"/";break;default:r=s(e),i=a.frequencySeparator||" "}return r?a.frequencyTag||a.frequencyClass?`${i}<${a.frequencyTag||"span"}${a.frequencyClass?` class="${a.frequencyClass}"`:""}>${r}</${a.frequencyTag||"span"}>`:i+r:""};return{isEmpty(e,t){let r=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?r?t.fn(this):t.inverse(this):r},ifEquals(e,r,i){return t(e,r)?i.fn(this):i.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?p(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!1):"",striptagsLineBreaks:e=>e?p(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!0):"",truncate:(e,t,r)=>e?e.length>t?"string"==typeof r?e.slice(0,t-r.length)+r:e.slice(0,t):e:"",setSubArray(e=[],t,r,i,s){s.data.root[i]=e.slice(t,r)},formatAreaUnit(e){switch(e){case"ACRE":return"Acres";case"SQUARE_METER":return"Sq.M.";case"SQUARE_YARD":return"Sq.Yd.";default:return"Sq.Ft."}},formatFrequency:s,formatFrequencyShort:o,lpFormatFrequency:(e,t)=>l(e,t&&t.hash),subArray(e,t,r,i){return e>=t&&e<r?i.fn(this):i.inverse(this)},formatPropertyStatus(e,t,r){let i="";switch(e){case"SOLD":i="Sold";break;case"FOR_SALE":i="For Sale";break;case"COMING_SOON":i="Coming Soon";break;case"INACTIVE":i="Inactive";break;case"POCKET_LISTING":i="Pocket Listing";break;case"PENDING":i="Pending";break;case"UNDER_CONTRACT":i="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":i="Active Under Contract";break;default:i=e}return("Sold"===i||"Leased"===i)&&t&&"string"==typeof r&&r&&(i+=` on ${r}`),i},formatGrade(e){switch(e){case"UNDERGRADUATE_COURSES":return"Undergrad";case"PRE_KINDERGARTEN":return"PreK";case"KINDERGARTEN":return"K";case"FIRST_GRADE":return"1st";case"SECOND_GRADE":return"2nd";case"THIRD_GRADE":return"3rd";case"FOURTH_GRADE":return"4th";case"FIFTH_GRADE":return"5th";case"SIXTH_GRADE":return"6th";case"SEVENTH_GRADE":return"7th";case"EIGHTH_GRADE":return"8th";case"NINTH_GRADE":return"9th";case"TENTH_GRADE":return"10th";case"ELEVENTH_GRADE":return"11th";case"TWELFTH_GRADE":return"12th";default:return""}},encodeURI:e=>encodeURI(e),encodeURIComponent:e=>encodeURIComponent(e),hbFormatDate(e,t){if(!e)return"";let r="current"===e?new Date:new Date(e);if(Number.isNaN(r.getTime()))return"";if("YYYY"===t||"year"===t)return`${r.getFullYear()}`;if("MM/DD/YY"===t){let e=r.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${r.getDate()}/${r.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][r.getMonth()]} ${r.getDate()}, ${r.getFullYear()}`},openHousesFormat(e,t,r){if(!e||!t)return"";let i=e=>{let t=e.getHours();t>12&&(t-=12);let r=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?r+="PM":r+="AM",r},s="",o=e,n=t;
1698r&&(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())),`
1698<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}
1698return 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
1698ontact 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
1698ourceResource,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(()=>
1698o.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=` 1699 query PropertyDisclaimers($input: PropertyDisclaimersInput!) { 1700 propertyDisclaimers(input: $input) { 1701 feedId 1702 listingId 1703 resolvedFromListing 1704 listingCardAttribution 1705 listingDetailCourtesy 1706 listingDetailFooter 1707 logo 1708 } 1709 } 1710`;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 >
1710 .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=)
1710)|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=` 1711 <div id="modal-${r.id}" class="modal visible"> 1712 <div class="modal-content"> 1713 <div class="lightbox-video"> 1714 <div class="video-player"> 1715 <div class="embed-container"> 1716 ${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>`} 1717 </div> 1718 </div> 1719 </div> 1720 </div> 1721 <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button> 1722 </div> 1723 `;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
1723=>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");
1723let 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
1723URIComponent(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=` 1724 <button class="lp-lightbox__close" aria-label="close modal"></button> 1725 <div class="lp-lightbox__content"> 1726 <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery"> 1727 <div class="splide__arrows"> 1728 <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button> 1729 <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button> 1730 </div> 1731 <div class="splide__track"> 1732 <ul class="splide__list"></ul> 1733 </div> 1734 </div> 1735 </div> 1736 `,"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
1736h(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=` 1737 <button class="lp-lightbox__close" aria-label="close modal"></button> 1738 <div class="lp-lightbox__content"> 1739 <div class="lp-lightbox__carousel"></div> 1740 </div> 1741 `,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"}
1741)),(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"];
1741return 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=` 1742 query { 1743 validSession { 1744 success 1745 } 1746 } 1747 `;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","
1747spaceTypeIds","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];
1747if("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})}})(); 1748//# sourceMappingURL=lp-sdk.js.map 1749 1750 </script>
1750 1751 1752
1752<script> 1753 var lpGlobalInitialized = false; 1754 1755 function lpGlobalInit () { 1756 if (lpGlobalInitialized) { 1757 return; 1758 } 1759 lpGlobalInitialized = true; 1760 // Initialize wow animation plugin only according to turbolinks 1761 var wow; 1762 if (window.WOW) { 1763 wow = new WOW({ 1764 animateClass: 'animated', 1765 offset: wowOffset, 1766 live: false, 1767 callback: function(box) {} 1768 }); 1769 } 1770 // Initialize handlebar helpers only once 1771 function handlebarsInit() { 1772 if (!window.Handlebars) { 1773 return; 1774 } 1775 HandlebarsIntl.registerWith(Handlebars); 1776 Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars)); 1777 } 1778 1779 handlebarsInit(); 1780 1781 var modalContentUrl = "/modals.html"; 1782 const modalsContainer = document.getElementById('modals'); 1783 if (modalsContainer) { 1784 fetch(modalContentUrl).then(function(res) { 1785 if (!res.ok) { 1786 throw new Error(`HTTP error! Status: ${res.status}`); 1787 } 1788 return res.text(); 1789 }).then(function(resultText) { 1790 modalsContainer.innerHTML = resultText; 1791 1792 // now we need to execute all script elements 1793 Array.from(modalsContainer.getElementsByTagName('script')).forEach(function (s) { 1794 const script = document.createElement("script"); 1795 script.text = s.innerHTML; 1796 Array.from(s.attributes).forEach(function (a) { 1797 script.setAttribute(a.name, a.value); 1798 }) 1799 s.parentNode.replaceChild(script, s); 1800 }); 1801 1802 try { 1803 window.luxuryPresence.modals.initialize(window.luxuryPresence._modalIncludes); 1804 window.luxuryPresence.contactForms.initialize({ selector: '#modals' }); 1805 window.luxuryPresence.validation.initialize({ selector: '#modals' }); 1806 window.luxuryPresence.oauth.initialize({ 1807 googleSignOnEnabled: true, 1808 iframe: false }); 1809 } catch (e) { 1810 console.log(e); 1811 } 1812 document.querySelectorAll('.modals > .modal .close').forEach(closeModalBtn => { 1813 closeModalBtn.addEventListener('click', function() { 1814 window.lpUI.hideClosestModal(closeModalBtn); 1815 }); 1816 }); 1817 }).catch((e) => console.log(e)); 1818 } 1819 /* Initialize Luxury Presence SDK */ 1820 try { 1821 window.luxuryPresence.config.setCompany("62dea509-9e98-4ea1-8332-c3f17e7eb5f7", {}); 1822 window.luxuryPresence.config.setWebsite("4d649273-d03b-4e27-a6a8-89e21a8a5908", { 1823 myhomeDashboardEnabled: true, 1824 mlsEnabled: true, 1825 hstValuationRedirectEnabled: true, 1826 hvStepTwoCaptureEnabled: false 1827 }); 1828 const url = new URL(window.location.href); 1829 const shareId = url.searchParams.get('shareId'); 1830 window.luxuryPresence.config.setPage("74dd79b5-69a9-4e03-9509-da15134dd98e", { 1831 sourceResource: "", 1832 pageElementId: "", 1833 pageQueryVariables: {}, 1834 shareId: "", 1835 }); 1836 window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {}); 1837 window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {}); 1838 window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {}); 1839 window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {}); 1840 window.luxuryPresence.config.setEventBus({ 1841 enabled: true, 1842 apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr", 1843 url: "https://p.luxurypresence.com", 1844 }); 1845 window.luxuryPresence.config.setTemplateId("0c2b9641-6f2a-40f2-a2e0-dabc022eb278", {}); 1846 window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {}); 1847 window.luxuryPresence.buttons.initialize({}); 1848 window.luxuryPresence.consent.initialize({ provider: 'lp-consent' }); 1849 window.luxuryPresence.contactForms.initialize({}); 1850 window.luxuryPresence.validation.initialize({}); 1851 window.luxuryPresence.expandSliders.initialize({}); 1852 window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: true, iframe: false }); 1853 window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true }); 1854 /* Optional: cached pages / older SDKs may not carry this controller */ 1855 window.luxuryPresence.currencyConversion?.initialize(); 1856 } catch (e) { 1857 console.log(e); 1858 } 1859 1860 /* Inject Section Specific Javascript */ 1861 try { 1862(function init(sectionDomId) { 1863 const disclaimerLabel = document.querySelector('#' + sectionDomId + ' .lp-tcr-content'); 1864 if (disclaimerLabel) { 1865 const input = disclaimerLabel.querySelector('input'); 1866 if (input) { 1867 input.setAttribute('id', `${sectionDomId}-termsAccepted`); 1868 input.value = 'true'; 1869 const label = document.createElement('label'); 1870 label.setAttribute('for', `${sectionDomId}-termsAccepted`); 1871 label.classList.add('lp-visually-hidden'); 1872 label.textContent = 'Opt in/Disclaimer Consent:'; 1873 disclaimerLabel.prepend(label); 1874 } 1875 } 1876 function setHttp(link) { 1877 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 1878 link = 'https://' + link; 1879 } 1880 return link; 1881 } 1882 const socialLinks = document.querySelectorAll('#' + sectionDomId + ' .socials__link, #' + sectionDomId + ' .lp-socials__link'); 1883 socialLinks.forEach(linkElement => { 1884 const href = linkElement.getAttribute('href'); 1885 if (href) { 1886 linkElement.setAttribute('href', setHttp(href)); 1887 } 1888 }); 1889 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 1890 if (redirectLink.length) { 1891 const rawHref = setHttp(redirectLink.attr('href')); 1892 let formEvent; 1893 if (rawHref) { 1894 formEvent = redirectLink.data('redirect') ? 'formsubmitted' : 'reset'; 1895 $('#' + sectionDomId + ' .contact-form').find('form').on(formEvent, function () { 1896 redirectLink.attr('href', rawHref); 1897 redirectLink[0].click(); 1898 }); 1899 } 1900 } 1901})('modal-global-contact-us'); 1902} catch(e) { 1903console.log(e); 1904} 1905 1906 try { 1907(function init(sectionDomId) { 1908 const $section = $('#' + sectionDomId); 1909 const $hamburger = $section.find('.hamburger-component'); 1910 function onSideMenuShow() { 1911 if (!$hamburger.hasClass('active')) { 1912 $hamburger.addClass('active'); 1913 } 1914 } 1915 function onSideMenuHide() { 1916 $hamburger.removeClass('active'); 1917 } 1918 const $window = $(window); 1919 $window.on('lpui-sidemenu-show.lpui-auto-clean', onSideMenuShow); 1920 $window.on('lpui-sidemenu-hide.lpui-auto-clean', onSideMenuHide); 1921 const $subContainers = $section.find('.navigation__item.sub-nav-container'); 1922 $subContainers.hover(function () { 1923 $(this).find('.sub-nav').addClass('visible'); 1924 }, function () { 1925 $(this).find('.sub-nav').removeClass('visible'); 1926 }); 1927 $window.on('click.lpui-auto-clean', function () { 1928 $('.sub-nav-container.visible-dropdown').removeClass('visible-dropdown'); 1929 }); 1930 let fixedWidth = 0; 1931 const rightPad = 20; 1932 function fixSubsPosition() { 1933 const wWidth = window.innerWidth; 1934 if (innerWidth === fixedWidth) { 1935 return; 1936 } 1937 fixedWidth = wWidth; 1938 $subContainers.each(function () { 1939 const $sub = $(this).find('.sub-nav'); 1940 $sub[0].style.right = '';
1941 const sRect = $sub[0].getBoundingClientRect(); 1942 const sRight = sRect.left + sRect.width; 1943 if (sRight > wWidth - rightPad) { 1944 const parentRect = $sub[0].offsetParent.getBoundingClientRect(); 1945 const parentRight = parentRect.left + parentRect.width; 1946 $sub[0].style.right = `${parentRight - wWidth + rightPad}px`; 1947 } 1948 }); 1949 } 1950 var debouncer; 1951 $window.on('resize.lpui-auto-clean', function () { 1952 clearTimeout(debouncer); 1953 debouncer = setTimeout(fixSubsPosition, 500); 1954 }); 1955 fixSubsPosition(); 1956 if ($('.property-intro').length || $('.property-intro-2').length) { 1957 $('nav').addClass('dark-opening'); 1958 $("#global-navbar").css({ 1959 "background-color": "rgb(26, 26, 26)", 1960 "color": "rgb(255, 255, 255)" 1961 }); 1962 } 1963 function initAutoTruncateMenu() { 1964 const $navbar = $section.find('.navbar'); 1965 const $navList = $section.find('.navigation > ul'); 1966 if (!$navbar.length || !$navList.length) { 1967 return; 1968 } 1969 const $logo = $section.find('.logo'); 1970 const $buttonsWrapper = $section.find('.buttons-wrapper'); 1971 const $allItems = $navList.children('.navigation__item'); 1972 const $phoneItem = $allItems.filter(function () { 1973 return $(this).find('a[href^="tel:"]').length > 0; 1974 }); 1975 const $menuItems = $allItems.not($phoneItem); 1976 if (!$menuItems.length) { 1977 return; 1978 } 1979 const buffer = 8; 1980 function measureFixedWidth() { 1981 let width = buffer; 1982 if ($logo.length) { 1983 width += $logo.outerWidth(true) || 0; 1984 } 1985 if ($buttonsWrapper.length) { 1986 width += $buttonsWrapper.outerWidth(true) || 0; 1987 } 1988 if ($phoneItem.length) { 1989 width += $phoneItem.outerWidth(true) || 0; 1990 } 1991 return width; 1992 } 1993 function truncateMenu() { 1994 if (!$navList.is(':visible')) { 1995 return; 1996 } 1997 $menuItems.css('display', ''); 1998 const availableWidth = $navbar[0].getBoundingClientRect().width - measureFixedWidth(); 1999 let widthSoFar = 0; 2000 let overflowed = false; 2001 $menuItems.each(function () { 2002 const $item = $(this); 2003 if (overflowed) { 2004 $item.css('display', 'none'); 2005 return; 2006 } 2007 widthSoFar += $item.outerWidth(true); 2008 if (widthSoFar > availableWidth) { 2009 $item.css('display', 'none'); 2010 overflowed = true; 2011 } 2012 }); 2013 } 2014 let truncateFrame; 2015 function scheduleTruncate() { 2016 if (truncateFrame) { 2017 return; 2018 } 2019 truncateFrame = window.requestAnimationFrame(function () { 2020 truncateFrame = null; 2021 truncateMenu(); 2022 }); 2023 } 2024 scheduleTruncate(); 2025 if (window.ResizeObserver) { 2026 const resizeObserver = new ResizeObserver(scheduleTruncate); 2027 resizeObserver.observe($navbar[0]); 2028 } else { 2029 $(window).on('resize.lpui-auto-truncate', scheduleTruncate); 2030 } 2031 $section.find('img').on('load.lpui-auto-truncate', scheduleTruncate); 2032 $(window).on('load.lpui-auto-truncate', scheduleTruncate); 2033 if (document.fonts && document.fonts.ready) { 2034 document.fonts.ready.then(scheduleTruncate); 2035 } 2036 } 2037 initAutoTruncateMenu(); 2038})('global-navbar'); 2039} catch(e) { 2040console.log(e); 2041} 2042 try { 2043(function init(sectionDomId, options) { 2044 var elementSelector = options.elementSelector || 'nav'; 2045 var element = document.querySelector(elementSelector); 2046 var sections = document.querySelectorAll('body > section'); 2047 var subNavContainers = element.querySelectorAll('.sub-nav'); 2048 var initialBackgroundColor = options.initialBackgroundColor || element.style.backgroundColor; 2049 var backgroundColorScroll = options.backgroundColorScroll || '#191919'; 2050 var fontColor = options.fontColor || '#fff'; 2051 var fontColorScroll = options.fontColorScroll || '#000'; 2052 var didScroll = false; 2053 var lastScrollTop = 0; 2054 var delta = 5; 2055 2056 // eslint-disable-next-line sonarjs/no-collapsible-if 2057 if (wow) { 2058 // Wowjs might not trigger for position fixed elements 2059 if (window.scrollY > 0) { 2060 element.querySelectorAll('.wow').forEach(el => wow.show(el)); 2061 } 2062 } 2063 function adjustNavPinState() { 2064 // Remove 'visible' class from all subNavContainers 2065 for (let i = 0; i < subNavContainers.length; i++) { 2066 subNavContainers[i].classList.remove('visible'); 2067 } 2068 if (window.scrollY > 0) { 2069 element.style.backgroundColor = backgroundColorScroll; 2070 element.style.color = fontColorScroll; 2071 element.classList.add('scroll'); 2072 } else {
2073 element.style.backgroundColor = initialBackgroundColor; 2074 element.style.color = fontColor; 2075 element.classList.remove('scroll'); 2076 } 2077 } 2078 adjustNavPinState(); 2079 function onScroll() { 2080 didScroll = true; 2081 } 2082 window.addEventListener('scroll', onScroll); 2083 2084 // eslint-disable-next-line 2085 var debounceInterval = setInterval(() => { 2086 if (didScroll) { 2087 // eslint-disable-next-line 2088 hasScrolled(); 2089 didScroll = false; 2090 } 2091 }, 250); 2092 function hasScrolled() { 2093 adjustNavPinState(); 2094 // eslint-disable-next-line 2095 var navbarHeight = element.offsetHeight; 2096 // eslint-disable-next-line 2097 var st = window.scrollY; 2098 2099 // Make sure they scroll more than delta 2100 if (Math.abs(lastScrollTop - st) <= delta) { 2101 return; 2102 } 2103 if (st > lastScrollTop && st > navbarHeight) { 2104 // Scroll Down 2105 element.style.transform = `translateY(-${navbarHeight}px) scaleY(0)`; 2106 document.documentElement.style.setProperty('--global-header-height', '0px'); 2107 2108 // Some sections "follow" the navbar with class sticky (i.e. Producer search) 2109 sections.forEach(section => { 2110 if (section.classList.contains('sticky')) { 2111 section.style.top = '0px'; 2112 } 2113 }); 2114 } else { 2115 // Scroll Up 2116 // eslint-disable-next-line 2117 if (st + window.innerHeight < document.documentElement.scrollHeight) { 2118 element.style.transform = `translateY(0) scaleY(1)`; 2119 document.documentElement.style.setProperty('--global-header-height', `${navbarHeight}px`); 2120 sections.forEach(section => { 2121 if (section.classList.contains('sticky')) { 2122 section.style.top = `${navbarHeight}px`; 2123 } 2124 }); 2125 } 2126 } 2127 lastScrollTop = st; 2128 } 2129})('NAVBAR', JSON.parse("{\"fontColor\":\"#fff\",\"elementSelector\":\"nav\",\"fontColorScroll\":\"#fff\",\"initialFontColor\":\"#fff\",\"backgroundColorScroll\":\"#1a1a1a\",\"initialBackgroundColor\":\"rgba(0,0,0,0)\"}")); 2130} catch(e) { 2131console.log(e); 2132} 2133 try { 2134(function init(sectionDomId) { 2135 var sidemenu = $('#' + sectionDomId); 2136 sidemenu.on('lpui-sidemenu-show.lpui-auto-clean', function () { 2137 window.lpUI.requestScrollLock(sectionDomId); 2138 }); 2139 $(window).on('lpui-sidemenu-hide.lpui-auto-clean', function () { 2140 window.lpUI.releaseScrollLock(sectionDomId); 2141 }); 2142 $(window).click(function (e) { 2143 let targetContactForm = $(e.target).closest('#modal-global-contact-us').length; 2144 let targetSideMenu = $(e.target).closest('.sidemenu').length; 2145 let targetContactItem = $(e.target).closest('[data-type="CONTACT_US"]').length; 2146 let targetHamburger = $(e.target).closest('.hamburger-component').length; 2147 if (!(targetContactForm || targetSideMenu || targetContactItem || targetHamburger)) { 2148 $('body').removeClass('locked'); 2149 $('.hamburger').removeClass('active'); 2150 $('.sidemenu').removeClass('visible'); 2151 $('#modal-global-contact-us').removeClass('visible'); 2152 } 2153 }); 2154})('global-sidemenu'); 2155} catch(e) { 2156console.log(e); 2157} 2158 2159 try { 2160(function init(footerId) { 2161 var textContent = $(".text_content_wrap p").text().trim().length; 2162 const socialLinks = $(`#${footerId} .lp-socials__link`); 2163 if (textContent < 1) { 2164 $(".text_content_wrap").remove(); 2165 $(".second_text_footer").css({ 2166 'margin-bottom': 0 2167 }); 2168 } 2169 if (socialLinks.length > 0) { 2170 socialLinks.attr('data-wow-offset', '10'); 2171 } 2172 if ($(window).width() > 1280) { 2173 let footer = document.querySelector("#" + footerId); 2174 let copyrightElem = footer.querySelector(".copy_zone"); 2175 if (copyrightElem) { 2176 copyrightElem.style.whiteSpace = "nowrap"; 2177 let nowrapElemWidth = copyrightElem.clientWidth; 2178 copyrightElem.style.whiteSpace = ""; 2179 let normalElemWidth = copyrightElem.clientWidth; 2180 if (nowrapElemWidth > normalElemWidth) { 2181 footer.querySelector(".form-col--socials").classList.add("form-col--xl-auto"); 2182 } 2183 } 2184 } 2185 const form = $("#" + footerId).find("form"); 2186 const redirectLink = $('#' + footerId + ' .redirect-link'); 2187 form.on("reset", function () { 2188 redirectPage(redirectLink); 2189 }); 2190 function redirectPage(link) { 2191 if (link.length) { 2192 const rawHref = link.attr('href'); 2193 link.attr('href', setHttp(rawHref)); 2194 link[0].click(); 2195 } 2196 } 2197 function setHttp(link) { 2198 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2199 link = 'http://' + link; 2200 } 2201 return link; 2202 } 2203})('global-footer'); 2204} catch(e) { 2205console.log(e); 2206} 2207 2208 try { 2209(function init(sectionDomId) { 2210 var _section = $('#' + sectionDomId); 2211 var _footer = document.getElementById('global-footer'); 2212 const redirectLink = _section.find('.js-redirect-link'); 2213 function setHttp(link) { 2214 if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) { 2215 link = 'https://' + link; 2216 } 2217 return link; 2218 } 2219 function redirectPage(link) { 2220 if (link.length) { 2221 window.location.href = setHttp(link.attr('href')); 2222 } 2223 } 2224 const emailInput = _section.find('.js-email-input'); 2225 const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/; 2226 emailInput.on('input', function () { 2227 if (emailRegex.test(this.value)) { 2228 this.setCustomValidity(''); 2229 } else { 2230 this.setCustomValidity('Please enter a valid email address.'); 2231 } 2232 this.reportValidity(); 2233 }); 2234 _section.find('input[name="name"]').on("keyup", function () { 2235 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 2236 this.setCustomValidity("Please input your first name and last name."); 2237 } else { 2238 this.setCustomValidity(""); 2239 } 2240 }); 2241 _section.find('form').on("reset", function () { 2242 $(this).addClass("show-success"); 2243 redirectPage(redirectLink); 2244 }); 2245 $(window).scroll(function () { 2246 if ($(this).scrollTop() >= 150) _section.find('.btn-holder').addClass('visible');else _section.find('.btn-holder').removeClass('visible'); 2247 }); 2248 _section.find('.close-btn, .connect-btn').click(function () { 2249 _section.find('.pop-up').toggle(); 2250 _section.find('.btn-holder').toggle(); 2251 }); 2252 if (!_footer) return; 2253 const observer = new IntersectionObserver(entries => {
2254 entries.forEach(entry => { 2255 if (entry.isIntersecting) _section.hide();else _section.show(); 2256 }); 2257 }, { 2258 threshold: 0.1 2259 }); 2260 observer.observe(_footer); 2261 function selectToDropdown(selectItem) { 2262 let customDropdown = ` 2263 <div class="custom-select" role="presentation"> 2264 <button class="custom-select-toggle is-placeholder" type="button" aria-haspopup="true" aria-expanded="false"></button> 2265 <div class="custom-select-menu" style="display: none;max-height: none;"> 2266 <div class="custom-select-content"> 2267 </div> 2268 </div> 2269 </div>`; 2270 $(customDropdown).insertAfter(selectItem); 2271 let $dropdown = $($(selectItem).next()); 2272 let $dropdownToggle = $dropdown.find(".custom-select-toggle"); 2273 let $dropdownMenu = $dropdown.find(".custom-select-menu"); 2274 let $dropdownContent = $dropdown.find(".custom-select-content"); 2275 $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select"); 2276 $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom"); 2277 $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id")); 2278 appendOptionButtons(selectItem, $dropdownContent); 2279 $(selectItem).removeClass().addClass("sr-only"); 2280 var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text(); 2281 $dropdownToggle.html(toggleText); 2282 $dropdown.on("click", ".custom-select-item", function (e) { 2283 if ($(this).hasClass("is-disabled")) return; 2284 let elementNumber = $(this).index(); 2285 let $originalSelect = $(this).closest(".custom-select").siblings("select"); 2286 let $linkedOption = $originalSelect.find("option").eq(elementNumber); 2287 if (!$linkedOption.prop("selected")) { 2288 $linkedOption.prop("selected", true); 2289 $originalSelect.change(); 2290 $(this).addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected"); 2291 $dropdownToggle.html($(this).html()); 2292 closeSelectMenu($(this).closest(".custom-select-menu")); 2293 } 2294 $dropdownToggle.removeClass("is-placeholder"); 2295 }); 2296 function convertOptionToButton(option) { 2297 var optionText = $(option).text(); 2298 var optionValue = $(option).attr("value") || $(option).text(); 2299 var optionIsDisabled = $(option).prop("disabled"); 2300 var outputButton = `<button value="${optionValue}" class="custom-select-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`; 2301 return outputButton; 2302 } 2303 function appendOptionButtons(selectItem, appendTarget) { 2304 $(selectItem).find("option").each(function () { 2305 let currentButton = convertOptionToButton(this); 2306 $(appendTarget).append(currentButton); 2307 }); 2308 } 2309 function showSelectMenu(selectMenu) { 2310 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2311 $(customSelect).addClass("open"); 2312 $(selectMenu).slideDown(); 2313 } 2314 function closeSelectMenu(selectMenu) { 2315 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2316 $(customSelect).removeClass("open"); 2317 $(selectMenu).slideUp(); 2318 } 2319 $dropdown.on("click", ".custom-select-toggle", function (e) { 2320 var $customSelect = $(this).closest(".custom-select"); 2321 var selectMenu = $customSelect.find(".custom-select-menu")[0]; 2322 if ($customSelect.hasClass("open")) { 2323 closeSelectMenu(selectMenu); 2324 } else { 2325 showSelectMenu(selectMenu); 2326 } 2327 }); 2328 $(document).on("click", function (e) { 2329 if ($(e.target).closest(".custom-select").length < 1 && $(".custom-select").hasClass("open")) { 2330 $(".custom-select.open").each(function () { 2331 var selectMenu = $(this).find(".custom-select-menu")[0]; 2332 closeSelectMenu(selectMenu); 2333 }); 2334 } 2335 }); 2336 } 2337 $(".pop-up select[name='interest']").each(function () { 2338 selectToDropdown(this); 2339 }); 2340})('global-mobile-contact'); 2341} catch(e) { 2342console.log(e); 2343} 2344 2345 try { 2346(function init(sectionDomId, options) { 2347 let section = null; 2348 switch (sectionDomId) { 2349 case 'NAVBAR': 2350 section = document.querySelector('body > nav, #global-navbar'); 2351 break; 2352 case 'FOOTER': 2353 section = document.querySelector('body > footer, #global-footer'); 2354 break; 2355 case 'SIDEMENU': 2356 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 2357 break; 2358 case 'CONTACT':
2359 section = document.querySelector('#modal-global-contact-us'); 2360 break; 2361 case 'MOBILE_CONTACT': 2362 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 2363 break; 2364 case 'SUBSCRIBE': 2365 // Subscribe Not Implemented 2366 section = null; 2367 break; 2368 case 'ACCOUNT': 2369 // Account Not Implemented 2370 section = null; 2371 break; 2372 default: 2373 section = document.querySelector('#' + sectionDomId); 2374 } 2375 if (!section) { 2376 return; 2377 } 2378 2379 // Where content / items are rendered 2380 const dataContainer = section.querySelector('.data-container'); 2381 if (!dataContainer) { 2382 // no place to render items = no need to query server or do anything else 2383 return; 2384 } 2385 let variables = options.variables || {}; 2386 2387 // Some variables in options may not have been injected - remove 2388 Object.keys(variables).forEach(function (variableName) { 2389 if (typeof variables[variableName] === 'string' && variables[variableName].match(/^{{.*}}$/)) { 2390 delete variables[variableName]; 2391 } 2392 }); 2393 2394 // Merge page query variables 2395 if (options.usePageResource) { 2396 variables = { 2397 ...variables, 2398 ...window.luxuryPresence.config.pageMeta.pageQueryVariables[options.resource] 2399 }; 2400 } 2401 2402 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Callers 2403 // resolve the flag â fetchData reads the section stamp, aux fetches read 2404 // their own resource's stamp (auxUsesRouter). 2405 function apiUrl(useRouter) { 2406 return options.url || (useRouter ? window.luxuryPresence.defaults.routerUrl : window.luxuryPresence.defaults.apiGatewayUrl); 2407 } 2408 2409 // ROUTER-CLEANUP: aux resources roll out on their own flag, not the section's 2410 // (options.routerApiAux is stamped per aux resource server-side). 2411 function auxUsesRouter(resource) { 2412 return !!(options.routerApiAux && options.routerApiAux[resource]); 2413 } 2414 2415 // Pagination Executes on a Numbered Pagination Container 2416 // Or via a load more button 2417 let mode = 'BUTTONLESS_PAGINATION'; 2418 const container = section.querySelector('.pagination-container');
2419 const loadMoreButton = section.querySelector(options?.loadMoreSelector); 2420 if (container) { 2421 mode = 'NUMBERED_PAGINATION'; 2422 } 2423 if (loadMoreButton) { 2424 mode = 'LOAD_MORE_BUTTON'; 2425 } 2426 let searchContainer = section.querySelector('.search-container'); 2427 const hidePaginationOnFirstPage = options.hidePaginationOnFirstPage || false; 2428 const eventPrefix = '__pagination-'; 2429 const searchFormParams = options.searchFormParams || (options.resource === 'properties' ? [{ 2430 param: 'neighborhoodId', 2431 urlKey: 'neighborhood' 2432 }, { 2433 param: 'search', 2434 urlKey: 'search' 2435 }, { 2436 param: 'salesPriceGTE', 2437 urlKey: 'pricemin', 2438 formKey: 'priceMin', 2439 type: 'int' 2440 }, { 2441 param: 'salesPriceLTE', 2442 urlKey: 'pricemax', 2443 formKey: 'priceMax', 2444 type: 'int' 2445 }, { 2446 param: 'livingSpaceSizeGTE', 2447 urlKey: 'areamin', 2448 formKey: 'areaMin', 2449 type: 'int' 2450 }, { 2451 param: 'livingSpaceSizeLTE', 2452 urlKey: 'areamax', 2453 formKey: 'areaMax', 2454 type: 'int' 2455 }] : []); 2456 2457 // Total entries - initialized in first render 2458 let totalNumber = 0; 2459 const DefaultSearchParams = { 2460 page: 1 2461 }; 2462 searchFormParams.forEach(function (formParam) { 2463 DefaultSearchParams[formParam.formKey || formParam.param] = null; 2464 }); 2465 let searchParams = { 2466 ...DefaultSearchParams 2467 }; 2468 const offset = options.variables?.offset || 0; 2469 let scrollTarget = options.scrollTargetSelector ? section.querySelector(options.scrollTargetSelector) || section : section; 2470 let scrollOffset = (parseInt(options.scrollOffset, 10) || 0) ?? 100; 2471 2472 // entries of per page 2473 // when query variables for a given section would't be filled options.pageSize can store 2474 // template string, ex: "{{variables.limit}}", below code handles that case and set 9 as a default value 2475 let pageSize = parseInt(options.pageSize, 10) || 9; 2476 2477 // Adding mobile pageRange support 2478 var NARROW_BREAKPOINT = 600; 2479 var mobileBreakpoint = options.mobileBreakpoint > 0 ? options.mobileBreakpoint : NARROW_BREAKPOINT; 2480 var paginationMql = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`); 2481 2482 // Page range (pages on both sides of the current page) 2483 var mobilePageRange = options.mobilePageRange > 0 ? options.mobilePageRange : 0; 2484 var desktopPageRange = options.pageRange >= 0 ? options.pageRange : 2; 2485 var pageRange = paginationMql.matches ? mobilePageRange : desktopPageRange; 2486 2487 // Whether to display the 'Previous' button 2488 var showPrevious = true; 2489 2490 // Whether to display the 'Next' button 2491 var showNext = true; 2492 2493 // Whether to display the page buttons 2494 var showPageNumbers = true; 2495 2496 // 'Previous' text 2497 var prevText = options.prevText || '«'; 2498 2499 // 'Next' text 2500 var nextText = options.nextText || '»'; 2501 2502 // Ellipsis text 2503 var ellipsisText = '…'; 2504 var classPrefix = 'paginationjs'; 2505 2506 // Default active class 2507 var activeClassName = 'active'; 2508 2509 // Default disable class 2510 var disableClassName = 'disabled'; 2511 2512 // Pagination element's position in the container 2513 var position = 'bottom'; 2514 2515 // Whether to trigger pagination at initialization 2516 var triggerPagingOnInit = !options.skipInitialLoad; 2517 var showFirstOnEllipsisShow = true; 2518 var showLastOnEllipsisShow = true; 2519 2520 // Instantiated in init() 2521 var el = null; 2522 2523 // Controls scrollTop logic 2524 var firstRender = true; 2525 var renderBySearch = false; 2526 var disabled = false; 2527 2528 // Pagination script class selector 2529 var paginationScriptSelector = options.paginationPartialName ? `.${options.paginationPartialName}` : '.pagination-script'; 2530 2531 // Property Specific Image Override if No Image 2532 var propertyPlaceholderImage = window.luxuryPresence.defaults.propertyPlaceholderImage; 2533 2534 // Construct template 2535 var templateHTML = section.querySelector(`script${paginationScriptSelector}`)?.innerHTML || ''; 2536 var template = Handlebars.compile(templateHTML); 2537 2538 // Initialize 2539 init(); 2540 function init() { 2541 Object.assign(searchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 2542 2543 // Append/prepend pagination element to the pagination container 2544 if (mode === 'NUMBERED_PAGINATION') { 2545 el = document.createElement('div'); 2546 el.className = 'paginationjs';
2547 container[position === 'bottom' ? 'append' : 'prepend'](el); 2548 } 2549 if (searchContainer) { 2550 initSearchContainer({ 2551 fetchNeighborhoods: searchContainer.dataset.fetchNeighborhoods === 'true', 2552 fetchPostCategories: searchContainer.dataset.fetchPostCategories === 'true', 2553 fetchOffices: searchContainer.dataset.fetchOffices === 'true', 2554 fetchRentalRates: searchContainer.dataset.fetchRentalRates === 'true' 2555 }, function () { 2556 syncSearchFormState(searchParams); 2557 }); 2558 } 2559 2560 // Bind events 2561 observer(); 2562 } 2563 function syncSearchFormState(params) { 2564 searchContainer.dispatchEvent(new CustomEvent('sync', { 2565 detail: params 2566 })); 2567 } 2568 function initSearchContainer(options, done) { 2569 var promises = []; 2570 if (options.fetchNeighborhoods) { 2571 promises.push(fetchAllNeighborhoods(function (neighborhoods) { 2572 searchContainer.dispatchEvent(new CustomEvent('neighborhoods-data', { 2573 detail: { 2574 data: neighborhoods.map(function (item) { 2575 return { 2576 value: item.id, 2577 label: item.name 2578 }; 2579 }) 2580 } 2581 })); 2582 })); 2583 } 2584 if (options.fetchPostCategories) { 2585 promises.push(fetchPostCategories(function (categories) { 2586 searchContainer.dispatchEvent(new CustomEvent('post-categories-data', { 2587 detail: { 2588 data: categories 2589 } 2590 })); 2591 })); 2592 } 2593 if (options.fetchOffices) { 2594 promises.push(fetchOffices(function (offices) { 2595 searchContainer.dispatchEvent(new CustomEvent('offices-data', { 2596 detail: { 2597 data: offices 2598 } 2599 })); 2600 })); 2601 } 2602 if (options.fetchRentalRates) { 2603 promises.push(fetchAllRentalRates(function (rentalRates) { 2604 searchContainer.dispatchEvent(new CustomEvent('rental-rates-data', { 2605 detail: { 2606 data: rentalRates 2607 } 2608 })); 2609 })); 2610 } 2611 if (promises.length > 0) { 2612 Promise.all(promises).then(function () { 2613 done(); 2614 }); 2615 } else { 2616 // element's custom code is not executed yet, so we're scheduling callback to after element's code 2617 setTimeout(done); 2618 } 2619 } 2620 function fetchAllNeighborhoods(done) { 2621 var useRouter = auxUsesRouter('neighborhoods'); 2622 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Same 2623 // args on both APIs (the federated neighborhoods field accepts 2624 // withProperties/withBlogPosts); only the selection set differs. 2625 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') + '}}'; 2626 var payload = {}; 2627 payload.offset = 0; 2628 payload.limit = 100; 2629 payload.companyId = variables.companyId; 2630 if (options.resource === 'properties') { 2631 payload.withProperties = { 2632 active: true 2633 }; 2634 ['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) { 2635 if (variables[field] !== undefined && variables[field] !== null) { 2636 payload.withProperties[field] = variables[field]; 2637 } 2638 }); 2639 } 2640 if (options.resource === 'posts') { 2641 payload.withBlogPosts = { 2642 active: true 2643 }; 2644 ['search', 'postStatusId', 'featured', 'categoryId', 'categoryIds', 'neighborhoodId', 'slug'].forEach(function (field) { 2645 if (variables[field] !== undefined && variables[field] !== null) { 2646 payload.withBlogPosts[field] = variables[field]; 2647 } 2648 }); 2649 } 2650 2651 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2652 if (useRouter) { 2653 payload = window.luxuryPresence.routerApi.transformVariables('neighborhoods', payload); 2654 } 2655 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2656 query: gqlQuery, 2657 variables: payload 2658 }).then(function (res) { 2659 var value = res.body.data && res.body.data.neighborhoods || {}; 2660 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2661 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2662 done(items, items.length); 2663 }); 2664 } 2665 function fetchPostCategories(done) { 2666 var featured = options.resource === 'posts' && !!variables.featured; 2667 var useRouter = auxUsesRouter('postCategories'); 2668 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 2669 // selection set differs ({ items {...} } on the router). 2670 var selection = 'id, name, publishedCount, featuredPublishedCount'; 2671 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) + '}}'; 2672 var payload = {}; 2673 payload.offset = 0; 2674 payload.limit = 100; 2675 payload.companyId = variables.companyId; 2676 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2677 query: gqlQuery, 2678 variables: payload 2679 }).then(function (res) { 2680 var value = res.body.data && res.body.data.postCategories || {}; 2681 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2682 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2683 done(items.map(function (item) { 2684 item.count = featured ? item.featuredPublishedCount : item.publishedCount; 2685 return item; 2686 }), items.length); 2687 }); 2688 } 2689 function fetchOffices(done) { 2690 var useRouter = auxUsesRouter('offices'); 2691 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 2692 // selection set differs ({ items {...} } on the router). 2693 var selection = 'id, name, tags'; 2694 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. The two 2695 // APIs differ in more than the items wrapper: federated offices takes 2696 // companyId: ID! (legacy gateway: String), so each branch builds its whole doc. 2697 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 + '}}'; 2698 var payload = { 2699 offset: 0, 2700 limit: 100, 2701 companyId: variables.companyId 2702 }; 2703 2704 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2705 if (useRouter) { 2706 payload = window.luxuryPresence.routerApi.transformVariables('office
2706s', payload); 2707 } 2708 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2709 query: gqlQuery, 2710 variables: payload 2711 }).then(function (res) { 2712 var value = res.body.data && res.body.data.offices || {}; 2713 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2714 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2715 done(items, items.length); 2716 }); 2717 } 2718 2719 // ROUTER-CLEANUP: no rentalRates field on the federated router â legacy only. 2720 function fetchAllRentalRates(done) { 2721 var url = options.url || window.luxuryPresence.defaults.apiGatewayUrl; 2722 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'rentalRates (companyId: $companyId, offset: $offset, limit: $limit) {rentalRateId, label}}'; 2723 var payload = { 2724 offset: 0, 2725 limit: 100, 2726 companyId: variables.companyId 2727 }; 2728 superagent.post(url + '/graphql').withCredentials().send({ 2729 query: gqlQuery, 2730 variables: payload 2731 }).then(function (res) { 2732 var items = res.body.data && res.body.data.rentalRates || []; 2733 done(items, items.length); 2734 }).catch(function (err) { 2735 console.error('Error fetching rental rates:', err); 2736 done([], 0); 2737 }); 2738 } 2739 function fetchData(params, done) { 2740 var resource = options.resource; 2741 var gqlQuery = options.query || window.luxuryPresence.defaults.gql[resource]; 2742 var payload = {}; 2743 try { 2744 payload = JSON.parse(JSON.stringify(variables)); 2745 } catch (e) { 2746 Object.keys(variables).forEach(function (variableName) { 2747 payload[variableName] = variables[variableName]; 2748 }); 2749 } 2750 payload.offset = (params.page - 1) * pageSize + offset; 2751 payload.limit = pageSize; 2752 payload.companyId = options.companyId; 2753 searchFormParams.forEach(function (formParam) { 2754 var val = params[formParam.formKey || formParam.param]; 2755 if (val !== null && val !== undefined) { 2756 objSet(payload, formParam.param, val); 2757 } 2758 }); 2759 2760 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2761 if (options.useRouterApi) { 2762 payload = window.luxuryPresence.routerApi.transformVariables(resource, payload); 2763 } 2764 2765 // TODO: Disabled loading due to jarring effect 2766 // dataContainer.html('Loading...'); 2767 superagent.post(apiUrl(options.useRouterApi) + '/graphql').withCredentials().send({ 2768 query: gqlQuery, 2769 variables: payload 2770 }).then(function (res) { 2771 if (res.body.errors) { 2772 done(res.body.errors); 2773 return; 2774 } 2775 var data = res.body.data || {}; 2776 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2777 var resources; 2778 var resourceCount; 2779 if (options.useRouterApi) { 2780 var page = window.luxuryPresence.routerApi.transformPage(data[resource]); 2781 resources = window.luxuryPresence.routerApi.transformResponse(resource, page.items); 2782 resourceCount = page.count; 2783 } else { 2784 resources = data[resource] || []; 2785 resourceCount = data[resource + 'Count'] && data[resource + 'Count'].count ? data[resource + 'Count'].count : 0; 2786 } 2787 const finish = function (items) { 2788 if (resource === 'properties' && propertyPlaceholderImage?.id) { 2789 items = items.map(item => { 2790 if (item.media?.length === 0) { 2791 return Object.assign(item, { 2792 media: [propertyPlaceholderImage] 2793 }); 2794 } 2795 return item; 2796 }); 2797 } 2798 done(null, items, resourceCount); 2799 }; 2800 2801 // ROUTER-CLEANUP: client half of PLAT-4073 â resolve the requested 2802 // disclaimers before rendering; older SDKs skip (keys stay unset). 2803 if (options.useRouterApi && resource === 'properties' && options.routerPropertyDisclaimers && options.routerPropertyDisclaimers.length && window.luxuryPresence.routerApi && typeof window.luxuryPresence.routerApi.applyPropertyDisclaimers === 'function') { 2804 window.luxuryPresence.routerApi.applyPropertyDisclaimers(resources, options.routerPropertyDisclaimers).then(finish); 2805 return; 2806 } 2807 finish(resources); 2808 }); 2809 } 2810 function getTotalPage() { 2811 return Math.ceil(totalNumber / pageSize); 2812 } 2813 function renderPaginationList() { 2814 var totalPages = getTotalPage(); 2815 var rangeStart = searchParams.page - pageRange; 2816 var rangeEnd = searchParams.page + pageRange; 2817 if (rangeEnd > totalPages) { 2818 rangeEnd = totalPages; 2819 rangeStart = totalPages - pageRange * 2; 2820 rangeStart = rangeStart < 1 ? 1 : rangeStart; 2821 } 2822 if (rangeStart <= 1) { 2823 rangeStart = 1; 2824 rangeEnd = Math.min(pageRange * 2 + 1, totalPages); 2825 } 2826 2827 // Making sure that 1 more page button is shown in edge positions 2828 if (pageRange === 0) { 2829 if (searchParams.page === totalPages) { 2830 rangeStart = totalPages <= 1 ? 1 : totalPages - 1; 2831 } 2832 if (searchParams.page === 1) { 2833 rangeEnd = Math.min(2, totalPages); 2834 } 2835 } 2836 2837 // Render pagination list 2838 if (mode === 'NUMBERED_PAGINATION') { 2839 el.innerHTML = generateHTML({ 2840 currentPage: searchParams.page, 2841 pageRange: pageRange, 2842 rangeStart: rangeStart, 2843 rangeEnd: rangeEnd 2844 }); 2845 if (totalPages < 2 && hidePaginationOnFirstPage) { 2846 container.style.display = 'none'; 2847 } else { 2848 container.style.display = ''; 2849 } 2850 } else if (mode === 'LOAD_MORE_BUTTON') { 2851 if (searchParams.page >= totalPages) {
2852 loadMoreButton.style.display = 'none'; 2853 } else { 2854 loadMoreButton.style.display = ''; 2855 } 2856 } 2857 } 2858 function render(data) { 2859 renderPaginationList(); 2860 2861 // Render new content with handlebars 2862 var html = ''; 2863 if (mode === 'LOAD_MORE_BUTTON' && searchParams.page > 1) { 2864 // If using load more, append search results to existing results 2865 html = dataContainer.innerHTML; 2866 } 2867 for (var i = 0; i < data.length; i++) { 2868 var itemData = recursivelyParse(data[i]); 2869 itemData.sectionIndex = options.sectionIndex; 2870 itemData.renderOptions = options.renderOptions; 2871 html += template(itemData); 2872 } 2873 dataContainer.innerHTML = html; 2874 2875 // Scroll Top 2876 if (!firstRender && mode === 'NUMBERED_PAGINATION' && (!renderBySearch || !options.skipScrollOnSearch)) { 2877 // Only animate to the top if we replace dataContainer (numbered pagination) 2878 setTimeout(() => { 2879 const scrollTargetOffsetTop = scrollTarget.getBoundingClientRect().top + window.scrollY - scrollOffset; 2880 window.scrollTo({ 2881 top: scrollTargetOffsetTop, 2882 behavior: 'smooth' 2883 }); 2884 }, 250); 2885 } 2886 return true; 2887 } 2888 function generateHTML(args) { 2889 const totalPages = getTotalPage(); 2890 const { 2891 rangeStart, 2892 rangeEnd 2893 } = args; 2894 const makeLnk = page => window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 2895 ...searchParams, 2896 page 2897 }); 2898 let html = ''; 2899 if (showPrevious || showPageNumbers || showNext) { 2900 html += '<div class="paginationjs-pages"><ul>'; 2901 2902 // Previous button 2903 if (showPrevious) { 2904 if (searchParams.page <= 1) { 2905 html += `<li class="${classPrefix}-prev ${disableClassName}"><a>${prevText}</a></li>`; 2906 } else { 2907 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>`; 2908 } 2909 } 2910 2911 // Pages 2912 if (showPageNumbers) { 2913 if (rangeStart <= 3) { 2914 for (let i = 1; i < rangeStart; i++) { 2915 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>`; 2916 } 2917 } else { 2918 if (showFirstOnEllipsisShow) { 2919 html += `<li class="${classPrefix}-page ${classPrefix}-first J-paginationjs-page" data-num="1"><a href="${makeLnk(1)}">1</a></li>`; 2920 } 2921 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 2922 } 2923 for (let i = rangeStart; i <= rangeEnd; i++) { 2924 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>`; 2925 } 2926 if (rangeEnd < totalPages - 2) { 2927 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 2928 if (showLastOnEllipsisShow) { 2929 html += `<li class="${classPrefix}-page ${classPrefix}-last J-paginationjs-page" data-num="${totalPages}"><a href="${makeLnk(totalPages)}">${totalPages}</a></li>`; 2930 } 2931 } else { 2932 for (let i = rangeEnd + 1; i <= totalPages; i++) { 2933 html += `<li class="${classPrefix}-page J-paginationjs-page" data-num="${i}"><a href="${makeLnk(i)}">${i}</a></li>`; 2934 } 2935 } 2936 } 2937 2938 // Next button 2939 if (showNext) { 2940 if (searchParams.page >= totalPages) { 2941 html += `<li class="${classPrefix}-next ${disableClassName}"><a>${nextText}</a></li>`; 2942 } else { 2943 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>`; 2944 } 2945 } 2946 html += '</ul></div>'; 2947 } 2948 return html; 2949 } 2950 function go(newSearchParams, callback, restorationVisit) { 2951 if (disabled) return; 2952 var goToPageNumber = newSearchParams.page; 2953 2954 // Page number is out of bounds 2955 if (!goToPageNumber || goToPageNumber < 1) return; 2956 var totalPage = getTotalPage(); 2957 2958 // Page number is out of bounds 2959 if (!restorationVisit && totalNumber > 0) { 2960 if (goToPageNumber > totalPage) return; 2961 } 2962 if (!options.skipSerialization && (mode === 'NUMBERED_PAGINATION' || searchContainer)) {
2963 var newURL = window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 2964 ...newSearchParams, 2965 page: goToPageNumber !== 1 && mode === 'NUMBERED_PAGINATION' ? newSearchParams.page : null 2966 }); 2967 if (!areQueryParamsEqual(newSearchParams, searchParams) && !restorationVisit) { 2968 window.history.pushState({}, '', window.luxuryPresence.getPath(newURL, { 2969 queryString: true 2970 })); 2971 } 2972 } 2973 2974 // Fetch and update page 2975 fetchData(newSearchParams, renderWithData); 2976 disabled = true; 2977 function renderWithData(err, data, count) { 2978 if (err) { 2979 dataContainer.dispatchEvent(new Event('error')); 2980 } else { 2981 searchParams = { 2982 ...newSearchParams 2983 }; 2984 totalNumber = count - offset; 2985 if (data.length === 0) { 2986 dataContainer.dispatchEvent(new Event('no-data')); 2987 } else { 2988 dataContainer.dispatchEvent(new Event('data')); 2989 } 2990 render(data); 2991 firstRender = false; 2992 } 2993 disabled = false; 2994 renderBySearch = false; 2995 } 2996 } 2997 function areQueryParamsEqual(first, second) { 2998 var differ = Object.keys(first).find(function (key) { 2999 return first[key] !== undefined && first[key] !== null && first[key] !== second[key]; 3000 }); 3001 if (differ) { 3002 return false; 3003 } 3004 differ = Object.keys(second).find(function (key) { 3005 return second[key] !== undefined && second[key] !== null && second[key] !== first[key]; 3006 }); 3007 return !differ; 3008 } 3009 function next(callback) { 3010 go({ 3011 ...searchParams, 3012 page: searchParams.page + 1 3013 }, callback); 3014 } 3015 function previous(callback) { 3016 go({ 3017 ...searchParams, 3018 page: searchParams.page - 1 3019 }, callback); 3020 } 3021 function refresh(callback) { 3022 go(searchParams, callback); 3023 } 3024 function update(params, callback) { 3025 renderBySearch = true; 3026 go(params, callback); 3027 } 3028 function observer() { 3029 if (searchContainer) { 3030 searchContainer.addEventListener('search', function (event, newSearchParams) { 3031 newSearchParams = event.detail || newSearchParams; 3032 update({ 3033 ...searchParams, 3034 ...newSearchParams, 3035 page: 1 3036 }); 3037 }); 3038 searchContainer.addEventListener('clear-search', function () { 3039 const defaultSearchParams = { 3040 ...DefaultSearchParams 3041 }; 3042 const isCurrentSearchFormStateDefault = areQueryParamsEqual({ 3043 ...defaultSearchParams, 3044 page: null 3045 }, { 3046 ...searchParams, 3047 page: null 3048 }); 3049 3050 // if mode is LOAD_MORE_BUTTON we should't make anything on clear 3051 // when search form have default state 3052 if (isCurrentSearchFormStateDefault && mode !== 'NUMBERED_PAGINATION') { 3053 return; 3054 } 3055 3056 // if someone initially go to some page and click 'Clear' on search from 3057 // we should't navigate to first page. We should preserve page value 3058 if (isCurrentSearchFormStateDefault) { 3059 defaultSearchParams.page = searchParams.page; 3060 } 3061 syncSearchFormState(defaultSearchParams); 3062 update(defaultSearchParams); 3063 }); 3064 } 3065 if (mode === 'LOAD_MORE_BUTTON') { 3066 loadMoreButton.addEventListener('click', function (event) { 3067 go({ 3068 ...searchParams, 3069 page: searchParams.page + 1 3070 }); 3071 return false; 3072 }); 3073 } 3074 if (mode === 'LOAD_MORE_BUTTON' || mode === 'BUTTONLESS_PAGINATION') { 3075 // Do initial render 3076 go(Object.assign({}, searchParams, { 3077 page: 1 3078 })); 3079 return; 3080 } 3081 if (mode === 'NUMBERED_PAGINATION') { 3082 // Go to specified page number 3083 container.addEventListener(eventPrefix + 'go', function (event) { 3084 let { 3085 pageNumber, 3086 done 3087 } = event.detail || {}; 3088 pageNumber = parseInt(pageNumber, 10); 3089 if (!pageNumber) { 3090 return; 3091 } 3092 go({ 3093 ...searchParams, 3094 page: pageNumber 3095 }, done); 3096 }); 3097 3098 // Page number button click 3099 el.addEventListener('click', function (event) { 3100 let clickTarget = event.target; 3101 let current = clickTarget.closest('.J-paginationjs-page, .J-paginationjs-previous, .J-paginationjs-next'); 3102 let pageNumber = current?.getAttribute('data-num'); 3103 if (!pageNumber || current.classList.contains(disableClassName) || current.classList.contains(activeClassName)) { 3104 return; 3105 } else { 3106 go({ 3107 ...searchParams, 3108 page: parseInt(pageNumber, 10) 3109 }); 3110 } 3111 event.preventDefault(); 3112 }); 3113 3114 // Whether to load the default page 3115 var defaultPageNumber = searchParams.page; 3116 if (triggerPagingOnInit) {
3117 container.dispatchEvent(new CustomEvent(eventPrefix + 'go', { 3118 detail: { 3119 pageNumber: defaultPageNumber 3120 } 3121 })); 3122 } 3123 } 3124 window.addEventListener('popstate', function (event) { 3125 var newParams = Object.assign({}, DefaultSearchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 3126 if (!areQueryParamsEqual(newParams, searchParams)) { 3127 go(newParams, null, true); 3128 if (searchContainer) { 3129 syncSearchFormState(newParams); 3130 } 3131 } 3132 }); 3133 } 3134 function replaceVariables(template, variables) { 3135 var formattedString; 3136 for (var key in variables) { 3137 var value = variables[key]; 3138 var regexp = new RegExp('<%=\\s*' + key + '\\s*%>', 'img'); 3139 formattedString = (formattedString || template).replace(regexp, value); 3140 } 3141 return formattedString; 3142 } 3143 function isTextEditorValue(obj) { 3144 return 'raw' in obj || 'gjs' in obj; 3145 } 3146 function getTextEditorValue(obj) { 3147 if (!obj.html) { 3148 return ''; 3149 } 3150 var data = obj.html; 3151 var css = (obj.raw || obj.gjs || {}).css; 3152 if (css) { 3153 data = data + '<style>' + css + '</style>'; 3154 } 3155 return data; 3156 } 3157 3158 /** 3159 * check rendered resources for html and raw properties that could indicate if resource is from an advanced text editor. 3160 * strips out raw proprties and returns only HTML if it exists. 3161 * @param {Object} resources a collection retrieved from the database 3162 * @return {Object} the newly modified object. 3163 */ 3164 function recursivelyParse(resources) { 3165 forEach(resources, function (value, key) { 3166 if (!value) { 3167 return; 3168 } 3169 if (value instanceof Object) { 3170 if (isTextEditorValue(value)) { 3171 resources[key] = getTextEditorValue(value); 3172 return; 3173 } else { 3174 return recursivelyParse(value); 3175 } 3176 } 3177 try { 3178 var parsedData = JSON.parse(value); 3179 if (isTextEditorValue(parsedData)) { 3180 resources[key] = getTextEditorValue(parsedData); 3181 } 3182 } catch (e) { 3183 // do nothing if we failed to parse value as JSON 3184 } 3185 }); 3186 return resources; 3187 } 3188 function forEach(collection, iteratee) { 3189 var func = Array.isArray(collection) ? arrayEach : baseFor; 3190 return func(collection, iteratee); 3191 } 3192 function baseFor(object, iteratee) { 3193 if (!object) { 3194 return; 3195 } 3196 var iterable = Object(object); 3197 var props = Object.keys(object); 3198 var length = props.length; 3199 var index = -1; 3200 while (length--) { 3201 var key = props[++index]; 3202 if (iteratee(iterable[key], key, iterable) === false) { 3203 break; 3204 } 3205 } 3206 return object; 3207 } 3208 function objSet(obj, path, value) { 3209 const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g); 3210 pathArray.reduce((acc, key, i) => { 3211 if (acc[key] === undefined) acc[key] = {}; 3212 if (i === pathArray.length - 1) acc[key] = value; 3213 return acc[key]; 3214 }, obj); 3215 } 3216 function arrayEach(array, iteratee) { 3217 var index = -1; 3218 var length = array.length; 3219 while (++index < length) { 3220 if (iteratee(array[index], index, array) === false) { 3221 break; 3222 } 3223 } 3224 return array; 3225 } 3226 function selectPageRangeMode(e) { 3227 pageRange = e.matches ? mobilePageRange : desktopPageRange; 3228 renderPaginationList(); 3229 } 3230 paginationMql.addEventListener('change', selectPageRangeMode); 3231})('section-247e796e-9beb-412d-bb50-69569f8459de', JSON.parse("{\"pageSize\":\"6\",\"resource\":\"posts\",\"pageRange\":0,\"variables\":{\"limit\":6,\"order\":\"publishedAt\",\"offset\":0,\"sortDir\":\"DESC\",\"companyId\":\"62dea509-9e98-4ea1-8332-c3f17e7eb5f7\",\"categoryId\":\"{{pageElement.categoryId}}\"},\"searchFormParams\":[{\"param\":\"search\",\"urlKey\":\"search\"},{\"param\":\"categoryIds\",\"urlKey\":\"category\"}],\"skipScrollOnSearch\":true,\"scrollTargetSelector\":\".blog-list__container\",\"hidePaginationOnFirstPage\":true,\"companyId\":\"62dea509-9e98-4ea1-8332-c3f17e7eb5f7\",\"usePageResource\":false,\"sectionIndex\":2,\"useRouterApi\":true,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}")); 3232} catch(e) { 3233console.log(e); 3234} 3235 try { 3236(function init(sectionDomId) { 3237 const section = $(`#${sectionDomId}`); 3238 const searchInput = section.find('.js-search-input'); 3239 const searchContainer = section.find('.search-container'); 3240 const dataContainer = section.find('.data-container'); 3241 const categoryFilter = section.find('.js-category-filter'); 3242 const btnCategory = section.find('.js-btn-category'); 3243 let activeFilters = null; 3244 if (searchContainer.length === 0) return; 3245 const { 3246 debounce 3247 } = window.luxuryPresence; 3248 const emptyResultsText = section.find('.empty-results'); 3249 searchInput.on('input', debounce(doSearch, 700)); 3250 dataContainer.on('data', function () { 3251 emptyResultsText.removeClass("visible"); 3252 }); 3253 dataContainer.on('no-data', function () { 3254 emptyResultsText.addClass("visible"); 3255 }); 3256 btnCategory.click(function () { 3257 $(this).toggleClass('active'); 3258 categoryFilter.slideToggle(); 3259 }); 3260 function doSearch() { 3261 let values = categoryFilter.find('.active').map(function () { 3262 return $(this).data('value'); 3263 }).get(); 3264 const params = { 3265 categoryIds: values || null, 3266 search: searchInput.val().trim() || null 3267 }; 3268 searchContainer[0]?.dispatchEvent(new CustomEvent('search', { 3269 detail: params 3270 })); 3271 } 3272 categoryFilter.on('click', '.category-cell', function () { 3273 if ($(this).hasClass('js-category-all')) { 3274 section.find('.category-cell').removeClass('active'); 3275 $(this).addClass('active'); 3276 } else { 3277 $(this).toggleClass('active'); 3278 section.find('.js-category-all').removeClass('active'); 3279 } 3280 doSearch(); 3281 }); 3282 searchContainer.on('post-categories-data', function (ev, category) { 3283 category = ev.detail || category; 3284 categoryFilter.find('.js-category-cell').remove(); 3285 categoryFilter.find('.active').removeClass('active'); 3286 let btnClass = categoryFilter.data('button-style'); 3287 if (Array.isArray(category.data) && category.data.length) { 3288 btnCategory.css('display', 'inline-flex'); 3289 categoryFilter.append(category.data.map(item => `<button id="filter-${item.id}" data-value="${item.id}" class="category-cell js-category-cell lp-btn ${btnClass}">${item.name}</button>`).join('\n')); 3290 } else { 3291 btnCategory.remove(); 3292 } 3293 setActiveFilters(); 3294 }); 3295 searchContainer.on('sync', function (event, params) { 3296 params = event.detail || params; 3297 activeFilters = params; 3298 setActiveFilters(); 3299 }); 3300 function setActiveFilters() { 3301 categoryFilter.find('.active').removeClass('active'); 3302 if (activeFilters.categoryIds !== null && activeFilters.categoryIds.length > 0) { 3303 activeFilters.categoryIds.forEach(function (categoryId) { 3304 categoryFilter.find(`#filter-${categoryId}`).addClass('active'); 3305 }); 3306 } else { 3307 categoryFilter.find('.js-category-all').addClass('active'); 3308 } 3309 } 3310})('section-247e796e-9beb-412d-bb50-69569f8459de', JSON.parse("{\"resource\":\"posts\",\"useRouterApi\":true,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":true,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"62dea509-9e98-4ea1-8332-c3f17e7eb5f7\",\"usePageResource\":false,\"sectionIndex\":2}")); 3311} catch(e) { 3312console.log(e); 3313} 3314 try { 3315(function init(sectionDomId) { 3316 const form = $("#" + sectionDomId).find("form"); 3317 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 3318 form.on("reset", function () { 3319 redirectPage(redirectLink); 3320 }); 3321 function redirectPage(link) { 3322 if (link.length) { 3323 const rawHref = link.attr('href'); 3324 link.attr('href', setHttp(rawHref)); 3325 link[0].click(); 3326 } 3327 } 3328 function setHttp(link) { 3329 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 3330 link = 'http://' + link; 3331 } 3332 return link; 3333 } 3334})('section-552d56a9-1f0c-4092-837c-0f3b8aa080b6', 'undefined'); 3335} catch(e) { 3336console.log(e); 3337} 3338 try { 3339(function init(sectionDomId) { 3340 const $section = $('#' + sectionDomId); 3341 if ($section.find('.parallax').length) $section.addClass('parallax-enabled'); 3342 if ($section.find('.video-wrapper').length) $section.addClass('video'); 3343})('section-20ee9b76-e31b-4654-a4fa-449d2c85d8b2', 'undefined'); 3344} catch(e) { 3345console.log(e); 3346} 3347 try { 3348(function init(sectionDomId, options) { 3349 let section = null; 3350 switch (sectionDomId) { 3351 case 'NAVBAR': 3352 section = document.querySelector('body > nav, #global-navbar'); 3353 break; 3354 case 'FOOTER': 3355 section = document.querySelector('body > footer, #global-footer'); 3356 break; 3357 case 'SIDEMENU': 3358 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 3359 break; 3360 case 'CONTACT':
3361 section = document.querySelector('#modal-global-contact-us'); 3362 break; 3363 case 'MOBILE_CONTACT': 3364 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 3365 break; 3366 case 'SUBSCRIBE': 3367 // Subscribe Not Implemented 3368 section = null; 3369 break; 3370 case 'ACCOUNT': 3371 // Account Not Implemented 3372 section = null; 3373 break; 3374 default: 3375 section = document.querySelector('#' + sectionDomId); 3376 } 3377 if (!section) { 3378 return; 3379 } 3380 var url = window.luxuryPresence.defaults.routerUrl; 3381 var companyId = window.luxuryPresence.defaults.companyId; 3382 var limit = options.limit || 8; 3383 if (typeof limit === 'string') { 3384 limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected 3385 } 3386 var templateSelector = options.templateSelector || '.jsIGTemplate'; 3387 var containerSelector = options.containerSelector || '.jsIGContainer'; 3388 var hasDataClass = options.hasDataClass || 'has-data'; 3389 var hideActivateMessage = options.hasDataClass || false; 3390 var payload = { 3391 companyId: companyId, 3392 limit: limit 3393 }; 3394 if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) { 3395 payload.resourceId = options.resourceId; 3396 // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase 3397 payload.resource = String(options.resource || 'agent').toUpperCase(); 3398 payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true; 3399 } 3400 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'; 3401 var templateHTML = section.querySelector(templateSelector)?.innerHTML || ''; 3402 var template = Handlebars.compile(templateHTML); 3403 var container = section.querySelector(containerSelector); 3404 if (options.variables) { 3405 Object.keys(options.variables).forEach(function (key) { 3406 if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) { 3407 payload[key] = options.variables[key]; 3408 } 3409 }); 3410 } 3411 function getData() { 3412 var feed = { 3413 error: true 3414 }; 3415 if (payload.companyId == null || payload.companyId === '') { 3416 // instagramContentFeed requires companyId (ID!) â nothing to fetch without it. 3417 // Checked after the options.variables merge, which may override the default. 3418 // Deferred so element listeners (attached after this template runs) still receive it. 3419 setTimeout(function () { 3420 section.dispatchEvent(new CustomEvent('ig-data', { 3421 detail: feed 3422 })); 3423 }, 0); 3424 return; 3425 } 3426 superagent.post(url + '/graphql').send({ 3427 query: query, 3428 variables: payload 3429 }).then(res => { 3430 try { 3431 if (!res.body.errors) { 3432 feed = res.body.data.instagramContentFeed; 3433 if (!feed.active) { 3434 if (!hideActivateMessage && sectionDomId === 'section-temp' && container) { 3435 if (payload.resourceId) { 3436 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>'; 3437 } else { 3438 container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>'; 3439 } 3440 } 3441 } else { 3442 if (feed.items.length) { 3443 if (hasDataClass) { 3444 section.classList.add(hasDataClass); 3445 } 3446 const feedName = feed.username; 3447 section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl)); 3448 section.querySelectorAll('.jsIGName').forEach(name => { 3449 name.textContent = '@' + feedName; 3450 name.setAttribute('title', '@' + feedName); 3451 }); 3452 if (container && template) { 3453 container.innerHTML = template(feed); 3454 } 3455 } 3456 } 3457 } 3458 } catch (e) {} 3459 section.dispatchEvent(new CustomEvent('ig-data', { 3460 detail: feed 3461 })); 3462 }).catch(e => { 3463 console.log('err', e); 3464 section.dispatchEvent(new CustomEvent('ig-data', { 3465 detail: feed 3466 })); 3467 }); 3468 } 3469 getData(); 3470})('section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d', JSON.parse("{\"limit\":33,\"resource\":\"agent\",\"resourceId\":\"\",\"fallbackToNoResource\":\"true\",\"companyId\":\"62dea509-9e98-4ea1-8332-c3f17e7eb5f7\",\"usePageResource\":false,\"sectionIndex\":5,\"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}}")); 3471} catch(e) { 3472console.log(e); 3473} 3474 try { 3475(function init(sectionDomId) { 3476 const $section = $('#' + sectionDomId); 3477 var templateHTML = $section.find('.jsIGItem').html(); 3478 var itemTemplate = templateHTML && Handlebars.compile(templateHTML); 3479 const $container = $section.find('.ig-feed-feed'); 3480 const $topPrev = $section.find('.top-nav-prev'); 3481 const $topNext = $section.find('.top-nav-next'); 3482 const $bottomPrev = $section.find('.bottom-nav-prev'); 3483 const $bottomNext = $section.find('.bottom-nav-next'); 3484 let limit = 33; 3485 try { 3486 limit = parseInt($container[0].dataset['limit']); 3487 } catch (e) {} 3488 if (!limit) { 3489 limit = 33; 3490 } 3491 let igFeed = {}; 3492 let usedWidth = 0; 3493 let slider = null; 3494 $section.on('ig-data', function (ev, feed) { 3495 feed = ev.detail || feed; 3496 igFeed = feed; 3497 if (feed.active && feed.items.length) { 3498 buildSlider(); 3499 } 3500 }); 3501 $(window).on('resize.lpui-auto-clean', onResize); 3502 let timer = null; 3503 function onResize() { 3504 clearTimeout(timer); 3505 timer = window.setTimeout(buildSlider, 50); 3506 } 3507 function getLayout(w, n) { 3508 if (w > 1100) { 3509 if (n > 7) { 3510 return { 3511 type: 'type1', 3512 single: 1, 3513 multi: n, 3514 slides: 3, 3515 slider: n > 9 3516 }; 3517 } 3518 if (n > 5) { 3519 return { 3520 type: 'type1', 3521 single: 2, 3522 multi: n, 3523 slides: 3, 3524 slider: false 3525 }; 3526 } 3527 return { 3528 type: 'type1', 3529 single: n, 3530 multi: n, 3531 slides: 3, 3532 slider: n > 3 3533 }; 3534 } else if (w > 880) { 3535 if (n > 4) { 3536 return { 3537 type: 'type2', 3538 single: 1, 3539 multi: n, 3540 slides: 2.5, 3541 slider: n > 7 3542 }; 3543 } 3544 return { 3545 type: 'type1', 3546 single: n, 3547 multi: n, 3548 slides: 3, 3549 slider: n > 3 3550 }; 3551 } else if (w > 767) { 3552 if (n > 4) { 3553 return { 3554 type: 'type3', 3555 single: 1, 3556 multi: n, 3557 slides: 2, 3558 slider: n > 5 3559 }; 3560 } 3561 return { 3562 type: 'type4', 3563 single: n, 3564 multi: n, 3565 slides: 2, 3566 slider: n > 2 3567 }; 3568 } else if (w > 460) { 3569 return { 3570 type: 'type4', 3571 single: n, 3572 multi: n, 3573 slides: 2, 3574 slider: n > 2 3575 }; 3576 } 3577 return { 3578 type: 'type5', 3579 single: n, 3580 multi: n, 3581 slides: 1, 3582 slider: n > 1 3583 }; 3584 } 3585 function ensureClass($el, className) { 3586 if ($el.hasClass(className)) { 3587 return; 3588 } 3589 $el.addClass(className); 3590 } 3591 function makeSquare($el) { 3592 const el = $el[0]; 3593 el.style.width = ''; 3594 el.style.height = ''; 3595 const rect = el.getBoundingClientRect(); 3596 if (rect.width !== rect.height) { 3597 el.style.width = rect.height + 'px'; 3598 } 3599 } 3600 function buildSlider() { 3601 const cWidth = $container[0].getBoundingClientRect().width; 3602 if (cWidth === usedWidth) { 3603 return; 3604 } 3605 $container.empty();
3606 slider = $('<div class="ig-feed-slider"></div>'); 3607 const items = igFeed.items.slice(0, limit); 3608 const layout = getLayout(cWidth, items.length); 3609 let i = 0; 3610 let slide = null; 3611 while (i < layout.single) { 3612 slide = $(`<div class="slide-single ${layout.type}"></div>`).append(itemTemplate(items[i])).appendTo(slider); 3613 i++; 3614 } 3615 while (i < layout.multi) { 3616 slide = $(`<div class="slide-multi ${layout.type}"></div>`).appendTo(slider); 3617 let slideContent = $('<div class="slide-multi-content"></div>').appendTo(slide); 3618 const lim = i + 4; 3619 while (i < lim && i < layout.multi) { 3620 slideContent.append(itemTemplate(items[i])); 3621 i++; 3622 } 3623 } 3624 $container.append(slider); 3625 if (layout.slider) { 3626 $topPrev.removeClass('hidden-control'); 3627 $topNext.removeClass('hidden-control'); 3628 $bottomPrev.removeClass('hidden-control'); 3629 $bottomNext.removeClass('hidden-control'); 3630 let prev, next; 3631 if ($bottomPrev.parent()[0].getBoundingClientRect().width) { 3632 prev = $bottomPrev; 3633 next = $bottomNext; 3634 } else { 3635 prev = $topPrev; 3636 next = $topNext; 3637 makeSquare($topPrev); 3638 makeSquare($topNext); 3639 } 3640 slider.children().each(function () { 3641 this.style.width = this.getBoundingClientRect().width + 'px'; 3642 }); 3643 slider.slick({ 3644 dots: false, 3645 prevArrow: prev, 3646 nextArrow: next, 3647 slidesToScroll: 1, 3648 infinite: false, 3649 slidesToShow: layout.slides 3650 }); 3651 } else { 3652 ensureClass($topPrev, 'hidden-control'); 3653 ensureClass($topNext, 'hidden-control'); 3654 ensureClass($bottomPrev, 'hidden-control'); 3655 ensureClass($bottomNext, 'hidden-control'); 3656 } 3657 } 3658})('section-e7e9e125-5c52-4ed4-aab2-7ca6ebd9161d', 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\":\"62dea509-9e98-4ea1-8332-c3f17e7eb5f7\",\"usePageResource\":false,\"sectionIndex\":5}")); 3659} catch(e) { 3660console.log(e); 3661} 3662 3663 var { body } = document; 3664 var globalNav = body.querySelector(':scope > nav'); 3665 var globalSideMenu = body.querySelector(':scope > div.sidemenu'); 3666 3667 document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => { 3668 modalCloseBtn.addEventListener('click', function() { 3669 window.lpUI.hideClosestModal(modalCloseBtn); 3670 }); 3671 }); 3672 3673 window.addEventListener('click', function() { 3674 document.querySelectorAll('.share-popup').forEach(sharedPopup => { 3675 sharedPopup.style.display = 'none' ; 3676 }); 3677 }); 3678 3679 /* Misc Partials / Addons */ 3680 function initWOW() { 3681 if (wow) { 3682 wow.init(); 3683 wow.scrollHandler(); 3684 setTimeout(function () { 3685 const wowHideStyle = document.getElementById('wow-hide-elements'); 3686 if(wowHideStyle) { 3687 wowHideStyle.disabled = true; 3688 } 3689 }, 1); 3690 } 3691 } 3692 3693 const wowHideElements = document.getElementById('wow-hide-elements'); 3694 if (wowHideElements) { 3695 wowHideElements.disabled = false; 3696 } 3697 3698 initWOW(); 3699 3700 /* Generic Navbar Handling */ 3701 globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => { 3702 hamburgerComponent.addEventListener('click', function() { 3703 window.lpUI.sideMenuToggle(); 3704 }); 3705 }); 3706 globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => { 3707 toggleEl.addEventListener('click', function() { 3708 window.lpUI.sideMenuToggle(); 3709 }); 3710 }); 3711 3712 document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => { 3713 linkEl.addEventListener('click', function(e) { 3714 e.preventDefault(); 3715 e.stopPropagation();
3716 var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav'); 3717 if (subNav && subNav.classList.contains('visible')){ 3718 subNav.classList.remove('visible'); 3719 } else { 3720 globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => { 3721 globalSubNav.classList.remove('visible'); 3722 }); 3723 globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => { 3724 sideMenuSubNav.classList.remove('visible'); 3725 }); 3726 subNav?.classList.add('visible'); 3727 } 3728 }); 3729 }); 3730 window.addEventListener('click', function() { 3731 document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => { 3732 subNavEl.classList.remove('visible'); 3733 }); 3734 }); 3735 3736 } 3737 3738 document.addEventListener('DOMContentLoaded', lpGlobalInit); 3739 3740 </script>
3740 3741 3742
3742<script type="module"> 3743 function selectorExists(selector) { 3744 return document.querySelector(selector) !== null; 3745 } 3746 3747 // Function to initialize the third-party library 3748 function initParoller(selector = '.my-paroller') { 3749 var $parollerElements = $(selector); 3750 if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') { 3751 $parollerElements.paroller(); 3752 } 3753 } 3754 3755 const parollerSelector = '.my-paroller'; 3756 3757 if (selectorExists(parollerSelector)) { 3758 window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() { 3759 initParoller(parollerSelector); 3760 window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true; 3761 }); 3762 } 3763 </script>
3763 3764 3765 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 3765-3766
3765 3766 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3766GTM-T9SFQGHZ
vendor: 107 bytes, lines 3766-3768
3766" 3767 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 3768
3768<!-- End Google Tag Manager --> 3769 3770
3770<script 3771 src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js" 3772 data-website-id="4d649273-d03b-4e27-a6a8-89e21a8a5908" 3773 3774 defer></script>
vendor: 1 bytes, line 3774
3774
3775<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"d2a8f4b3d65944edb8fcd6ffce49ee5e","spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 3775
3775
3776<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:'a4821c99df73c6f0',t:'MTc5MTU5ODQ2OA=='};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>
3776</body> 3777</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.