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>Notable Sales | Miami Beach Real Estate | Dora Puig</title> 10 <meta property="og:title" content="Notable Sales | Miami Beach Real Estate | Dora Puig"> 11 <meta name="twitter:title" content="Notable Sales | Miami Beach Real Estate | Dora Puig"> 12 <meta name="description" content="Scan Dora Puig's recently sold luxury estates and properties in the Idaho area. If you're planning on selling a home, contact Dora to assist you!"> 13 <meta property="og:description" content="Scan Dora Puig's recently sold luxury estates and properties in the Idaho area. If you're planning on selling a home, contact Dora to assist you!"> 14 <meta name="twitter:description" content="Scan Dora Puig's recently sold luxury estates and properties in the Idaho area. If you're planning on selling a home, contact Dora to assist you!"> 15 <meta property="og:image" content="https://media-production.lp-cdn.com/media/f68ae564-89c1-43af-b9b3-2dc4b40e3009"> 16 <meta name="twitter:image" content="https://media-production.lp-cdn.com/media/f68ae564-89c1-43af-b9b3-2dc4b40e3009"> 17 <meta property="og:url" content="https://dorapuig.com/properties/sold"> 18 <link rel="canonical" href="https://dorapuig.com/properties/sold"> 19
19<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
19 20 <link rel="preconnect" href="https://fonts.googleapis.com"> 21 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 22 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Playfair%20Display:400,500,600,700,800,900,400i,500i,600i,700i,800i,900i"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Hind:300,400,500,600,700"> 23 <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 24 <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css"></noscript> 25 <link rel="icon" type="image/x-icon" href="/favicon.ico"> 26 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 27 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 28 <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png"> 29 <style id="global-css">:root{--global-primary-font-family:'Playfair Display',serif;--global-primary-font-family-short:Playfair Display;--global-secondary-font-family:Hind,sans-serif;--global-secondary-font-family-short:Hind;--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:Hind,sans-serif;font-size:16px;}@media (min-width: 768px){body{padding:0px 0px 0px 0px;}}h1,h2,h3,h4,h5,h6,button{font-family:'Playfair Display',serif;}h1{font-size:70px;}h2{font-size:43px;}h3{font-size:30px;}h4{font-size:21px;}h5{font-size:17px;}h6{font-size:16px;}</style> 30 <link rel="stylesheet" type="text/css" href="https://styles.luxurypresence.com/dora-puig/index.css" /> 31 <style id="website-css">html{scroll-behavior:smooth!important;scroll-padding:3rem!important;}nav#global-navbar>div>div>div.container>div>button{display:none;}nav#global-navbar>div>div>div.container>div>div.navigation{display:none;}nav#global-navbar>div>div>div.container>div>div.logo>a>img{max-height:67px;}nav#global-navbar.scroll{background-color:rgba(255,255,255,0.8)!important;}nav#global-navbar.scroll a.logo__link img:first-child{display:none!important;}nav#global-navbar.scroll a.logo__link img:last-child{display:block!important;}@media only screen and (max-width: 768px){#modal-global-contact-us>div>div{padding-left:10px!important;padding-right:10px!important;}#modal-global-contact-us>div>div>div>div.contact-form__close.close{right:15px;}#modal-global-contact-us>div>div>div>div.contact-form__container>div>div>div.socials>ul{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}#modal-global-contact-us .lp-socials li{-webkit-flex:1 1 25%;-ms-flex:1 1 25%;flex:1 1 25%;text-align:center;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;padding:0!important;}#global-footer div.address__content{font-size:18px;}#global-footer>div>div>div.footer__tagline{font-size:18px;}}footer#global-footer .footer__col--address{border-color:#EB647E;}div#modal-global-contact-us div.section-details h2{font-size:0;}div#modal-global-contact-us div.section-details h2:before{content:'Contact Me';font-size:45px;}div#modal-global-contact-us .contact-form ul.lp-socials{padding-left:0;}div#modal-global-contact-us .contact-form ul.lp-socials li:not(:last-child){padding-right:10px;}div#modal-global-contact-us .contact-form .section-message:after{background:#EB647E;}#modal-global-contact-us .contact-form__form{border-left-color:#EB647E!important;}#modal-global-contact-us .company_address.bordered{border-bottom-color:#EB647E!important;}ul.lp-socials li a i.fa-podcast:before{content:"\f173";font-family:'Font Awesome 5 Brands';}.lp-btn,.redesign .lp-btn{padding:20px 46px;}#modal-global-contact-us .contact-form .section-message form .submitButton{padding:14px 20px;}div#modal-global-contact-us .redesign p{font-weight:400;}footer div.address__content{font-weight:400;color:#fff;opacity:1;}footer a.contact__link{opacity:1;}#global-sidemenu .sidebar__nav-link:hover{color:#EB647E;}#global-sidemenu .sidebar__subnav-link:hover{color:#EB647E;}#modal-global-contact-us div.info-zone div.info-zone_contact{margin-bottom:21px!important;}@media(max-width:768px){#modal-global-contact-us div.info-zone div.info-zone_contact{margin-bottom:20px!important;}#modal-global-contact-us .lp-socials{-webkit-box-pack:center;-ms-flex-pack:center;
31-webkit-justify-content:center;justify-content:center;}}@media screen and (max-width:768px){#global-footer .lp-socials{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}}#global-loader img{display:block;width:100%;height:100%;object-fit:cover;}@media (orientation: portrait){#global-loader img{object-fit:contain;}}#modal-global-contact-us .contact-form__input{border-bottom-color:#272727;}#modal-global-contact-us .contact-form .lp-input{border-color:#272727;}#modal-global-contact-us .contact-form .input-container__label{color:#272727;}#modal-global-contact-us .contact-form input.lp-input--light{color:#272727!important;}#modal-global-contact-us .company_label{color:#272727;}#modal-global-contact-us .company_contact-wrap svg{color:#272727;}#modal-global-contact-us .company_contact:hover{color:rgba(235, 100, 126, 1)!important;}#modal-global-contact-us .lp-socials{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;}@media only screen and (min-width: 1024px){div.acsb-trigger{margin-bottom:70px!important;}}@media only screen and (max-width: 760px){div.acsb-trigger{margin-bottom:200px!important;}}#global-footer>div>div>div.footer__row>
31div.footer__col.footer__col--address>div:nth-child(1)>div.address__content>p>strong{color:#fff!important;}</style> 32 <style id="wow-hide-elements">.wow{visibility:hidden!important}</style> 33 <style id="page-css"> 34 #section-0d0a8808-b1c0-4194-89e6-801b695d396d{color:#fff;--fontColor:#fff;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:100%;--fontColor_A:1;--fontColor_darkenDir:-1;--bgColor:#ffffff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;background-color:#ffffff;--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.3));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1280/https://media-production.lp-cdn.com/media/v4q31cudbfk1oxl1ucbw');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-0d0a8808-b1c0-4194-89e6-801b695d396d div.custom-intro{min-height:95vh;}#section-0d0a8808-b1c0-4194-89e6-801b695d396d .custom-intro{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;height:600px;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}#section-0d0a8808-b1c0-4194-89e6-801b695d396d .custom-intro .container{z-index:1;text-align:center;max-width:900px;}#section-0d0a8808-b1c0-4194-89e6-801b695d396d .custom-intro__title{margin-bottom:0px;font-weight:400;margin-bottom:24px;}@media (max-width: 768px){#section-0d0a8808-b1c0-4194-89e6-801b695d396d .custom-intro__title{font-size:32px;}}@media (max-width: 360px){#section-0d0a8808-b1c0-4194-89e6-801b695d396d .custom-intro__title{font-size:22px;}}#section-0d0a8808-b1c0-4194-89e6-801b695d396d .custom-intro__subtitle{font-weight:400;white-space:pre-line;font-size:21px;line-height:1.57;}@media (max-width: 768px){#section-0d0a8808-b1c0-4194-89e6-801b695d396d .custom-intro__subtitle{font-size:18px;}}#section-0d0a8808-b1c0-4194-89e6-801b695d396d .description{margin-bottom:15px;}@media (min-width: 960px) and (orientation: landscape){#section-0d0a8808-b1c0-4194-89e6-801b695d396d{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/v4q31cudbfk1oxl1ucbw');}}@media (min-width: 1280px) and (orientation: landscape){#section-0d0a8808-b1c0-4194-89e6-801b695d396d{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=1920/https://media-production.lp-cdn.com/media/v4q31cudbfk1oxl1ucbw');}}@media (min-width: 1920px) and (orientation: landscape){#section-0d0a8808-b1c0-4194-89e6-801b695d396d{background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=2560/https://media-production.lp-cdn.com/media/v4q31cudbfk1oxl1ucbw');}}@media (min-width: 2560px) and (orientation: landscape){#section-0d0a8808-b1c0-4194-89e6-801b695d396d{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/v4q31cudbfk1oxl1ucbw');}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b{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;--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:rgba(255, 255, 255, 1);}#section-4abb62b6-c414-4e20-8208-1eb09941e43b div.container ul .property-list__item a span.property-list__label{background:#EB647E;font-weight:400;padding-top:8px;letter-spacing:1px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b div.container ul .property-list__text{background-image:linear-gradient(transparent, transparent),url(https://res.cloudinary.com/luxuryp/images/w_1920,c_limit,f_auto,q_auto/a4qt0w3rr9tiob89dvjh/dora-bkg-min);background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b div.container ul .property-list__text h4{color:#58595B;background:#fff;margin:-0;padding:10px;padding-top:20px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b div.container ul .property-list__text p{color:#58595B;background:#fff;font-weight:400;letter-spacing:1.2px;padding-top:10px;margin:0;margin-top:-5px;padding-left:10px;padding-right:10px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b div.container ul .property-list__text h5{color:#58595B;background:#fff;font-weight:400;margin:0;margin-top:-5px;padding-top:10px;padding-bottom:10px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__text{padding:25px 80px 15px!important;}@media screen and (max-width:768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__text{padding:35px 25px 25px!important;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b div.property-list-section{padding-top:36px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list__text p:first-of-type:not(.property-list__facilities){display:none;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .btn{width:100%;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .redesign .feature h4{text-transform:initial;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section{padding-bottom:140px;}@media (max-width: 991px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section{padding-bottom:100px;}}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section{padding-bottom:40px;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section h2{text-align:center;margin-bottom:0;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .title-container{padding-top:100px;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .title-container{padding-top:60px;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .title-container +.search-container{margin-top:40px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container{c
34olor:black;padding:25px 30px;background-color:white;display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr 1fr auto;grid-template-columns:1fr 1fr 1fr auto;-ms-grid-rows:1fr;grid-template-rows:1fr;gap:0px 15px;grid-template-areas:". . . . .";}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container.show-neighborhood-select{-ms-grid-columns:1fr 1fr 1fr 1fr auto;grid-template-columns:1fr 1fr 1fr 1fr auto;}@media(max-width: 950px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container.show-neighborhood-select{-ms-grid-columns:1fr;grid-template-columns:1fr;-ms-grid-rows:auto auto auto auto;grid-template-rows:auto auto auto auto;grid-template-areas:"." "." "." ".";gap:25px;}}@media(max-width: 950px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container{-ms-grid-columns:1fr;grid-template-columns:1fr;-ms-grid-rows:auto auto auto auto;grid-template-rows:auto auto auto auto;grid-template-areas:"." "." "." ".";gap:25px;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container input[name="area-slider"],#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container input[name="price-slider"]{position:absolute!important;display:block!important;top:0!important;left:0!important;width:0!important;height:0!important;font-size:0!important;line-height:0!important;padding:0!important;margin:0!important;overflow:hidden;outline:none!important;z-index:-9999!important;background:none!important;border-style:solid!important;border-color:transparent!important;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container select{line-height:1.2!important;width:100%;border:none;border-bottom:1px solid;padding:5px 0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;border-radius:0px;background-color:transparent;outline:none;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii01NDAgLTMyMCA4MDAgODAwIj48cGF0aCBkPSJNMjI1LjgxMyA0OC45MDdMMTI4IDE0Ni43MiAzMC4xODcgNDguOTA3IDAgNzkuMDkzbDEyOCAxMjggMTI4LTEyOHoiLz48L3N2Zz4K) no-repeat 100% 50%;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .text-search-input{border:none;border-bottom:1px solid;padding:5px 0;width:100%;border-radius:0;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round{height:38px;}@media(max-width: 950px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round{height:50px;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-handle{width:10px;height:10px;border-width:1px;border-color:black;top:32px;box-shadow:none;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-bar{background-color:black;height:1px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-line{height:1px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-min,#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-max{display:none;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-from:before,#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-to:before,#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-single:before{display:none;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-from,#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-to,#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-single{font-size:13px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-from{left:0!important;visibility:visible!important;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-to{right:0!important;left:auto!important;visibility:visible!important;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-single{display:none;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-from,#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-to,#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs--round .irs-single{background-color:transparent;color:gray;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs-from,#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs-to,#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .irs-single{top:10px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .search-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;
34-webkit-justify-content:space-between;justify-content:space-between;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .search-item .search-title{font-weight:700;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .btn-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}@media(max-width: 950px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list-section .search-container .btn-item{display:none;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;-ms-grid-rows:1fr;grid-template-rows:1fr;gap:55px 80px;grid-template-areas:". .";padding:0;color:#000;list-style:none;}@media (max-width: 991px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list{gap:55px 25px;}}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list{-ms-grid-columns:1fr;grid-template-columns:1fr;grid-template-areas:".";gap:35px 25px;justify-items:center;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list.three-items{-ms-grid-columns:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;grid-template-areas:". . .";gap:55px 40px;}@media (max-width: 1200px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list.three-items{-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;grid-template-areas:". .";gap:55px 80px;}}@media (max-width: 991px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list.three-items{gap:55px 25px;}}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list.three-items{-ms-grid-columns:1fr;grid-template-columns:1fr;grid-template-areas:".";gap:35px 25px;justify-items:center;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list.property-list--share .property-list__share{display:inline-block;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__item{background-color:#fff;text-align:center;font-weight:bold;position:relative;min-height:500px;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__item{min-height:1px;max-width:325px;width:100%;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__item:hover .property-list__hover{opacity:1;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__item h4{margin:0 0 7px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__item p{white-space:normal;margin:0 0 7px;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__item p{margin-bottom:3px;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__item h5{text-transform:none;margin:0;font-family:var(--global-secondary-font-family);}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__item-link{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__item-link{height:auto;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__img{width:100%;height:315px;vertical-align:top;background-color:gray;position:relative;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__img{height:200px;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__img img{width:100%;height:100%;object-fit:cover;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__text{background-color:#fff;padding:25px 15px 15px;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__text{margin-bottom:15px;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__label{position:absolute;top:0;right:0;background:#000;color:#fff;
34padding:4px 35px;z-index:2;}@media (max-width: 1024px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__facilities span:nth-child(n+4){display:block;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__facilities span:not(:last-child)::after{content:" | ";}@media (max-width: 1024px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__facilities span:not(:last-child):nth-child(n+3)::after{content:none;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .hover-link{position:absolute;top:0;left:0;width:100%;height:100%;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .hover-link{display:none;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__hover{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255, 255, 255, 0.75);opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear;z-index:3;cursor:pointer;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__hover{opacity:1;background-color:var(--bgColor);position:static;padding:15px 0 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;height:auto;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__hover h4{text-transform:none;}@media(max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__hover h4{display:none;}}@media (min-width: 769px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__buttons{position:absolute;top:50%;left:50%;width:100%;-webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);transform:translate(-50%, -50%);}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__view .btn{margin-bottom:20px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .btn{vertical-align:top;margin:0 10px;display:none;}@media(max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .btn{margin:0;}}@media(min-width: 769px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .btn.btn--primary-dark{display:inline-block;}}@media(max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .btn.btn--primary-light{display:inline-block;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__share{position:relative;display:none;}@media(max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__share{margin-bottom:25px;margin-top:15px;width:100%;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__share.property-list__share--opened .socials{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__share .socials{-webkit-box-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;position:absolute;top:100%;left:50%;-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);display:none;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b ul.property-list .property-list__share .socials .socials__link{width:70px;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .is-background-color-light ul.property-list .btn.btn--primary-dark{display:inline-block;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .is-background-color-light ul.property-list .btn.btn--primary-light{display:none;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .redesign ul.property-list{margin-bottom:60px;margin-top:60px;margin-left:0;}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .redesign ul.property-list{margin-bottom:30px;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .empty-result{text-align:center;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .label-house{bottom:0;position:absolute;width:100%;padding:8px 0;background:rgba(255, 255, 255, 0.7);}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .label-house{font-size:12px;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list__item .property-list__item-mls-attribution{text-shadow:none;width:calc(100% - 200px);margin-bottom:0!important;}@media (max-width: 1024px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list__item .property-list__item-mls-attribution{width:100%;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list__item .property-list__item-mls-attribution+.property-list__item-mls-logo{position:absolute!important;right:15px!important;bottom:15px!important;}@media (max-width: 1024px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list__item .property-list__item-mls-attribution+.property-list__item-mls-logo{position:relative!important;right:unset!important;bottom:unset!important;}}@media (max-width: 768px){#section-4abb62b6-c414-4e20-8208-1eb09941e43b .property-list__item .property-list__item-mls-logo{display:inline-block!important;}}#section-4abb62b6-c414-4e20-8208-1eb09941e43b .mls-compliance-container{padding:0 15px 15px!important;}#section-4abb62b6-c414-4e20-8208-1eb09941e43b>div:last-child{padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0{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:#f9f9f7;--bgColor_H:60;--bgColor_S:14%;--bgColor_L:97%;--bgColor_A:1;--bgColor_darkenDir:-1;--section-padding-top:calc(4 / 4 * var(--global-section-padding));--section-padding-bottom:calc(4 / 4 * var(--global-section-padding));background-color:#f9f9f7;--gradient-color:var(--overlay-color, transparent);background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/media/c444c2e6-b076-4264-b3a6-41d762a88533');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0{background-attachment:fixed;-webkit-background-position:center;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;}@media only screen and (max-width: 768px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0{background-attachment:unset;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .title span{color:#58595B;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0{z-index:1;background-image:none!important;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0.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-7348e5c3-3703-4b3a-9347-40fac50851f0.parallax-enabled>div.video-wrapper{position:fixed;left:0;top:0;width:100vw;z-index:-1;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0.parallax-enabled .bg{opacity:1;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .bg{background-image:var(--sectionBackgroun
34d);background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;height:100vh;width:100vw;position:fixed;top:0;left:0;z-index:-1;opacity:0;}@supports not (-webkit-touch-callout: none){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .bg{background-attachment:fixed;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .lp-container{position:relative;z-index:1;-webkit-transform:translateZ(1px);-moz-transform:translateZ(1px);-ms-transform:translateZ(1px);transform:translateZ(1px);}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed{display:none;padding:80px 0;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .opacity{opacity:1;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .instagram-link{display:block;margin:0 20px 0 0;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .instagram-link .instagram-name{display:inline;margin:0;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .title+.description{margin-top:24px;}@media (max-width: 1440px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .title+.description{margin-top:16px;}}@media (max-width: 560px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .title+.description{margin-top:24px;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .sub-title{max-width:640px;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .top-wrapper{margin-bottom:20px;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:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .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-7348e5c3-3703-4b3a-9347-40fac50851f0 .follow-button{margin:20px 0 0 0;display:block;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .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-7348e5c3-3703-4b3a-9347-40fac50851f0 .nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .nav-button:not(.slick-disabled):hover{background-color:#1a1a1a;border-color:#1a1a1a;color:#fff;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .top-nav-prev{margin-left:30px;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .top-nav-next{margin-left:10px;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .hidden-control{display:none;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .follow{color:var(--followColor);}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.show-follow .ig-feed-item:first-child .follow{pointer-events:initial;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.show-follow .ig-feed-item:first-child .ig-feed-item__caption{display:none;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.show-follow .ig-feed-item:first-child .follow{border:unset;display:block;width:100%;cursor:pointer;background-color:var(--socialCardColor);position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;text-align:left;padding:24px 54px;}@media (max-width: 992px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.show-follow .ig-feed-item:first-child .follow{padding:16px 40px;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.show-follow .ig-feed-item:first-child .follow svg{margin-right:10px;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.show-follow .ig-feed-item:first-child .follow svg .pink{stroke:var(--socialCardColor);}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.show-follow .ig-feed-item:first-child .follow-account{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:20px;text-transform:lowercase;font-size:var(--global-body-font-size, 16px);font-family:var(--global-secondary-font-family);font-weight:400;}@media (max-width: 992px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.show-follow .ig-feed-item:first-child .follow-account{margin-bottom:8px;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.show-follow .ig-feed-item:first-child .follow-account span{opacity:0.5;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .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-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single:first-child,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi:first-child{margin-left:auto;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single:last-child,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi:last-child{margin-right:auto;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single.type2,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.type2{width:calc(100% / 5 * 2);}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single.type3,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.type3{width:calc(100% / 2);}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single.type4,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.type4{width:calc(100% / 2);}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single.type5,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi.type5{width:100%;}@media (max-width: 1200px) and (min-width: 881px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single:first-child,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi:first-child{margin-left:0;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single:last-child,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi:last-child{margin-right:0;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;background-color:var(--backgroundCardColor, #fff);padding:10px;}@media (max-width: 1200px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}@media (max-width: 440px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-container{width:100%;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-feed{width:100%;position:relative;overflow:hidden;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-slider{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-item__img{position:absolute;
34left:-1px;top:-1px;bottom:-1px;right:-1px;background:center/cover no-repeat;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .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-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-item__info .follow{display:none;}@media(min-width: 1025px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-item:hover .ig-feed-item__info{opacity:1;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .follow-us{background-color:var(--socialCardColor);}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .follow-us .ig-feed-item__info{opacity:1;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-item__caption{text-overflow:ellipsis;-webkit-line-clamp:4;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .video-icon{position:absolute;width:50px;height:50px;background-color:#fff;left:50%;top: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-7348e5c3-3703-4b3a-9347-40fac50851f0 .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-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-item:hover .video-icon{opacity:0;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single{-webkit-order:1;-ms-flex-order:1;order:1;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single .ig-feed-item__info{padding:15%;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-single .ig-feed-item__caption{-webkit-line-clamp:7;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed-item{background-color:var(--tileColor, #000);display:block;width:100%;padding-bottom:125%;overflow:hidden;position:relative;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi::before{content:'';display:block;width:100%;padding-bottom:125%;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .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-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-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi-content .ig-feed-item{width:calc(50% - 10px);padding-bottom:calc(62.5% - 12.5px);margin-top:auto;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .slide-multi-content .ig-feed-item:first-child{width:100%;padding-bottom:125%;margin-top:0;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .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-7348e5c3-3703-4b3a-9347-40fac50851f0 .bottom-controls{width:100%;display:none;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .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;
34-webkit-justify-content:center;justify-content:center;width:48px;height:48px;color:#1a1a1a;border:1px solid currentColor;cursor:pointer;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .bottom-nav-button.slick-disabled{opacity:0.6;pointer-events:none;cursor:default;}@media (max-width: 767px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .top-right,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .top-left{width:100%;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .title,#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .instagram-link{margin-right:0;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .ig-feed{display:none;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .has-data .ig-feed{display:block;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0.has-data .ig-feed,#section-7348e5c3-3703-4b3a-9347-40fac50851f0#section-temp .ig-feed{display:block;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item{width:calc(100% / 3);-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;padding:10px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 1200px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item{width:100%;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item__wrap{width:100%;background-color:var(--socialCardColor);padding:37px 56px;}@media (max-width: 768px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item__wrap{padding:37px 40px;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item__followers{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:20px;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item__followers i{margin-right:17px;font-size:23px;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item__followers span{opacity:0.5;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item__description{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item__title{padding-bottom:30px;position:relative;margin-bottom:34px;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .fb-item__title:after{position:absolute;display:block;content:'';left:0;bottom:0;height:2px;width:100%;background-color:currentColor;opacity:0.2;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .follow-title{text-transform:capitalize;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .follow-title:before{content:var(--instagramText);}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .title{margin-bottom:47px;margin-left:auto;margin-right:auto;text-align:center;color:var(--titleTextColor, #ffffff);}#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .title span{display:inline-block;background-color:var(--titleCardColor, #58595B);padding:32px 15px;min-width:504px;}@media (max-width: 767px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .title span{min-width:100%;width:100%;}}@media (max-width: 767px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .title{margin-bottom:0;}}@media (max-width: 767px){#section-7348e5c3-3703-4b3a-9347-40fac50851f0 .lp-container{padding-left:0;padding-right:0;}}#section-7348e5c3-3703-4b3a-9347-40fac50851f0>div:last-child{padding-top:calc(4 / 4 * var(--global-section-padding))!important;padding-bottom:calc(4 / 4 * var(--global-section-padding))!important;}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3{color:#272727;--fontColor:#272727;--fontColor_H:0;--fontColor_S:0%;--fontColor_L:15%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:rgba(255, 255, 255, 0);--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:0;--bgColor_darkenDir:-1;background-color:rgba(255, 255, 255, 0);--gradient-color:var(--overlay-color, rgba(0, 0, 0, 0.30));background-image:linear-gradient(var(--gradient-color), var(--gradient-color)),url('https://media-production.lp-cdn.com/media/4d2c857e-51e2-4eb0-abe9-04c5b92a9c41');background-repeat:no-repeat;-webkit-background-position:center;background-position:center;-webkit-background-size:cover;background-size:cover;}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal{width:100%;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-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .lp-text--subtitle{max-width:100%;margin-bottom:0;}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__container{z-index:2;width:100%;}@media (max-width: 992px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__container{padding-left:24px;padding-right:24px;}}@media (max-width: 768px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__container{padding-bottom:24px;padding-top:127px;}}@media (max-width: 580px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__container{padding-left:0;padding-right:0;padding-bottom:0;}}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .lp-title-group{text-align:left;margin-left:0;margin-bottom:24px;}@media (max-width: 768px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .lp-title-group{max-width:100%;margin-bottom:20px;}}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .form-group-wrap{padding-top:70px;padding-bottom:70px;width:50%;max-width:573px;}@media (max-width: 1200px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .form-group-wrap{padding-top:50px;padding-bottom:50px;}}@media (max-width: 992px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .form-group-wrap{padding-top:24px;padding-bottom:24px;}}@media (max-width: 768px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .form-group-wrap{padding-top:0;padding-bottom:0;width:100%;max-width:100%;}}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .form-group{padding:70px;background-color:var(--cardColor, #ffffff);-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;border-top:6px solid var(--accentColor, #EB647E);margin-right:auto;}@media (max-width: 1200px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .form-group{max-width:100%;padding:32px;}}@media (max-width: 992px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .form-group{padding:24px;}}@media (max-width: 768px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .form-group{width:100%;max-width:100%;padding-top:55px;padding-bottom:55px;}}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .image{width:50%;max-width:485px;-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end;}@media (max-width: 768px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .image{margin-left:24px;margin-right:24px;width:53%;}}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__form{position:relative;text-align:left;margin-bottom: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:justify;
34-webkit-justify-content:space-between;justify-content:space-between;}@media (max-width: 768px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__form{-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;}}@media (max-width: 768px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__form{height:auto;}}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__input{width:100%;display:block;height:72px;}@media (max-width: 768px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__input{height:58px;margin-bottom:16px;}}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__submit{margin-top:56px;display:block;}@media (max-width: 768px){#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__submit{margin-top:45px;}}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal__submit i{display:none;}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .form-inputs-wrap{max-width:100%;}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .success .popup-modal__submit--success{display:inline;}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .loading .popup-modal__submit--loading{display:inline;}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .popup-modal .lp-h2{margin-top:0;margin-bottom:8px;}#section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3 .h-pot{height:0;width:0;overflow:hidden;visibility:hidden;line-height:0;font-size:0;position:absolute;}#modal-global-contact-us .description{margin-bottom:15px;}
34#modal-global-contact-us{background:#ffffff url('https://media-production.lp-cdn.com/media/e26dc0a5-2440-419a-81e1-7fb43d7eb7d6') center no-repeat;-webkit-background-size:cover;background-size:cover;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:.3s all ease-out 0.1s;transition:.3s all ease-out 0.1s;display:block;--colorCharcoal:rgba(88, 89, 91, 0.5);--colorCharcoalDark:rgba(39, 39, 39, 0.5);--colorCharcoalLight:rgba(39, 39, 39, 0.2);}#modal-global-contact-us>.close{display:none;}#modal-global-contact-us.visible{-webkit-transition:0.3s all ease-out 0.1s;transition:0.3s all ease-out 0.1s;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}#modal-global-contact-us .modal-content{height:100%;min-height:100%;}#modal-global-contact-us .contact-form{color:#272727;width:100%;background:center no-repeat;-webkit-background-size:cover;background-size:cover;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:start;-webkit-box-align:start;-ms-flex-align:start;align-items:start;padding-left:80px;padding-right:80px;max-height:100%;overflow-y:auto;}#modal-global-contact-us .contact-form::-webkit-scrollbar{width:4px;background-color:transparent;}#modal-global-contact-us .contact-form::-webkit-scrollbar-thumb{background-color:var(--accentColor, #EB647E);}#modal-global-contact-us .contact-form::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 4px rgba(0,0,0,0.1);background-color:rgba(252, 175, 190, 1);margin-bottom:100px;margin-top:100px;}@media(max-width: 1200px){#modal-global-contact-us .contact-form{padding-left:50px;padding-right:50px;}}@media(max-width: 768px){#modal-global-contact-us .contact-form{padding-left:30px;padding-right:30px;}}@media(max-width: 580px){#modal-global-contact-us .contact-form{padding-left:0;padding-right:0;}}#modal-global-contact-us .contact-form .input-container{width:100%;}#modal-global-contact-us .contact-form .input-container+.input-container{margin-top:14px;}#modal-global-contact-us .contact-form .input-container__label{display:block;text-align:left;margin-top:20px;color:var(--colorCharcoalDark);margin-bottom:8px;font-weight:500;}#modal-global-contact-us .contact-form .lp-container{background-color:var(--formBackgroundColor);border-top:6px solid var(--accentColor, #EB647E);position:relative;}#modal-global-contact-us .contact-form__container{z-index:2;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding:57px 51px;position:relative;}@media (max-width: 1200px){#modal-global-contact-us .contact-form__container{padding-left:0;padding-right:0;}}@media (max-width: 992px){#modal-global-contact-us .contact-form__container{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:66px 0;}}#modal-global-contact-us .contact-form__close{position:absolute;right:0;top:-6px;-webkit-transform:translate(50%, -50%);-moz-transform:translate(50%, -50%);-ms-transform:translate(50%, -50%);transform:translate(50%, -50%);z-index:10;background-color:var(--accentColor, #EB647E);border:none;width:48px;height:48px;cursor:pointer;color:#ffffff;border-radius:999px;}@media(max-width: 768px){#modal-global-contact-us .contact-form__close{right:48px;}}#modal-global-contact-us .contact-form__close:before,#modal-global-contact-us .contact-form__close:after{display:block;content:'';position:absolute;width:18px;height:1px;background-color:currentColor;left:50%;top:50%;}#modal-global-contact-us .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__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__form{text-align:center;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:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;position:relative;padding-left:112px;margin-bottom:0;width:50%;border-left:1px solid var(--colorCharcoalLight);}@media(max-width: 1200px){#modal-global-contact-us .contact-form__form{padding-left:50px;}}@media (max-width: 992px){#modal-global-contact-us .contact-form__form{width:100%;margin-right:0;border-left:none;padding-left:0;padding-bottom:50px;}}#modal-global-contact-us .contact-form__details{width:50%;padding-right:96px;}@media(max-width: 1200px){#modal-global-contact-us .contact-form__details{padding-right:50px;}}
34@media (max-width: 992px){#modal-global-contact-us .contact-form__details{width:100%;padding-top:48px;padding-left:0;padding-right:0;border-top:1px solid var(--colorCharcoalLight);}}#modal-global-contact-us .contact-form__input{width:100%;padding-top:14px;padding-bottom:14px;border-bottom-color:var(--colorCharcoalDark);}#modal-global-contact-us .contact-form__submit{margin-top:16px;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;min-width:200px;}@media (max-width: 992px){#modal-global-contact-us .contact-form__submit{margin-left:auto;margin-right:auto;}}@media (max-width: 580px){#modal-global-contact-us .contact-form__submit{width:100%;}}#modal-global-contact-us .contact-form .thank-you{display:none;padding:24px;}#modal-global-contact-us .contact-form .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;}
34#modal-global-contact-us .contact-form .success .form-group{display:none;}#modal-global-contact-us .contact-form .success .image{display:none;}#modal-global-contact-us .contact-form__title{margin-bottom:26px;}#modal-global-contact-us .contact-form__description{margin-bottom:48px;}@media (max-width: 992px){#modal-global-contact-us .contact-form__description{margin-bottom:32px;}}#modal-global-contact-us .form-inputs-wrap.center-aligned{margin-left:auto;margin-right:auto;}#modal-global-contact-us textarea.contact-form__input{min-height:97px;}#modal-global-contact-us .company{padding-bottom:36px;}@media (max-width: 992px){#modal-global-contact-us .company{padding-bottom:0;}}#modal-global-contact-us .company_label{line-height:1;margin-bottom:8px;font-weight:500;}#modal-global-contact-us .company_title{margin-bottom:10px;}#modal-global-contact-us .company_contact-wrap{margin-bottom:24px;color:var(--colorCharcoal);font-size:14px;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 992px){#modal-global-contact-us .company_contact-wrap:last-child{margin-bottom:0;}}#modal-global-contact-us .company_contact-wrap svg{margin-right:22px;}#modal-global-contact-us .company_contact{text-transform:uppercase;font-weight:500;}#modal-global-contact-us .company_address{padding-bottom:20px;margin-bottom:30px;}@media (max-width: 992px){#modal-global-contact-us .company_address{padding-bottom:0;margin-bottom:40px;}}#modal-global-contact-us .company_address.bordered{border-bottom:1px solid var(--colorCharcoalLight);}@media (max-width: 992px){#modal-global-contact-us .company_address.bordered{border-bottom:none;}}#modal-global-contact-us .loading-text{display:none;}#modal-global-contact-us .sync-icon{display:none;margin-right:10px;-webkit-animation:i-spin 2s linear infinite;animation:i-spin 2s linear infinite;width:12px;height:12px;color:inherit;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 6C12 9.31371 9.31371 12 6 12C2.68629 12 0 9.31371 0 6C0 2.68629 2.68629 0 6 0C9.31371 0 12 2.68629 12 6ZM1.8 6C1.8 8.3196 3.6804 10.2 6 10.2C8.3196 10.2 10.2 8.3196 10.2 6C10.2 3.6804 8.3196 1.8 6 1.8C3.6804 1.8 1.8 3.6804 1.8 6Z' fill='currentColor' opacity='0.3' /%3E%3Cpath d='M6 12C4.94139 12 3.90163 11.7199 2.98626 11.1882C2.07088 10.6565 1.31248 9.89202 0.788042 8.97246C0.263599 8.05289 -0.00821521 7.01094 0.000189088 5.95237C0.00859338 4.89379 0.296917 3.85629 0.835895 2.94517C1.37487 2.03404 2.14531 1.28173 3.06902 0.764608C3.99272 0.247482 5.03679 -0.0160517 6.09526 0.000756334C7.15374 0.0175644 8.18892 0.314116 9.09574 0.86031C10.0026 1.4065 10.7487 2.18289 11.2585 3.11067L9.68095 3.97747C9.3241 3.32803 8.80179 2.78455 8.16702 2.40222C7.53224 2.01988 6.80762 1.8123 6.06669 1.80053C5.32576 1.78876 4.5949 1.97324 3.94831 2.33523C3.30172 2.69721 2.76241 3.22383 2.38513 3.86162C2.00784 4.4994 1.80602 5.22566 1.80013 5.96666C1.79425 6.70766 1.98452 7.43702 2.35163 8.08072C2.71874 8.72442 3.24962 9.25953 3.89038 9.63174C4.53114 10.0039 5.25898 10.2 6 10.2L6 12Z' fill='currentColor'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 6C12 9.31371 9.31371 12 6 12C2.68629 12 0 9.31371 0 6C0 2.68629 2.68629 0 6 0C9.31371 0 12 2.68629 12 6ZM1.8 6C1.8 8.3196 3.6804 10.2 6 10.2C8.3196 10.2 10.2 8.3196 10.2 6C10.2 3.6804 8.3196 1.8 6 1.8C3.6804 1.8 1.8 3.6804 1.8 6Z' fill='currentColor' opacity='0.3' /%3E%3Cpath d='M6 12C4.94139 12 3.90163 11.7199 2.98626 11.1882C2.07088 10.6565 1.31248 9.89202 0.788042 8.97246C0.263599 8.05289 -0.00821521 7.01094 0.000189088 5.95237C0.00859338 4.89379 0.296917 3.85629 0.835895 2.94517C1.37487 2.03404 2.14531 1.28173 3.06902 0.764608C3.99272 0.247482 5.03679 -0.0160517 6.09526 0.000756334C7.15374 0.0175644 8.18892 0.314116 9.09574 0.86031C10.0026 1.4065 10.7487 2.18289 11.2585 3.11067L9.68095 3.97747C9.3241 3.32803 8.80179 2.78455 8.16702 2.40222C7.53224 2.01988 6.80762 1.8123 6.06669 1.80053C5.32576 1.78876 4.5949 1.97324 3.94831 2.33523C3.30172 2.69721 2.76241 3.22383 2.38513 3.86162C2.00784 4.4994 1.80602 5.22566 1.80013 5.96666C1.79425 6.70766 1.98452 7.43702 2.35163 8.08072C2.71874 8.72442 3.24962 9.25953 3.89
34038 9.63174C4.53114 10.0039 5.25898 10.2 6 10.2L6 12Z' fill='currentColor'/%3E%3C/svg%3E");}#modal-global-contact-us .success-icon{display:none;margin-right:10px;-webkit-transition:0s;transition:0s;visibility:visible;width:12px;height:9px;color:inherit;background-color:currentColor;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4.5679L4.76543 7.33333L10.0988 2' stroke='%23272727' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4.5679L4.76543 7.33333L10.0988 2' stroke='%23272727' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}#modal-global-contact-us .loading{pointer-events:none;}#modal-global-contact-us .loading .sync-icon{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}#modal-global-contact-us .loading .loading-text{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}#modal-global-contact-us .loading .static-text{display:none;}#modal-global-contact-us .success-text{display:none;}#modal-global-contact-us .success{pointer-events:none;}#modal-global-contact-us .success .static-text{display:none;}#modal-global-contact-us .success .loading-text{display:none;}#modal-global-contact-us .success .success-icon{display:block;}#modal-global-contact-us .success .success-text{display:inline;}#modal-global-contact-us .socials{padding-top:60px;}@media (max-width: 992px){#modal-global-contact-us .socials{padding-top:24px;}}#modal-global-contact-us .lp-socials>li{margin-bottom:16px;}#modal-global-contact-us .lp-socials>li:not(:last-child){padding-right:32px;}@media (max-width: 992px){#modal-global-contact-us .lp-socials>li:not(:last-child){padding-right:16px;}}#modal-global-contact-us .lp-socials.lp-socials--dark .lp-socials__link{background-color:#D6556E;border-color:#D6556E;color:#ffffff;}@media (hover: hover) and (pointer: fine){#modal-global-contact-us .lp-socials.lp-socials--dark .lp-socials__link:hover{background-color:#ffffff;color:#D6556E;}}#modal-global-contact-us .lp-disclaimer{margin-bottom:0;}#modal-global-contact-us .contact-form__input::-webkit-input-placeholder{color:var(--colorCharcoalDark);opacity:1;}#modal-global-contact-us .contact-form__input::-moz-placeholder{color:var(--colorCharcoalDark);opacity:1;}#modal-global-contact-us .contact-form__input:-ms-input-placeholder{color:var(--colorCharcoalDark);opacity:1;}#modal-global-contact-us .contact-form__input::placeholder{color:var(--colorCharcoalDark);opacity:1;}nav{-webkit-transition:background-color 0.5s ease;transition:background-color 0.5s ease;z-index:102;}nav nav{-webkit-transition:background-color 0.5s ease;transition:background-color 0.5s ease;}nav.sticky{background-color:#ffffff;opacity:.8;}nav.sticky .navigation .sub-nav ul{background-color:#EB647E;}nav.sticky .navigation .sub-nav__link{color:#ffffff;}nav.sticky .navigation__link{border-color:#EB647E!important;background-color:transparent!important;color:#EB647E!important;}@media (hover: hover) and (pointer: fine){nav.sticky .navigation__link:hover{background-color:#EB647E!important;border-color:#EB647E!important;color:#fff!important;}}nav.sticky .logo__img.light{display:none;}nav.sticky .logo__img.dark{display:block;}nav.sticky .navbar{padding-top:8px;padding-bottom:8px;}nav.sticky .hamburger{color:inherit;}nav.sticky .search{color:inherit;}nav .header__container{padding-left:24px;padding-right:24px;}nav .navbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;padding:30px 0;width:100%;}nav .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;}nav .logo__link{display:inline-block;-webkit-animation-duration:1s;animation-duration:1s;overflow:hidden;}nav .logo__img{max-width:174px;max-height:67px;vertical-align:top;object-fit:contain;}
34@media (max-width: 1200px){nav .logo__img{max-height:50px;}}nav .logo__img.dark{display:none;}@media(max-width: 1200px){nav .logo__img.dark{display:none;}}nav .logo__img.light{display:block;}@media(max-width: 1200px){nav .logo__img.light{display:inline-block;}}nav .navigation{margin-left:auto;color:inherit;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;}nav .navigation--small-items .navigation__link{min-width:unset;}nav .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;}@media (max-width: 1400px){nav .navigation ul{display:none;}}nav .navigation__item{padding:0;margin:0;}nav .navigation__item+.navigation__item{margin-left:16px;}@media (max-width: 1600px){nav .navigation__item:nth-child(n+6){display:none;}}@media (max-width: 1500px){nav .navigation__item:nth-child(n+5){display:none;}}nav .navigation__link{background-color:transparent;border-color:#fff;color:#fff;min-width:0;}@media (hover: hover) and (pointer: fine){nav .navigation__link:hover{background-color:#EB647E;border-color:#EB647E;color:#fff;}}nav .navigation .sub-nav-container{position:relative;}nav .navigation .sub-nav-container.hovered .navigation__link:after{-webkit-transform:rotate(-135deg);-moz-transform:rotate(-135deg);-ms-transform:rotate(-135deg);transform:rotate(-135deg);top:18px;}nav .navigation .sub-nav-container .navigation__link{padding-right:32px;position:relative;}nav .navigation .sub-nav-container .navigation__link:after{position:absolute;content:'';width:8px;height:8px;border-bottom:1px solid currentColor;border-right:1px solid currentColor;right:12px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:0.2s all;transition:0.2s all;}nav .navigation .sub-nav{position:absolute;top:100%;left:50%;padding:0;opacity:0;visibility:hidden;-webkit-transition:all .2s ease;transition:all .2s ease;-webkit-transform:translate(-50%, 20px);-moz-transform:translate(-50%, 20px);-ms-transform:translate(-50%, 20px);transform:translate(-50%, 20px);border-top:12px solid transparent;}nav .navigation .sub-nav ul{margin:0;padding:0;display:block;background-color:#ffffff;}nav .navigation .sub-nav__item{position:relative;display:block;margin:0;text-align:left;}nav .navigation .sub-nav__item:last-child{border-bottom-color:transparent;}nav .navigation .sub-nav__link{display:block;min-width:178px;color:#000000;margin:0;line-height:1.57;letter-spacing:1.5px;padding:10px 18px;-webkit-transition:all .2s ease;transition:all .2s ease;}@media (hover: hover) and (pointer: fine){nav .navigation .sub-nav__link:hover{background-color:rgba(0,0,0,0.1);}}nav .navigation .sub-nav.visible{opacity:1;visibility:visible;-webkit-transform:translate(-50%, 0);-moz-transform:translate(-50%, 0);-ms-transform:translate(-50%, 0);transform:translate(-50%, 0);}nav .navigation .sub-nav.visible+.navigation__link{background:#000000;}nav .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:22px 13px;background-color:transparent;color:#fff;cursor:pointer;outline:none;z-index:915;margin-left:8px;opacity:1;-webkit-transition:0.2s all ease;transition:0.2s all ease;}nav .hamburger__bars{position:relative;display:block;width:32px;height:2px;background-color:currentColor;}nav .hamburger__bars:before,nav .hamburger__bars:after{content:'';display:block;width:32px;height:2px;background-color:currentColor;position:absolute;left:0;top:0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition:0.2s width ease;transition:0.2s width ease;}nav .hamburger__bars:before{-webkit-transform:translateY(-9px);-moz-transform:translateY(-9px);-ms-transform:translateY(-9px);transform:translateY(-9px);}nav .hamburger__bars:after{width:16px;-webkit-transform:translateY(9px);-moz-transform:translateY(9px);-ms-transform:translateY(9px);transform:translateY(9px);}@media (hover: hover) and (pointer: fine){nav .hamburger:hover .hamburger__bars:before{width:16px;}nav .hamburger:hover .hamburger__bars:after{width:32px;}}nav .hamburger.active{visibility:hidden;opacity:0;pointer-events:none;}nav .content-container{-webkit-transition:0.2s all ease;transition:0.2s all ease;}nav .search{cursor:pointer;color:#fff;padding-left:20px;}nav .search svg{display:block;}body>div.sidemenu{background-color:#fff;color:rgba(39, 39, 39, 1);--fontColor:rgba(39, 39, 39, 1);--fontColor_H:0;--fontColor_S:0%;--fontColor_L:15%;--fontColor_A:1;--fontColor_darkenDir:1;--bgColor:#fff;--bgColor_H:0;--bgColor_S:0%;--bgColor_L:100%;--bgColor_A:1;--bgColor_darkenDir:-1;}body>div.sidemenu{width:100%;max-width:580px;-webkit-transition:.1s all ease-out 0.7s;transition:.1s all ease-out 0.7s;background:#ffffff;min-height:0;height:100%;display:block;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);left:unset;right:0;}@media (max-width: 560px){body>div.sidemenu{max-width:calc(100vw - 50px);}}body>div.sidemenu.visible{-webkit-transition:0.1s all;transition:0.1s all;transition-delay:0s;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);z-index:900;background-color:var(--bgColor, #ffffff);}body>div.sidemenu.visible .sidemenu__wrapper{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);-webkit-transition:0.01s linear;transition:0.01s linear;transition-delay:0s;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}body>div.sidemenu.visible .sidemenu__toggle{pointer-events:auto;}body>div.sidemenu.visible .sidemenu__nav{transition-delay:0.3s;opacity:1;}body>div.sidemenu .sidemenu__container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-right:96px solid var(--accentColor, #EB647E);position:relative;padding-right:22px;padding-top:72px;padding-bottom:0;height:100%;}@media (max-width: 768px){body>div.sidemenu .sidemenu__container{padding-right:8px;border-right-width:66px;}}body>div.sidemenu .sidemenu__wrapper{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;
34-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;-webkit-transform:translateY(-100%);-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition:0.1s ease;transition:0.1s ease;transition-delay:0.7s;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#FCAFBE #FCDBD6;}body>div.sidemenu .sidemenu__wrapper::-webkit-scrollbar{width:4px;background-color:transparent;}body>div.sidemenu .sidemenu__wrapper::-webkit-scrollbar-thumb{background-color:#FCAFBE;border-radius:100px;}body>div.sidemenu .sidemenu__wrapper::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 4px rgba(0,0,0,0.1);background-color:#FCDBD6;margin-bottom:72px;border-radius:100px;}@media (max-width: 768px){body>div.sidemenu .sidemenu__wrapper{padding:28px 0;}}body>div.sidemenu .sidemenu__toggle{height:48px;width:48px;position:absolute;z-index:1;right:-72px;top:57px;border:1px solid;border-radius:999px;background-color:transparent;outline:none;color:var(--bgColor, #ffffff);font-family:inherit;pointer-events:none;cursor:pointer;}@media (max-width: 768px){body>div.sidemenu .sidemenu__toggle{top:30px;height:40px;width:40px;right:-54px;}}body>div.sidemenu .sidemenu__toggle:focus{outline:none;}body>div.sidemenu .sidemenu__toggle:before,body>div.sidemenu .sidemenu__toggle:after{content:'';display:block;position:absolute;width:15px;height:1px;background-color:currentColor;right:50%;top:50%;}body>div.sidemenu .sidemenu__toggle: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 .sidemenu__toggle:after{-webkit-transform:translate(50%, -50%) rotate(-225deg);-moz-transform:translate(50%, -50%) rotate(-225deg);-ms-transform:translate(50%, -50%) rotate(-225deg);transform:translate(50%, -50%) rotate(-225deg);}body>div.sidemenu .sidemenu__nav{margin-bottom:auto;padding:0;opacity:0;-webkit-transition:0.01s opacity;transition:0.01s opacity;transition-delay:1s;}body>div.sidemenu .sidemenu__header{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-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-bottom:93px;}@media (max-width: 768px){body>div.sidemenu .sidemenu__header{padding-bottom:59px;}}body>div.sidemenu .sidemenu__logo{display:none;}@media (max-width: 768px){body>div.sidemenu .sidemenu__logo{display:block;}}body>div.sidemenu .sidemenu__logo-img{display:block;max-height:50px;}body>div.sidemenu .navigation{list-style-type:none;margin:0;padding:0;max-width:100%;}body>div.sidemenu .navigation__item{margin:0 0 40px 0;overflow:hidden;padding:0 59px;}@media(max-width: 768px){body>div.sidemenu .navigation__item{padding-left:28px;padding-right:16px;margin-bottom:0;}}body>div.sidemenu .navigation__link{display:block;color:var(--fontColor, #272727);-webkit-transition:0.2s all;transition:0.2s all;line-height:1.7142;cursor:pointer;-webkit-text-decoration:none;text-decoration:none;font-size:32px;font-family:var(--global-primary-font-family);-webkit-transform:translateY(100%);-moz-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);opacity:0;position:relative;transition-property:transform,opacity,color;transition-duration:0.55s,0.55s,0.3s;transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1),ease-in-out,ease-in-out;}@media(max-width: 768px){body>div.sidemenu .navigation__link{padding-left:0;padding-right:20px;padding-bottom:0;font-size:24px;line-height:2.92;}}@media (hover: hover) and (pointer: fine){body>div.sidemenu .navigation__link:hover{color:#D6556E;}}body>div.sidemenu .sub-nav{list-style-type:none;display:none;margin:0;padding-top:12px;}@media(max-width: 768px){body>div.sidemenu .sub-nav{padding-bottom:0;padding-top:0;padding-left:35px;}}body>div.sidemenu .sub-nav__item{padding-bottom:12px;margin:0;-webkit-transform:translateY(100%);-moz-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);opacity:0;transition-property:transform,opacity,color;transition-duration:0.55s,0.55s,0.3s;transition-timing-function:cubic-bezier(0.645, 0.045, 0.355, 1),ease-in-out,ease-in-out;}body>div.sidemenu .sub-nav__item:last-child{padding-bottom:0;}body>div.sidemenu .sub-nav__link{font-size:18px;line-height:1.55;font-weight:400;color:var(--accentColor, #EB647E);font-family:var(--global-secondary-font-family);-webkit-text-decoration:none;text-decoration:none;}@media (hover: hover) and (pointer: fine){body>div.sidemenu .sub-nav__link:hover{color:var(--fontColor, #272727);}}body>div.sidemenu .sub-nav.visible{display:block;}body>div.sidemenu .sub-nav-container.active>.navigation__link:after{-webkit-transform:rotate(-225deg) translateY(-50%);-moz-transform:rotate(-225deg) translateY(-50%);-ms-transform:rotate(-225deg) translateY(-50%);transform:rotate(-225deg) translateY(-50%);}body>div.sidemenu .sub-nav-container>.navigation__link{position:relative;padding-right:30px;}body>div.sidemenu .sub-nav-container>.navigation__link:after{display:inline-block;position:relative;content:'';width:10px;height:10px;border-left:1px solid;border-bottom:1px solid;left:1.5rem;top:50%;-webkit-transform:rotate(-45deg) translateY(-50%);-moz-transform:rotate(-45deg) translateY(-50%);-ms-transform:rotate(-45deg) translateY(-50%);transform:rotate(-45deg) translateY(-50%);transform-origin:top;-webkit-transition:0.3s all;transition:0.3s all;}body>div.sidemenu body>div.sidemenu{width:100%;}body>div.sidemenu body>div.sidemenu.visible{-webkit-transition:0s all;transition:0s all;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);z-index:900;background-color:#ffffff;}body>div.sidemenu body>div.sidemenu.visible .sidemenu__wrapper{-webkit-transform:translateY(0%);-moz-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%);-webkit-transition:1s cubic-bezier(0.645, 0.045, 0.355, 1.000);transition:1s cubic-bezier(0.645, 0.045, 0.355, 1.000);}body>div.sidemenu body>div.sidemenu.visible .sidemenu__toggle{pointer-events:auto;}body>div.sidemenu .fade-in{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);}footer{background-color:rgba(88, 89, 91, 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(88, 89, 91, 1);--bgColor_H:220;--bgColor_S:2%;--bgColor_L:35%;--bgColor_A:1;--bgColor_darkenDir:1;}footer .footer{padding-top:52px;padding-bottom:28px;background:url('https://media-production.lp-cdn.com/media/0cc88b70-99d4-4cdf-9929-043f940c2b82') left bottom no-repeat;}
34@media (max-width: 992px){footer .footer.no-address .footer__col--contact{border-bottom:none;}}@media (max-width: 767px){footer .footer.no-address .footer__col--contact{border-bottom:1px solid var(--descriptionColor);padding-left:30px;padding-top:0;}}footer .footer.no-contact .footer__col--address{border-right:none;}footer .footer__row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}@media (max-width: 992px){footer .footer__row{-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}@media (max-width: 767px){footer .footer__row{-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}}footer .footer__col{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;padding-top:25px;}footer .footer__col--address{padding-right:116px;padding-left:86px;border-right:1px solid var(--descriptionColor);font-size:15px;}@media (max-width: 1400px){footer .footer__col--address{padding-left:40px;padding-right:60px;}}@media (max-width: 992px){footer .footer__col--address{padding-left:0;}}@media (max-width: 768px){footer .footer__col--address{padding-left:0;padding-right:0;border-right:none;border-bottom:1px solid var(--descriptionColor);}}footer .footer__col--contact{padding-left:116px;}@media (max-width: 1400px){footer .footer__col--contact{padding-left:60px;}}@media (max-width: 767px){footer .footer__col--contact{border-bottom:1px solid var(--descriptionColor);padding-left:0;padding-top:32px;padding-bottom:10px;}}footer .footer__col--socials{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:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;padding-left:30px;padding-left:30px;padding-top:5px;}@media (max-width: 992px){footer .footer__col--socials{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}}@media (max-width: 992px){footer .footer__col--socials{padding-left:0;padding-top:36px;}}footer .footer__address{margin-bottom:33px;}footer .footer__logos{margin-top:8px;}@media (max-width: 768px){footer .footer__logos{margin-top:5px;}}footer .footer__tagline{padding-top:80px;padding-bottom:24px;text-transform:uppercase;text-align:center;font-size:30px;letter-spacing:10px;font-family:var(--global-third-font-family);}@media (max-width: 768px){footer .footer__tagline{font-size:14px;letter-spacing:initial;}}footer .contact{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:22px;letter-spacing:1.5px;font-weight:700;text-transform:uppercase;}footer .contact__icon{margin-right:22px;}footer .contact__icon path{fill:currentColor;}footer .contact__title{line-height:1;margin-bottom:5px;}footer .contact__link{line-height:1;opacity:0.2;font-size:inherit;}footer .address{max-width:260px;font-size:15px;line-height:1.6;}@media (max-width: 768px){footer .address{max-width:100%;}}footer .address__title{font-weight:700;}footer .address__content{font-weight:400;color:var(--descriptionColor);}footer .lp-socials>li{margin-bottom:16px;}footer .lp-socials>li:not(:last-child){padding-right:16px;}footer .lp-socials.lp-socials--dark .lp-socials__link{background-color:#D6556E;border-color:#D6556E;color:#ffffff;}@media (hover: hover) and (pointer: fine){footer .lp-socials.lp-socials--dark .lp-socials__link:hover{background-color:#ffffff;color:#D6556E;border-color:#fff;}}footer .footer__disclaimers{padding-top:24px;padding-bottom:24px;}footer .footer__disclaimers .disclaimer-item{color:inherit;}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
34ox='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
34699 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
3471 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;
34-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;
34height: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);}} 35 </style> 36 <style id="custom-style-css">.pagination-style-1 li a{color:rgba(88, 89, 91, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(0, 0, 0, 0)!important;}.pagination-style-1 li a:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(235, 100, 126, 1)!important;border-color:rgba(235, 100, 126, 1)!important;}.pagination-style-1 li.active a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(235, 100, 126, 1)!important;border-color:rgba(235, 100, 126, 1)!important;}.hyperlink-style-1{color:rgba(130, 133, 136, 1)!important;}.hyperlink-style-1:hover{color:rgba(26, 26, 26, 1)!important;}.hyperlink-style-2{color:rgba(255, 255, 255, 1)!important;}.hyperlink-style-2:hover{color:rgba(255, 255, 255, 0.8)!important;}.pagination-style-2 li a{color:rgba(255, 255, 255, 1)!important;background-color:rgba(255, 255, 255, 0)!important;border-color:rgba(255, 255, 255, 0)!important;}.pagination-style-2 li a:hover{color:rgba(88, 89, 91, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:#FFFFFF!important;}.pagination-style-2 li.active a{color:rgba(88, 89, 91, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:#FFFFFF!important;}.button-style-2{color:rgba(255, 255, 255, 1)!important;background-color:rgba(0, 0, 0, 0)!important;border-color:rgba(255, 255, 255, 1)!important;}.button-style-2:hover{color:rgba(235, 100, 126, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(255, 255, 255, 1)!important;}.social_icons-style-3 a{border-color:rgba(235, 100, 126, 1)!important;background-color:rgba(235, 100, 126, 1)!important;color:rgba(255, 255, 255, 1)!important;}.social_icons-style-3 a:hover{border-color:rgba(235, 100, 126, 1)!important;background-color:rgba(255, 255, 255, 0)!important;color:rgba(235, 100, 126, 1)!important;}.social_icons-style-3 a i{color:inherit!important;}
36.social_icons-style-3 a svg,.social_icons-style-3 a svg path{fill:currentColor!important;}.button-style-3{color:rgba(255, 255, 255, 1)!important;background-color:rgba(235, 100, 126, 1)!important;border-color:rgba(235, 100, 126, 1)!important;}.button-style-3:hover{color:rgba(235, 100, 126, 1)!important;background-color:rgba(255, 255, 255, 1)!important;border-color:rgba(235, 100, 126, 1)!important;}.hyperlink-style-3{color:rgba(235, 100, 126, 1)!important;}.hyperlink-style-3:hover{color:rgba(214, 85, 110, 1)!important;}.social_icons-style-4 a{border-color:rgba(255, 255, 255, 1)!important;background-color:#FFFFFF!important;color:rgba(235, 100, 126, 1)!important;}.social_icons-style-4 a:hover{border-color:#FFFFFF!important;background-color:rgba(235, 100, 126, 0)!important;color:#FFFFFF!important;}.social_icons-style-4 a i{color:inherit!important;}.social_icons-style-4 a svg,.social_icons-style-4 a svg path{fill:currentColor!important;}.button-style-4{color:rgba(235, 100, 126, 1)!important;background-color:#FFFFFF!important;border-color:rgba(235, 100, 126, 1)!important;}.button-style-4:hover{color:#FFFFFF!important;background-color:rgba(235, 100, 126, 1)!important;border-color:rgba(235, 100, 126, 1)!important;}.button-style-7{color:rgba(235, 100, 126, 1)!important;background-color:rgba(255, 255, 255, 0)!important;border-color:rgba(235, 100, 126, 1)!important;}.button-style-7:hover{color:rgba(255, 255, 255, 1)!important;background-color:rgba(235, 100, 126, 1)!important;border-color:rgba(235, 100, 126, 1)!important;}</style> 37 <!-- LP Consent bootstrap: blocking; resolves consent state, pushes Consent Mode 38 defaults, and dynamically loads the locale + main (and banner if needed). --> 39
39<script src="https://cdn.luxurypresence.com/scripts/lp-consent/latest/lp-consent-boot.js" data-website-id="6c769009-9c3a-4f12-85ed-938263bb2536"></script>
39 40 41 42
42<script> 43 (function utmParse() { 44 const url = new URL(window.location.href); 45 if (url.search) { 46 const utm = url.search.split(/\?|&/g).reduce((acc, current) => { 47 const matched = current.match(/utm_(content|campaign|medium|source|term|id)|gclid/g); 48 if (matched) { 49 acc[matched[0]] = current.replace(`${matched[0]}=`, ''); 50 } 51 return acc; 52 }, {}); 53 if (Object.keys(utm).length) { 54 window.localStorage.setItem('utm_vars', JSON.stringify(utm)); 55 } else { 56 // Remove old utm vars 57 window.localStorage.removeItem('utm_vars'); 58 } 59 } 60 // Set referrer in local storage 61 // This is meant to be stored once to avoid self-referrals and to have the first referrer only. 62 if (!window.localStorage.getItem('referrer')) { 63 // Capture the Referrer URL 64 const referrer = document.referrer; 65 if (referrer) { 66 // Only store the referrer if it comes from outside the current domain (to avoid self-referrals) 67 const currentDomain = window.location.hostname; 68 const referrerDomain = new URL(referrer).hostname; 69 70 if (referrerDomain !== currentDomain) { 71 // Store it in localStorage 72 localStorage.setItem('referrer', referrer); 73 } 74 } 75 } 76 })(); 77 </script>
77 78 <meta name="google-site-verification" content="Pz2r9TNQBb38_fLWxeYTZntKZz8yK4pIcrLEsdPXUKI" /> 79 80<!-- Google Tag Manager -->
81<script>
vendor: 327 bytes, lines 81-85
81(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 82new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 83j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 84'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 85})(window,document,'script','dataLayer','
85GTM-TXMZ2W9K
vendor: 3 bytes, line 85
85');
85</script>
85 86<!-- End Google Tag Manager --> 87 88
89<script type="application/ld+json"> 90{ 91 "@context": "https://schema.org", 92 "@type": "RealEstateAgent", 93 "name": "Dora Puig", 94 "image": "https://res.cloudinary.com/luxuryp/images/w_1920,c_limit,f_auto,q_auto/twq7vgxtwjxpvwfalvr7/dora-puig", 95 "@id": "", 96 "url": "https://dorapuig.com/", 97 "telephone": "(305) 613-2118", 98 "address": { 99 "@type": "PostalAddress", 100 "streetAddress": "1680 Michigan Avenue, Suite 100", 101 "addressLocality": "Miami Beach", 102 "addressRegion": "FL", 103 "postalCode": "33139", 104 "addressCountry": "US" 105 } , 106 "sameAs": [ 107 "https://www.instagram.com/dorapuig", 108 "https://www.facebook.com/dora.puig", 109 "https://twitter.com/DoraPuig", 110 "https://www.linkedin.com/in/dorapuig/", 111 "https://www.youtube.com/channel/UCsKvgBA3ohzp446SYchLYMw", 112 "https://www.pinterest.com/dorapuig/", 113 "https://dorapuig.tumblr.com/", 114 "https://dorapuig.com/" 115 ] 116} 117</script>
117 118 119<!-- Google tag (gtag.js) -->
vendor: 64 bytes, line 119
119 <script async src="https://www.googletagmanager.com/gtag/js?id=
119AW-11428080761
vendor: 12 bytes, line 119
119"></script>
119<script>
vendor: 127 bytes, line 119
119window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '
119AW-11428080761
vendor: 4 bytes, line 119
119');
119</script>
119 120
121<script> gtag('config', 'AW-11428080761/NMA6CPbp1I8ZEPnYqskq', { 'phone_conversion_number': '(305) 613-2118' }); </script>
121 122 <!-- GOOGLE TRANSLATE STYLES are moved to external CSS --> 123</head> 124<body> 125 <div id="google_translate_element" style="display: none"></div> 126 127 <nav id="global-navbar" data-el-id="a295f203-2abc-4771-bec2-4150c25392f8"> 128 <div class="redesign"> 129 <div class="content-container header"> 130 <div class="lp-container header__container"> 131 <div class="navbar"> 132 <div class="logo"> 133 <a href="/" class="logo__link"> 134 135 <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/twq7vgxtwjxpvwfalvr7" 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/twq7vgxtwjxpvwfalvr7 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/twq7vgxtwjxpvwfalvr7 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/twq7vgxtwjxpvwfalvr7 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/twq7vgxtwjxpvwfalvr7 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/twq7vgxtwjxpvwfalvr7 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/twq7vgxtwjxpvwfalvr7 3456w" class="logo__img light" alt=""> 136 137 <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/r6p4uupflf3jtxombe18" 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/r6p4uupflf3jtxombe18 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/r6p4uupflf3jtxombe18 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/r6p4uupflf3jtxombe18 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/r6p4uupflf3jtxombe18 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/r6p4uupflf3jtxombe18 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/r6p4uupflf3jtxombe18 3456w" class="logo__img dark" alt=""> 138 139 </a> 140 </div> 141 <div class="navigation navigation--small-items"> 142 <ul> 143 <li class="navigation__item wow fadeInUp" data-wow-delay="0.0s"> 144 <a href="/about" class="lp-btn navigation__link button-style-2"><span>Meet Dora</span></a> 145 </li> 146 <li class="navigation__item wow fadeInUp" data-wow-delay="0.1s"> 147 <a href="/properties/sale" class="lp-btn navigation__link button-style-2"><span>Premium Collection</span></a> 148 </li> 149 <li class="navigation__item wow fadeInUp" data-wow-delay="0.2s"> 150 <a href="https://dorapuig.com/home-search/listings?sortBy=STATUS_CHANGE_TIMESTAMP&sortDirection=DESC&propertyType=%5B%22COMMERCIAL%22%2C%22CONDO%22%2C%22CO_OP%22%2C%22LAND%22%2C%22MANUFACTURED_MOBILE%22%2C%22MULTI_FAMILY%22%2C%22OTHER%22%2C%22RESIDENTIAL%22%2C%22TOWNHOUSE%22%5D&listingStatus=%5B%22ACTIVE%22%2C%22ACTIVE_UNDER_CONTRACT%22%2C%22PENDING%22%5D&center=%7B%22lat%22%3A25.79122605768349%2C%22lng%22%3A-80.1389765%7D&zoom=11&boundary=%5B%5B%5B26.050912642875875%2C-80.54821722265625%5D%2C%5B26.050912642875875%2C-79.72973577734375%5D%2C%5B25.53096946343985%2C-79.72973577734375%5D%2C%5B25.53096946343985%2C-80.54821722265625%5D%2C%5B26.050912642875875%2C-80.54821722265625%5D%5D%5D&omnibox=&keyword=&page=1&limit=12&isLease=false" class="lp-btn navigation__link button-style-2"><span>Property Search</span></a> 151 </li> 152 <li class="navigation__item wow fadeInUp" data-wow-delay="0.3s"> 153 <a href="/properties/sold" class="lp-btn navigation__link button-style-2"><span>Notable Sales</span></a> 154 </li> 155 <li class="navigation__item wow fadeInUp" data-wow-delay="0.4s"> 156 <a href="/press" class="lp-btn navigation__link button-style-2"><span>Press</span></a> 157 </li> 158 <li class="navigation__item wow fadeInUp" data-wow-delay="0.5s"> 159 <a data-type="CONTACT_US" class="lp-btn navigation__link button-style-2"><span>Contact</span></a> 160 </li> 161 </ul> 162 <button type="button" class="hamburger-component hamburger">
163 <span class="hamburger__bars"></span> 164 </button> 165 </div> 166 167 </div> 168 </div> 169 </div> 170</div> 171 </nav> 172 <div id="global-sidemenu" class="sidemenu" data-el-id="53b4899e-e2bc-4b6a-96b7-7224ae596923"> 173 <div class="sidemenu__container" style='--accentColor: #EB647E'> 174 <button class="sidemenu__toggle toggle"></button> 175 176 <div class="sidemenu__wrapper"> 177 <div class="sidemenu__nav"> 178 <ul class="navigation"> 179 <li class="navigation__item" > 180 <a href="/" class="navigation__link fade-in" >Home</a> 181 </li> 182 <li class="navigation__item" > 183 <a href="/about" class="navigation__link fade-in" >Meet Dora</a> 184 </li> 185 <li class="navigation__item" > 186 <a href="/properties/sale" class="navigation__link fade-in" >Premium Collection</a> 187 </li> 188 <li class="navigation__item" > 189 <a href="/properties/sold" class="navigation__link fade-in" >Notable Sales</a> 190 </li> 191 <li class="navigation__item" > 192 <a href="/home-search/listings?search_type=envelope&south=25.67834260772903&west=-80.38857214208984&north=25.904002138770615&east=-79.88938085791015&property_type%5B%5D=Co-op&property_type%5B%5D=Condo&property_type%5B%5D=Land&property_type%5B%5D=Multi-family&property_type%5B%5D=Manufactured&property_type%5B%5D=Residential&property_type%5B%5D=Townhouse&property_type%5B%5D=Other&property_type%5B%5D=Co-op&property_type%5B%5D=Condo&property_type%5B%5D=Land&property_type%5B%5D=Multi-family&property_type%5B%5D=Manufactured&property_type%5B%5D=Residential&property_type%5B%5D=Townhouse&property_type%5B%5D=Other&status%5B%5D=Active&status_days%5BActive%5D=36500&status%5B%5D=Under+Contract&status_days%5BUnder+Contract%5D=36500&status%5B%5D=Pending&status_days%5BPending%5D=36500&status_days%5BSold%5D=180&mailer_schedule=instant&order=price%3Adesc&page=1" class="navigation__link fade-in" >Property Search</a> 193 </li> 194 <li class="navigation__item sub-nav-container"> 195 <a href="#" class="navigation__link fade-in">Neighborhoods</a> 196 <ul class="sub-nav"> 197 <li class="sub-nav__item"><a href="/neighborhoods" class="sub-nav__link feature">All Neighborhoods</a></li> 198 <li class="sub-nav__item"><a href="/neighborhoods/aventura" class="sub-nav__link feature">Aventura</a></li> 199 <li class="sub-nav__item"><a href="/neighborhoods/bal-harbour-bay-harbor" class="sub-nav__link feature">Bal Harbour / Bay Harbor</a></li> 200 <li class="sub-nav__item"><a href="/neighborhoods/brickell" class="sub-nav__link feature">Brickell</a></li> 201 <li class="sub-nav__item"><a href="/neighborhoods/coconut-grove" class="sub-nav__link feature">Coconut Grove</a></li> 202 <li class="sub-nav__item"><a href="/neighborhoods/coral-gables" class="sub-nav__link feature">Coral Gables</a></li> 203 <li class="sub-nav__item"><a href="/neighborhoods/downtown-biscayne-coridor" class="sub-nav__link feature">Downtown / Biscayne Coridor</a></li> 204 <li class="sub-nav__item"><a href="/neighborhoods/fisher-island" class="sub-nav__link feature">Fisher Island</a></li> 205 <li class="sub-nav__item"><a href="/neighborhoods/indian-creek-island" class="sub-nav__link feature">Indian Creek Island</a></li> 206 <li class="sub-nav__item"><a href="/neighborhoods/key-biscayne" class="sub-nav__link feature">Key Biscayne</a></li> 207 <li class="sub-nav__item"><a href="/neighborhoods/miami" class="sub-nav__link feature">Miami</a></li> 208 <li class="sub-nav__item"><a href="/neighborhoods/miami-river" class="sub-nav__link feature">Miami River</a></li> 209 <li class="sub-nav__item"><a href="/neighborhoods/mid-beach" class="sub-nav__link feature">Mid-Beach</a></li> 210 <li class="sub-nav__item"><a href="/neighborhoods/mid-town" class="sub-nav__link feature">Mid Town</a></li> 211 <li class="sub-nav__item"><a href="/neighborhoods/north-beach" class="sub-nav__link feature">North Beach</a></li> 212 <li class="sub-nav__item"><a href="/neighborhoods/south-beach" class="sub-nav__link feature">South Beach</a></li> 213 <li class="sub-nav__item"><a href="/neighborhoods/sunny-isles-beach" class="sub-nav__link feature">Sunny Isles Beach</a></li> 214 <li class="sub-nav__item"><a href="/neighborhoods/surfside" class="sub-nav__link feature">Surfside</a></li> 215 <li class="sub-nav__item"><a href="https://dorapuig.com/neighborhoods/venetian-islands" class="sub-nav__link feature">Venetian Islands</a></li> 216 </ul> 217 </li> 218 <li class="navigation__item" > 219 <a href="/team" class="navigation__link fade-in" >Luxe Living Agents</a> 220 </li> 221 <li class="navigation__item" > 222 <a href="/press" class="navigation__link fade-in" >Press</a> 223 </li> 224 <li class="navigation__item" > 225 <a href="/testimonials" class="navigation__link fade-in" >Testimonials</a> 226 </li> 227 <li class="navigation__item" > 228 <a href="/property-lounges" class="navigation__link fade-in" >Property Lounges</a> 229 </li> 230 <li class="navigation__item sub-nav-container"> 231 <a href="#" class="navigation__link fade-in">Developments</a> 232 <ul class="sub-nav"> 233 <li class="sub-nav__item"><a href="/developments" class="sub-nav__link feature">All Developments</a></li> 234 <li class="sub-nav__item"><a href="/aventura" class="sub-nav__link feature">Aventura</a></li> 235 <li class="sub-nav__item"><a href="/bal-harbour" class="sub-nav__link feature">Bal Harbour</a></li> 236 <li class="sub-nav__item">
236<a href="/bay-harbor" class="sub-nav__link feature">Bay Harbor</a></li> 237 <li class="sub-nav__item"><a href="/brickell" class="sub-nav__link feature">Brickell</a></li> 238 <li class="sub-nav__item"><a href="/coconut-grove" class="sub-nav__link feature">Coconut Grove</a></li> 239 <li class="sub-nav__item"><a href="/coral-gables" class="sub-nav__link feature">Coral Gables</a></li> 240 <li class="sub-nav__item"><a href="/downtown-miami" class="sub-nav__link feature">Downtown Miami</a></li> 241 <li class="sub-nav__item"><a href="/edgewater" class="sub-nav__link feature">Edgewater</a></li> 242 <li class="sub-nav__item"><a href="/fisher-island" class="sub-nav__link feature">Fisher Island</a></li> 243 <li class="sub-nav__item"><a href="/hallandale-beach" class="sub-nav__link feature">ââHallandale Beach</a></li> 244 <li class="sub-nav__item"><a href="/key-biscayne" class="sub-nav__link feature">Key Biscayne</a></li> 245 <li class="sub-nav__item"><a href="/mid-north-beach" class="sub-nav__link feature">Mid-North Beach</a></li> 246 <li class="sub-nav__item"><a href="/midtown" class="sub-nav__link feature">Midtown</a></li> 247 <li class="sub-nav__item"><a href="/south-beach" class="sub-nav__link feature">South Beach</a></li> 248 <li class="sub-nav__item"><a href="/sunny-isles" class="sub-nav__link feature">Sunny Isles</a></li> 249 <li class="sub-nav__item"><a href="/surfside" class="sub-nav__link feature">Surfside</a></li> 250 <li class="sub-nav__item"><a href="/wynwood" class="sub-nav__link feature">Wynwood</a></li> 251 <li class="sub-nav__item"><a href="/brickell-key" class="sub-nav__link feature">Brickell Key</a></li> 252 <li class="sub-nav__item"><a href="/design-district" class="sub-nav__link feature">Design District</a></li> 253 <li class="sub-nav__item"><a href="/hollywood" class="sub-nav__link feature">Hollywood</a></li> 254 <li class="sub-nav__item"><a href="/miami-river" class="sub-nav__link feature">Miami River</a></li> 255 <li class="sub-nav__item"><a href="/north-bay-village" class="sub-nav__link feature">North Bay Village</a></li> 256 <li class="sub-nav__item"><a href="/north-bay-beach" class="sub-nav__link feature">North Bay Beach</a></li> 257 </ul> 258 </li> 259 <li class="navigation__item"> 260 <a data-type="CONTACT_US" class="navigation__link fade-in">Contact</a> 261 </li> 262 </ul> 263 </div> 264 </div> 265</div> 266 267 </div> 268 <div id="global-mobile-contact" class="mobile-contact-wrapper" data-el-id="befe5af2-a6ca-4119-924a-a85d96d36b51"> 269 <div class="btn-holder" 270style=" 271--backgroundColor: rgba(20, 20, 20, 1); 272--textColor: rgba(255, 255, 255, 1); 273--pillTextColor: rgba(26, 26, 26, 1); 274--pillBackgroundColor: rgba(255, 255, 255, 1);"> 275 276 <button type="button" class="connect-btn lp-ico lp-ico-arrow-top visible">Let's Connect</button> 277</div> 278 279 280<div class="pop-up" style="--backgroundColor: rgba(20, 20, 20, 1); --textColor: rgba(255, 255, 255, 1);"> 281 <div class="lp-container"> 282 <form data-type="contact-form" class="contact-form"> 283 <div class="contact-form__container"> 284 <h3 class="lp-h3">Leave a Message</h3> 285 286 <div class="contact-form__content"> 287 <div class="contact-form__inputs-container"> 288 <div class="contact-form__item"> 289 <input 290 id="__FullName" 291 type="text" name="name" 292 class="lp-input lp-input--light" 293 required 294 placeholder="Full Name"> 295 </div> 296 <div class="contact-form__item"> 297 <input 298 id="__Email" 299 type="email" name="email" 300 class="lp-input js-email-input lp-input--light" 301 required 302 placeholder="Email"> 303 </div> 304 <div class="contact-form__item"> 305 <input
306 class="lp-input lp-input--light" 307 type="tel" 308 placeholder="Phone" 309 id="__Phone" 310 name="phone" 311 required> 312 </div> 313 314 <div class="contact-form__item input-group-select"> 315 <select name="interest" id="-field-interest" placeholder="Interest" 316 class="lp-input dropdown-select js-select js-form-element lp-input--light" required> 317 <option value="" disabled selected data-label="Interest">Interested in...</option> 318 <option value="Selling & Buying">Selling & Buying</option> 319 <option value="Selling">Selling</option> 320 <option value="Buying">Buying</option> 321 <option value="Renting">Renting</option> 322 <option value="Other">Other</option> 323 </select> 324 <label for="-field-interest" class="lp-label sr-only">Interest</label> 325 </div> 326 327 <div class="contact-form__item"> 328 <textarea 329 name="message" 330 rows="4" 331 id="__Message" 332 class="lp-input lp-input--light" 333 placeholder="Message" 334 required></textarea> 335 </div> 336 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 337 <label class='lp-tcr-content'> 338 <span class='lp-tcr-checkbox'> 339 <input 340 type='checkbox' 341 id='-termsAccepted' 342 name='termsAccepted' 343 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 344 oninput="this.setCustomValidity('')" 345 required 346 /></span> 347 <span class='lp-tcr-message'> 348 349 I agree to be contacted by 350 Dora Puig 351 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 352 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 353 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 354 </span> 355 </label> 356 357</div> 358 <button type="submit" class="lp-btn lp-btn--filled lp-btn--dark submit contact-form__item">Submit</button> 359 360 <div class="lp-h-pot"> 361 <input id="__newsSignMiddleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 362 </div> 363 364 <input style="display: none;" type="text" name="source" value="CONTACT_INQUIRY" /> 365 <input type="hidden" name="button_text" value="Let's Connect"> 366 </div> 367 </div> 368 </div> 369 370 371 <div class="success-block"> 372 <h3 class="lp-h3 success-message">Thank you for your message. We will be in touch with you shortly.</h3> 373 374 </div> 375 </form> 376 377 <button type="button" class="close-btn lp-ico lp-ico-close"></button> 378 379 380 </div> 381</div> 382 383 384 </div> 385 <section class="image-section is-font-color-light is-background-color-light" id="section-0d0a8808-b1c0-4194-89e6-801b695d396d" data-el-id="e6c6941b-dd32-4d6b-b4aa-56593f2d58bb"> 386 <div class="redesign custom-intro"> 387 <div class="container"> 388 <h1 class="custom-intro__title">Notable Sales</h1> 389 390 </div> 391</div> 392 393</section> 394<section id="section-4abb62b6-c414-4e20-8208-1eb09941e43b" class="solid-section is-font-color-dark is-background-color-light" data-el-id="e6cac284-9239-49a8-a7fb-d6988dc28c95">
395<script type="text/x-handlebars-template" class="gridItem pagination-script"><li class="property-list__item feature"> 396 <a class="property-list__item-link" href="{{#if fromMLS}}/home-search/listings/{{id}}{{^}}/properties/{{slug}}{{/if}}" {{#if fromMLS}} data-turbolinks="false" {{/if}}> 397 <div class="property-list__img"> 398 {{{mediaImage media.[0]}}} 399 {{#if openHouseHours}} 400 <div class="open-house label-house bf1">Open House: {{openHouseHours}}</div> 401 {{/if}} 402 </div> 403 <span class="property-list__label"> 404 {{formatPropertyStatus status}} 405 </span> 406 <div class="property-list__text"> 407 <h4 class="serif">{{name}}</h4> 408 {{#if privateAddress}} 409 <p> 410 Call for Address 411 </p> 412 {{else}} 413 {{#if addressLine1}} 414 <p> 415 {{addressLine1}} 416 {{#if addressLine12}}{{addressLine12}}{{/if}} 417 </p> 418 {{/if}} 419 {{#if (or addressCity addressState postalCode)}} 420 <p> 421 {{#if addressCity}}<span>{{addressCity}}{{#if addressState}}, {{/if}}</span>{{/if}} 422 {{#if addressState}}<span>{{addressState}}</span>{{/if}} 423 {{#if postalCode}}<span>{{postalCode}}</span>{{/if}} 424 </p> 425 {{/if}} 426 {{/if}} 427 <p class="property-list__facilities"> 428 {{#if bedroomCount}} 429 <span>{{bedroomCount}} BD</span> 430 {{/if}} 431 {{#if fullBathCount}} 432 <span>{{fullBathCount}} FULL BA</span> 433 {{/if}} 434 {{#if halfBathCount}} 435 <span>{{halfBathCount}} HALF BA</span> 436 {{/if}} 437 {{#if threeQuarterBathCount}} 438 <span>{{threeQuarterBathCount}} THREE-QUARTER BA</span> 439 {{/if}} 440 </p> 441 {{#if (or lotAreaSize livingSpaceSize)}} 442 <p class="property-list__facilities"> 443 {{#if (lpFormatNumber livingSpaceSize)}} 444 <span>{{lpFormatNumber livingSpaceSize}} {{formatAreaUnit livingSpaceUnits}}</span> 445 {{/if}} 446 {{#if (lpFormatNumber lotAreaSize)}} 447 <span>{{lpFormatNumber lotAreaSize}} {{formatAreaUnit lotAreaUnits}}</span> 448 {{/if}} 449 </p> 450 {{/if}} 451 452 <h5 style="text-transform: capitalize"> 453 {{formatPropertyPrice this "standard"}} 454 </h5> 455 </div> 456 </a> 457 458 459 <div class="property-list__hover"> 460 <a href="{{#if fromMLS}}/home-search/listings/{{id}}{{^}}/properties/{{slug}}{{/if}}" {{#if fromMLS}} data-turbolinks="false" {{/if}} class="hover-link"></a> 461 <div class="property-list__buttons"> 462 <a class="property-list__view" href="{{#if fromMLS}}/home-search/listings/{{id}}{{^}}/properties/{{slug}}{{/if}}" {{#if fromMLS}} data-turbolinks="false" {{/if}}> 463 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 464 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 465 </a> 466 <div class="property-list__share"> 467 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 468 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 469 <ul class="socials socials--block-dark"> 470 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/{{slug}}" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 471 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/{{slug}}&text={{name}}" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 472 <li><a href="mailto:?subject={{name}}&body={{name}} - https://dorapuig.com/properties/{{slug}}" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 473 </ul> 474 </div> 475 </div> 476 </div> 477</li> 478</script>
478 479<div class="redesign property-list-section"> 480 <div> 481 <div class="container title-container"> 482 <h2 class="serif">Properties List</h2> 483 484 </div> 485 <div class="container"> 486 <ul class="property-list data-container"> 487 <li class="property-list__item feature"> 488 <a class="property-list__item-link" href="/properties/4736-n-bay-rd-miami-beach-fl-33140-a11307492" > 489 <div class="property-list__img"> 490 <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/xtluk9jzyevyb1wlwjx0" 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/xtluk9jzyevyb1wlwjx0 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/xtluk9jzyevyb1wlwjx0 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/xtluk9jzyevyb1wlwjx0 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/xtluk9jzyevyb1wlwjx0 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/xtluk9jzyevyb1wlwjx0 3456w" alt="" loading="lazy"> 491 </div> 492 <span class="property-list__label"> 493 Sold 494 </span> 495 <div class="property-list__text"> 496 <h4 class="serif">4736 N Bay Rd</h4> 497 <p> 498 4736 N Bay Rd 499 500 </p> 501 <p> 502 <span>Miami Beach, </span> 503 <span>FL</span> 504 <span>33140</span> 505 </p> 506 <p class="property-list__facilities"> 507 <span>9 BD</span> 508 </p> 509 <p class="property-list__facilities"> 510 <span>12,552 Sq.Ft.</span> 511 <span>25,448 Sq.Ft.</span> 512 </p> 513 514 <h5 style="text-transform: capitalize"> 515 $72,250,000 516 </h5> 517 </div> 518 </a> 519 520 521 <div class="property-list__hover"> 522 <a href="/properties/4736-n-bay-rd-miami-beach-fl-33140-a11307492" class="hover-link"></a> 523 <div class="property-list__buttons"> 524 <a class="property-list__view" href="/properties/4736-n-bay-rd-miami-beach-fl-33140-a11307492" > 525 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 526 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 527 </a> 528 <div class="property-list__share"> 529 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 530 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 531 <ul class="socials socials--block-dark"> 532 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/4736-n-bay-rd-miami-beach-fl-33140-a11307492" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 533 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/4736-n-bay-rd-miami-beach-fl-33140-a11307492&text=4736 N Bay Rd" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 534 <li><a href="/cdn-cgi/l/email-protection#39064a4c5b535c5a4d040d0e0a0f1977197b5840196b5d1f5b565d40040d0e0a0f1977197b5840196b5d191419514d4d494a0316165d564b58494c505e175a565416494b56495c4b4d505c4a160d0e0a0f1457145b5840144b5d145450585450145b5c585a51145f55140a0a080d09145808080a090e0d000b" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 535 </ul> 536 </div> 537 </div> 538 </div> 539 </li> 540 <li class="property-list__item feature"> 541 <a class="property-list__item-link" href="/properties/270-s-hibiscus-dr-miami-beach-fl-33139-7917517807c15f27facd059a4d34f4be" > 542 <div class="property-list__img"> 543 <img src="https://dlajgvw9htjpb.cloudfront.net/cms/a2ac92a2-c8ef-4bed-917e-1ed69140fa8a/A12070710/2069911705999546205.jpg" alt="" loading="lazy"> 544 </div>
545 <span class="property-list__label"> 546 Sold 547 </span> 548 <div class="property-list__text"> 549 <h4 class="serif">270 S Hibiscus Dr</h4> 550 <p> 551 270 S Hibiscus Dr 552 553 </p> 554 <p> 555 <span>Miami Beach, </span> 556 <span>FL</span> 557 <span>33139</span> 558 </p> 559 <p class="property-list__facilities"> 560 <span>7 BD</span> 561 <span>7 FULL BA</span> 562 <span>1 HALF BA</span> 563 </p> 564 <p class="property-list__facilities"> 565 <span>10,500 Sq.Ft.</span> 566 <span>0.48 Acres</span> 567 </p> 568 569 <h5 style="text-transform: capitalize"> 570 $51,500,000 571 </h5> 572 </div> 573 </a> 574 575 576 <div class="property-list__hover"> 577 <a href="/properties/270-s-hibiscus-dr-miami-beach-fl-33139-7917517807c15f27facd059a4d34f4be" class="hover-link"></a> 578 <div class="property-list__buttons"> 579 <a class="property-list__view" href="/properties/270-s-hibiscus-dr-miami-beach-fl-33139-7917517807c15f27facd059a4d34f4be" > 580 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 581 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 582 </a> 583 <div class="property-list__share"> 584 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 585 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 586 <ul class="socials socials--block-dark"> 587 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/270-s-hibiscus-dr-miami-beach-fl-33139-7917517807c15f27facd059a4d34f4be" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 588 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/270-s-hibiscus-dr-miami-beach-fl-33139-7917517807c15f27facd059a4d34f4be&text=270 S Hibiscus Dr" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 589 <li><a href="/cdn-cgi/l/email-protection#3c034f495e56595f48010e0b0c1c6f1c74555e554f5f494f1c784e1a5e535845010e0b0c1c6f1c74555e554f5f494f1c784e1c111c5448484c4f06131358534e5d4c49555b125f5351134c4e534c594e4855594f130e0b0c114f1154555e554f5f494f11584e1151555d5155115e595d5f54115a50110f0f0d0f05110b050d0b090d0b040c0b5f0d095a0e0b5a5d5f580c09055d08580f085a085e59" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 590 </ul> 591 </div> 592 </div> 593 </div> 594 </li> 595 <li class="property-list__item feature"> 596 <a class="property-list__item-link" href="/properties/6800-fisher-island-unit-6802-ph-2-miami-beach-fl-33109-a11018128" > 597 <div class="property-list__img"> 598 <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/nntapzhvmphwp6rylwuy" 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/nntapzhvmphwp6rylwuy 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/nntapzhvmphwp6rylwuy 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/nntapzhvmphwp6rylwuy 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/nntapzhvmphwp6rylwuy 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/nntapzhvmphwp6rylwuy 3456w" alt="" loading="lazy"> 599 </div>
600 <span class="property-list__label"> 601 Sold 602 </span> 603 <div class="property-list__text"> 604 <h4 class="serif">Palazzo Della Luna PH-2</h4> 605 <p> 606 6800 Fisher Island #PH6802 607 608 </p> 609 <p> 610 <span>Miami Beach, </span> 611 <span>FL</span> 612 <span>33109</span> 613 </p> 614 <p class="property-list__facilities"> 615 <span>7 BD</span> 616 <span>8 FULL BA</span> 617 <span>2 HALF BA</span> 618 </p> 619 <p class="property-list__facilities"> 620 <span>10,194 Sq.Ft.</span> 621 </p> 622 623 <h5 style="text-transform: capitalize"> 624 $40,000,000 625 </h5> 626 </div> 627 </a> 628 629 630 <div class="property-list__hover"> 631 <a href="/properties/6800-fisher-island-unit-6802-ph-2-miami-beach-fl-33109-a11018128" class="hover-link"></a> 632 <div class="property-list__buttons"> 633 <a class="property-list__view" href="/properties/6800-fisher-island-unit-6802-ph-2-miami-beach-fl-33109-a11018128" > 634 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 635 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 636 </a> 637 <div class="property-list__share"> 638 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 639 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 640 <ul class="socials socials--block-dark"> 641 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/6800-fisher-island-unit-6802-ph-2-miami-beach-fl-33109-a11018128" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 642 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/6800-fisher-island-unit-6802-ph-2-miami-beach-fl-33109-a11018128&text=Palazzo Della Luna PH-2" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 643 <li><a href="/cdn-cgi/l/email-protection#231c505641494640571e73424f4259594c0367464f4f42036f564d4203736b0e1105414c475a1e73424f4259594c0367464f4f42036f564d4203736b0e11030e034b57575350190c0c474c514253564a440d404c4e0c53514c534651574a46500c151b13130e454a504b46510e4a504f424d470e564d4a570e151b13110e534b0e110e4e4a424e4a0e414642404b0e454f0e101012131a0e42121213121b12111b" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 644 </ul> 645 </div> 646 </div> 647 </div> 648 </li> 649 <li class="property-list__item feature"> 650 <a class="property-list__item-link" href="/properties/46-star-island-dr" > 651 <div class="property-list__img"> 652 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/de1b2210-57e0-4174-965d-ce669eaef82f" 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/de1b2210-57e0-4174-965d-ce669eaef82f 960w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/de1b2210-57e0-4174-965d-ce669eaef82f 1280w" alt="" loading="lazy"> 653 </div> 654 <span class="property-list__label"> 655 Sold 656 </span> 657 <div class="property-list__text"> 658 <h4 class="serif">46 Star Island Drive</h4> 659 <p> 660 46 Star Island Dr 661 662 </p> 663 <p> 664 <span>Miami Beach, </span> 665 <span>FL</span> 666 <span>33139</span> 667 </p> 668 <p class="property-list__facilities"> 669 </p> 670 671 <h5 style="text-transform: capitalize"> 672 $39,000,000 673 </h5> 674 </div> 675 </a> 676 677 678 <div class="property-list__hover"> 679 <a href="/properties/46-star-island-dr" class="hover-link"></a> 680 <div class="property-list__buttons"> 681 <a class="property-list__view" href="/properties/46-star-island-dr" > 682 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 683 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 684 </a> 685 <div class="property-list__share"> 686 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 687 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 688 <ul class="socials socials--block-dark"> 689 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/46-star-island-dr" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 690 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/46-star-island-dr&text=46 Star Island Drive" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 691 <li><a href="/cdn-cgi/l/email-protection#80bff3f5e2eae5e3f4bdb4b6a0d3f4e1f2a0c9f3ece1eee4a0c4f2e9f6e5a6e2efe4f9bdb4b6a0d3f4e1f2a0c9f3ece1eee4a0c4f2e9f6e5a0ada0e8f4f4f0f3baafafe4eff2e1f0f5e9e7aee3efedaff0f2eff0e5f2f4e9e5f3afb4b6adf3f4e1f2ade9f3ece1eee4ade4f2" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 692 </ul> 693 </div> 694 </div> 695 </div> 696 </li> 697 <li class="property-list__item feature"> 698 <a class="property-list__item-link" href="/properties/palazzo-del-sol-lph-7093" > 699 <div class="property-list__img"> 700 <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/e51a948e-acee-4ff0-a712-0a3ceee0d934" 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/e51a948e-acee-4ff0-a712-0a3ceee0d934 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/e51a948e-acee-4ff0-a712-0a3ceee0d934 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/e51a948e-acee-4ff0-a712-0a3ceee0d934 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/e51a948e-acee-4ff0-a712-0a3ceee0d934 2560w, https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85,fit=scale-down,width=3456/https://media-production.lp-cdn.com/media/e51a948e-acee-4ff0-a712-0a3ceee0d934 3456w" alt="" loading="lazy"> 701 </div>
702 <span class="property-list__label"> 703 Sold 704 </span> 705 <div class="property-list__text"> 706 <h4 class="serif">Palazzo Del Sol LPH 7093</h4> 707 <p> 708 7093 Fisher Island Drive 709 710 </p> 711 <p> 712 <span>Fisher Island, </span> 713 <span>FL</span> 714 <span>33109</span> 715 </p> 716 <p class="property-list__facilities"> 717 <span>7 BD</span> 718 <span>7 FULL BA</span> 719 <span>2 HALF BA</span> 720 </p> 721 <p class="property-list__facilities"> 722 <span>9,826 Sq.Ft.</span> 723 </p> 724 725 <h5 style="text-transform: capitalize"> 726 $36,000,000 727 </h5> 728 </div> 729 </a> 730 731 732 <div class="property-list__hover"> 733 <a href="/properties/palazzo-del-sol-lph-7093" class="hover-link"></a> 734 <div class="property-list__buttons"> 735 <a class="property-list__view" href="/properties/palazzo-del-sol-lph-7093" > 736 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 737 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 738 </a> 739 <div class="property-list__share"> 740 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 741 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 742 <ul class="socials socials--block-dark"> 743 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/palazzo-del-sol-lph-7093" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 744 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/palazzo-del-sol-lph-7093&text=Palazzo Del Sol LPH 7093" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 745 <li><a href="/cdn-cgi/l/email-protection#1a25696f78707f796e274a7b767b6060753a5e7f763a4975763a564a523a2d2a23293c78757e63274a7b767b6060753a5e7f763a4975763a564a523a2d2a23293a373a726e6e6a692035357e75687b6a6f737d34797577356a68756a7f686e737f69356a7b767b606075377e7f763769757637766a72372d2a2329" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 746 </ul> 747 </div> 748 </div> 749 </div> 750 </li> 751 <li class="property-list__item feature"> 752 <a class="property-list__item-link" href="/properties/68-la-gorce-cir-miami-beach-fl-us-33141-ac1c31bda45938a64c3021062b761dfd" > 753 <div class="property-list__img"> 754 <img src="https://dlajgvw9htjpb.cloudfront.net/cms/a2ac92a2-c8ef-4bed-917e-1ed69140fa8a/A11730545/8037140134819919009.jpg" alt="" loading="lazy"> 755 </div> 756 <span class="property-list__label"> 757 Sold 758 </span> 759 <div class="property-list__text"> 760 <h4 class="serif">68 La Gorce Circle</h4> 761 <p> 762 68 La Gorce Cir 763 764 </p> 765 <p> 766 <span>Miami Beach, </span> 767 <span>FL</span> 768 <span>33141</span> 769 </p> 770 <p class="property-list__facilities"> 771 <span>6 BD</span> 772 <span>6 FULL BA</span> 773 <span>1 HALF BA</span> 774 </p> 775 <p class="property-list__facilities"> 776 <span>5,340 Sq.Ft.</span> 777 <span>0.44 Acres</span> 778 </p> 779 780 <h5 style="text-transform: capitalize"> 781 $32,700,000 782 </h5> 783 </div> 784 </a> 785 786 787 <div class="property-list__hover"> 788 <a href="/properties/68-la-gorce-cir-miami-beach-fl-us-33141-ac1c31bda45938a64c3021062b761dfd" class="hover-link"></a> 789 <div class="property-list__buttons"> 790 <a class="property-list__view" href="/properties/68-la-gorce-cir-miami-beach-fl-us-33141-ac1c31bda45938a64c3021062b761dfd" > 791 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 792 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 793 </a> 794 <div class="property-list__share"> 795 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 796 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 797 <ul class="socials socials--block-dark"> 798 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/68-la-gorce-cir-miami-beach-fl-us-33141-ac1c31bda45938a64c3021062b761dfd" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 799 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/68-la-gorce-cir-miami-beach-fl-us-33141-ac1c31bda45938a64c3021062b761dfd&text=68 La Gorce Circle" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 800 <li><a href="/cdn-cgi/l/email-protection#f7c88482959d929483cac1cfd7bb96d7b098859492d7b49e85949b92d19598938ecac1cfd7bb96d7b098859492d7b49e85949b92d7dad79f83838784cdd8d89398859687829e90d994989ad8878598879285839e9284d8c1cfda9b96da9098859492da949e85da9a9e969a9eda959296949fda919bda8284dac4c4c6c3c6da9694c694c4c6959396c3c2cec4cf96c1c394c4c7c5c6c7c1c595c0c1c6939193" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 801 </ul> 802 </div> 803 </div> 804 </div> 805 </li> 806 <li class="property-list__item feature"> 807 <a class="property-list__item-link" href="/properties/6494-allison-rd-miami-beach-fl-33141-f37ced92a08d7a7d60dec0e6c7293a16" > 808 <div class="property-list__img"> 809 <img src="https://dlajgvw9htjpb.cloudfront.net/cms/a2ac92a2-c8ef-4bed-917e-1ed69140fa8a/A11738172/-8733479126026195810.jpg" alt="" loading="lazy"> 810 </div>
811 <span class="property-list__label"> 812 Sold 813 </span> 814 <div class="property-list__text"> 815 <h4 class="serif">6494 Allison Rd</h4> 816 <p> 817 6494 Allison Rd 818 819 </p> 820 <p> 821 <span>Miami Beach, </span> 822 <span>FL</span> 823 <span>33141</span> 824 </p> 825 <p class="property-list__facilities"> 826 <span>6 BD</span> 827 <span>8 FULL BA</span> 828 <span>1 HALF BA</span> 829 </p> 830 <p class="property-list__facilities"> 831 <span>0.37 Acres</span> 832 </p> 833 834 <h5 style="text-transform: capitalize"> 835 $31,021,000 836 </h5> 837 </div> 838 </a> 839 840 841 <div class="property-list__hover"> 842 <a href="/properties/6494-allison-rd-miami-beach-fl-33141-f37ced92a08d7a7d60dec0e6c7293a16" class="hover-link"></a> 843 <div class="property-list__buttons"> 844 <a class="property-list__view" href="/properties/6494-allison-rd-miami-beach-fl-33141-f37ced92a08d7a7d60dec0e6c7293a16" > 845 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 846 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 847 </a> 848 <div class="property-list__share"> 849 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 850 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 851 <ul class="socials socials--block-dark"> 852 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/6494-allison-rd-miami-beach-fl-33141-f37ced92a08d7a7d60dec0e6c7293a16" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 853 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/6494-allison-rd-miami-beach-fl-33141-f37ced92a08d7a7d60dec0e6c7293a16&text=6494 Allison Rd" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 854 <li><a href="/cdn-cgi/l/email-protection#ba85c9cfd8d0dfd9ce878c8e838e9afbd6d6d3c9d5d49ae8de9cd8d5dec3878c8e838e9afbd6d6d3c9d5d49ae8de9a979ad2cececac9809595ded5c8dbcacfd3dd94d9d5d795cac8d5cadfc8ced3dfc9958c8e838e97dbd6d6d3c9d5d497c8de97d7d3dbd7d397d8dfdbd9d297dcd69789898b8e8b97dc898dd9dfde8388db8a82de8ddb8dde8c8adedfd98adf8cd98d888389db8b8c" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 855 </ul> 856 </div> 857 </div> 858 </div> 859 </li> 860 <li class="property-list__item feature"> 861 <a class="property-list__item-link" href="/properties/6800-fisher-island-unit-6803-ph-3-miami-beach-fl-33109-a11020947" > 862 <div class="property-list__img"> 863 <img src="https://dq1niho2427i9.cloudfront.net/a2ac92a2-c8ef-4bed-917e-1ed69140fa8a/-1345604374.jpg" alt="" loading="lazy"> 864 </div> 865 <span class="property-list__label"> 866 Sold 867 </span> 868 <div class="property-list__text"> 869 <h4 class="serif">Palazzo Della Luna Penthouse 3</h4> 870 <p> 871 6800 Fisher Island Drive #PH6803 872 873 </p> 874 <p> 875 <span>Miami Beach, </span> 876 <span>FL</span> 877 <span>33109</span> 878 </p> 879 <p class="property-list__facilities"> 880 <span>4 BD</span> 881 <span>4 FULL BA</span> 882 <span>1 HALF BA</span> 883 </p> 884 <p class="property-list__facilities"> 885 <span>6,560 Sq.Ft.</span> 886 </p> 887 888 <h5 style="text-transform: capitalize"> 889 $30,000,000 890 </h5> 891 </div> 892 </a> 893 894 895 <div class="property-list__hover"> 896 <a href="/properties/6800-fisher-island-unit-6803-ph-3-miami-beach-fl-33109-a11020947" class="hover-link"></a> 897 <div class="property-list__buttons"> 898 <a class="property-list__view" href="/properties/6800-fisher-island-unit-6803-ph-3-miami-beach-fl-33109-a11020947" > 899 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 900 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 901 </a> 902 <div class="property-list__share"> 903 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 904 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 905 <ul class="socials socials--block-dark"> 906 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/6800-fisher-island-unit-6803-ph-3-miami-beach-fl-33109-a11020947" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 907 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/6800-fisher-island-unit-6803-ph-3-miami-beach-fl-33109-a11020947&text=Palazzo Della Luna Penthouse 3" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 908 <li><a href="/cdn-cgi/l/email-protection#f0cf8385929a959384cda0919c918a8a9fd0b4959c9c91d0bc859e91d0a0959e84989f858395d0c3d6929f9489cda0919c918a8a9fd0b4959c9c91d0bc859e91d0a0959e84989f858395d0c3d0ddd09884848083cadfdf949f829180859997de939f9ddf80829f80958284999583dfc6c8c0c0dd969983989582dd99839c919e94dd859e9984ddc6c8c0c3dd8098ddc3dd9d99919d99dd9295919398dd969cddc3c3c1c0c9dd91c1c1c0c2c0c9c4c7" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 909 </ul> 910 </div> 911 </div> 912 </div> 913 </li> 914 <li class="property-list__item feature"> 915 <a class="property-list__item-link" href="/properties/29-e-san-marino-dr-miami-beach-fl-us-33139-d77a99fd18fcecac32b1064051a9a327" > 916 <div class="property-list__img"> 917 <img src="https://dlajgvw9htjpb.cloudfront.net/cms/a2ac92a2-c8ef-4bed-917e-1ed69140fa8a/A11983995/-5771033158538345986.jpg" alt="" loading="lazy"> 918 </div>
919 <span class="property-list__label"> 920 Sold 921 </span> 922 <div class="property-list__text"> 923 <h4 class="serif">29 E San Marino Drive</h4> 924 <p> 925 29 E San Marino Dr 926 927 </p> 928 <p> 929 <span>Miami Beach, </span> 930 <span>FL</span> 931 <span>33139</span> 932 </p> 933 <p class="property-list__facilities"> 934 <span>2 BD</span> 935 <span>2 FULL BA</span> 936 <span>1 HALF BA</span> 937 </p> 938 <p class="property-list__facilities"> 939 <span>2,922 Sq.Ft.</span> 940 <span>0.3 Acres</span> 941 </p> 942 943 <h5 style="text-transform: capitalize"> 944 $28,500,000 945 </h5> 946 </div> 947 </a> 948 949 950 <div class="property-list__hover"> 951 <a href="/properties/29-e-san-marino-dr-miami-beach-fl-us-33139-d77a99fd18fcecac32b1064051a9a327" class="hover-link"></a> 952 <div class="property-list__buttons"> 953 <a class="property-list__view" href="/properties/29-e-san-marino-dr-miami-beach-fl-us-33139-d77a99fd18fcecac32b1064051a9a327" > 954 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 955 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 956 </a> 957 <div class="property-list__share"> 958 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 959 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 960 <ul class="socials socials--block-dark"> 961 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/29-e-san-marino-dr-miami-beach-fl-us-33139-d77a99fd18fcecac32b1064051a9a327" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 962 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/29-e-san-marino-dr-miami-beach-fl-us-33139-d77a99fd18fcecac32b1064051a9a327&text=29 E San Marino Drive" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 963 <li><a href="/cdn-cgi/l/email-protection#417e3234232b2422357c737861046112202f610c2033282f2e61053328372467232e25387c737861046112202f610c2033282f2e610533283724616c6129353531327b6e6e252e3320313428266f222e2c6e31332e312433352824326e73786c246c32202f6c2c2033282f2e6c25336c2c28202c286c23242022296c272d6c34326c72727072786c2576762078782725707927222422202272732370717775717470207820727376" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 964 </ul> 965 </div> 966 </div> 967 </div> 968 </li> 969 <li class="property-list__item feature"> 970 <a class="property-list__item-link" href="/properties/7085-fisher-island-dr-7085-miami-beach-fl-us-33109-e5b7861e1b213687c3ce6b788279f6f8" > 971 <div class="property-list__img"> 972 <img src="https://dlajgvw9htjpb.cloudfront.net/cms/a2ac92a2-c8ef-4bed-917e-1ed69140fa8a/A11887260/-629633847367798223.jpg" alt="" loading="lazy"> 973 </div> 974 <span class="property-list__label"> 975 Sold 976 </span> 977 <div class="property-list__text"> 978 <h4 class="serif">Palazzo Del Sol 7085</h4> 979 <p> 980 7085 Fisher Island Dr # 7085 981 982 </p> 983 <p> 984 <span>Miami Beach, </span> 985 <span>FL</span> 986 <span>33109</span> 987 </p> 988 <p class="property-list__facilities"> 989 <span>5 BD</span> 990 <span>5 FULL BA</span> 991 <span>2 HALF BA</span> 992 </p> 993 <p class="property-list__facilities"> 994 <span>7,630 Sq.Ft.</span> 995 </p> 996 997 <h5 style="text-transform: capitalize"> 998 $28,000,000 999 </h5> 1000 </div> 1001 </a> 1002 1003 1004 <div class="property-list__hover"> 1005 <a href="/properties/7085-fisher-island-dr-7085-miami-beach-fl-us-33109-e5b7861e1b213687c3ce6b788279f6f8" class="hover-link"></a> 1006 <div class="property-list__buttons"> 1007 <a class="property-list__view" href="/properties/7085-fisher-island-dr-7085-miami-beach-fl-us-33109-e5b7861e1b213687c3ce6b788279f6f8" > 1008 <button class="btn btn--primary-dark button-style-3">VIEW PROPERTY</button> 1009 <button class="btn btn--primary-light button-style-3">VIEW PROPERTY</button> 1010 </a> 1011 <div class="property-list__share"> 1012 <a class="btn btn--primary-dark button-style-3">SHARE PROPERTY</a> 1013 <a class="btn btn--primary-light button-style-3">SHARE PROPERTY</a> 1014 <ul class="socials socials--block-dark"> 1015 <li><a href="https://www.facebook.com/sharer/sharer.php?u=https://dorapuig.com/properties/7085-fisher-island-dr-7085-miami-beach-fl-us-33109-e5b7861e1b213687c3ce6b788279f6f8" target="_blank" class="socials__link"><i class="lp-i lp-i--facebook"></i></a></li> 1016 <li><a href="https://twitter.com/intent/tweet?url=https://dorapuig.com/properties/7085-fisher-island-dr-7085-miami-beach-fl-us-33109-e5b7861e1b213687c3ce6b788279f6f8&text=Palazzo Del Sol 7085" target="_blank" class="socials__link"><i class="lp-i lp-i--twitter"></i></a></li> 1017 <li><a href="/cdn-cgi/l/email-protection#2d125e584f47484e59107d4c414c5757420d6948410d7e42410d1a1d15180b4f424954107d4c414c5757420d6948410d7e42410d1a1d15180d000d4559595d5e17020249425f4c5d58444a034e4240025d5f425d485f5944485e021a1d1518004b445e45485f00445e414c434900495f001a1d15180040444c4044004f484c4e45004b4100585e001e1e1c1d14
10170048184f1a151b1c481c4f1f1c1e1b151a4e1e4e481b4f1a15151f1a144b1b4b15" class="socials__link" target="_blank"><i class="lp-i lp-i--envelope"></i></a></li> 1018 </ul> 1019 </div> 1020 </div> 1021 </div> 1022 </li> 1023 </ul> 1024 <div class="empty-result" style="display: none"> 1025 <h3>No Results Found. Please Try Another Search.</h3> 1026 </div> 1027 <div class="lp-pagination pagination-container pagination-style-1"></div> 1028 </div> 1029 </div> 1030</div> 1031</section> 1032<section class="image-section is-font-color-light is-background-color-light" id="section-7348e5c3-3703-4b3a-9347-40fac50851f0" data-el-id="8d0d99c0-f2b0-41b7-9761-63cae92a575c">
vendor: 113 bytes, lines 1032-1033
1032 1033 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1033<script type="text/x-handlebars-template" class="jsIGItem"> 1034 <a href="{{permalink}}" target="_blank" class="ig-feed-item insta-type-{{mediaType}} {{follow}} jsId-{{id}}"> 1035 <div class="ig-feed-item__img" style="background-image: url('{{#ifEquals mediaType 'VIDEO'}}{{thumbnailUrl}}{{^}}{{mediaUrl}}{{/ifEquals}}');"></div> 1036 <div class="ig-feed-item__info"> 1037 <div class="ig-feed-item__caption">{{caption}}</div> 1038 1039 <button class="follow js-follow"> 1040 1041 <span class="follow-account"> 1042 <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"> 1043 <path d="M19.833 2.33325H8.16634C4.94468 2.33325 2.33301 4.94492 2.33301 8.16659V19.8333C2.33301 23.0549 4.94468 25.6666 8.16634 25.6666H19.833C23.0547 25.6666 25.6663 23.0549 25.6663 19.8333V8.16659C25.6663 4.94492 23.0547 2.33325 19.833 2.33325Z" fill="white"/> 1044 <path class='pink' d="M18.6667 13.2649C18.8106 14.2358 18.6448 15.2274 18.1927 16.0987C17.7406 16.97 17.0253 17.6765 16.1485 18.1178C15.2718 18.5591 14.2782 18.7127 13.3091 18.5568C12.34 18.4008 11.4447 17.9433 10.7506 17.2492C10.0566 16.5551 9.599 15.6599 9.44306 14.6908C9.28712 13.7217 9.44073 12.7281 9.88203 11.8513C10.3233 10.9745 11.0299 10.2592 11.9011 9.80715C12.7724 9.35506 13.764 9.18922 14.735 9.3332C15.7254 9.48006 16.6423 9.94157 17.3503 10.6496C18.0583 11.3575 18.5198 12.2745 18.6667 13.2649Z" stroke="#EB647E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1045 <path class='pink' d="M20.417 7.58325H20.4282" stroke="green" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 1046 </svg> 1047 1048 </span> 1049 1050 <span class='follow-title bf-large'></span> 1051 </button> 1052 1053 1054 </div> 1055 {{#ifEquals mediaType 'VIDEO'}}<div class="video-icon"></div>{{/ifEquals}} 1056 </a> 1057</script>
1057 1058 1059 1060<div class="ig-feed" data-follow-title="Follow Dora Puig on Instagram" style=" 1061 --socialCardColor: #EB647E; 1062 --titleCardColor: rgba(255, 255, 255, 1); 1063 --backgroundCardColor: #ffffff; 1064 --sectionBackground: url(https://media-production.lp-cdn.com/media/3dd2bcdf-1712-4d5e-a640-779733692346); 1065"> 1066 <div class="bg"></div> 1067 <div class="ig-feed-top lp-container"> 1068 <h2 class="lp-h2 title"><span>Follow Me</span></h2> 1069 </div> 1070 <div class="lp-container"> 1071 <div class="ig-feed-container"> 1072 <div class="ig-feed-feed"></div> 1073 <a href=https://www.facebook.com/theartofluxeliving class="fb-item" target="_blank"> 1074 <div class="fb-item__wrap"> 1075 <div class="fb-item__followers"><i class="lp-i lp-i--facebook" aria-hidden="true"></i><span>2.9k people follow Dora</span></div> 1076 <div class="bf-large fb-item__title bf-large">Follow Dora Puig on Facebook</div> 1077 <div class="fb-item__description lp-pre-line">"The Art of Luxe Living" Specialize in ultra High-End Residential Sales & Leasing and Lifestyle for the Luxury Market in Miami 1078and the Beaches!</div> 1079 </div> 1080 </a> 1081 </div> 1082 </div> 1083</div> 1084 1085</section> 1086<section class="image-section is-font-color-dark is-background-color-light" id="section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3" data-el-id="e4b23826-4d45-4963-98ee-e42e06187112"> 1087 <div class="popup-modal" style=" 1088 --cardColor: #ffffff; 1089 --accentColor: #EB647E; 1090 --accentColor: #EB647E;"> 1091 <div class="lp-container popup-modal__container"> 1092 <form class="popup-modal__form" data-type="contact-form"> 1093 <div class="form-group-wrap"> 1094 <div class="form-group"> 1095 1096 <div class="lp-title-group popup-modal__left-align"> 1097 <h2 class="lp-h2">You Donât Want to Miss This!</h2> 1098 <div class="lp-text--subtitle">Get exclusive industry news delivered straight to your inbox.</div> 1099 </div> 1100 1101 <div class="form-inputs-wrap"> 1102 1103 <div class="input-container"> 1104 <input id="section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3-mp-name" name="name" type="text" class="lp-input lp-input--light popup-modal__input" placeholder="Name" required> 1105 <span class="input-icon"></span> 1106 </div> 1107 1108 <div class="input-container"> 1109 <input id="section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3-mp-phone" required name="phone" type="tel" class="lp-input lp-input--light popup-modal__input" placeholder="Phone"> 1110 <span class="input-icon"></span> 1111 </div> 1112 1113 <div class="input-container"> 1114 <input id="section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3-mp-email" name="email" type="email" class="lp-input lp-input--light popup-modal__input" placeholder="Email Address" required pattern="[a-zA-Z0-9.!#$%&â*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+"> 1115 <span class="input-icon"></span> 1116 </div> 1117 1118 <div class="lp-h-pot"> 1119 <label for="section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3-middleName">Middle Name</label> 1120 <input id="section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 1121 </div> 1122 1123 <div class="lp-disclaimer"> <label style='display: none;' for='section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3-termsAccepted'>Opt In/Disclaimer Consent:</label> 1124 <label class='lp-tcr-content'> 1125 <span class='lp-tcr-checkbox'> 1126 <input 1127 type='checkbox' 1128 id='section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3-termsAccepted' 1129 name='termsAccepted' 1130 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 1131 oninput="this.setCustomValidity('')" 1132 required 1133 /></span> 1134 <span class='lp-tcr-message'> 1135 1136 I agree to be contacted by 1137 Dora Puig 1138 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1139 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 1140 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 1141 </span> 1142 </label> 1143 1144</div> 1145 1146 <input type="hidden" name="source" value="CONTACT_INQUIRY"> 1147 <button class="popup-modal__submit lp-btn lp-btn--light lp-btn--outline button-style-7 lp-btn--mob-full-width" type="submit">Sign Up <i class="lp-i lp-i--spinner popup-modal__submit--loading" aria-hidden="true"></i><i class="lp-i lp-i--check popup-modal__submit--success" aria-hidden="true"></i></button> 1148 </div> 1149 1150 </div> 1151 </div> 1152 1153 <img src="https://media-production.lp-cdn.com/media/ea2d22b2-08b2-4632-8c0c-38dc0c053bb7" alt="Form Image" class="image" loading="lazy"> 1154 1155 </form> 1156 1157 </div> 1158</div> 1159 1160</section> 1161 1162 <div id="modals" class="modals"></div> 1163 <footer id="global-footer" class="is-font-color-light is-background-color-dark" data-el-id="8810251b-2803-41da-ba0f-5d1b4a0335a4"> 1164 <div class="footer 1165 1166 1167 " style="--descriptionColor: rgba(255, 255, 255, 1)">
1168 <div class="lp-container"> 1169 <div class="footer__row"> 1170 1171 <div class="footer__col footer__col--address"> 1172 <div class="footer__address address"> 1173 <div class="address__title">Lincoln Road Property Lounge</div> 1174 <div class="address__content"><p>1680 Michigan Avenue, Suite 100<br />Miami Beach, FL 33139</p> 1175<p><span style="color: #ffffff;"><strong>South of Fifth Property Lounge</strong></span><br />801 S. Pointe Drive, Loft 101<br />Miami Beach, FL 33139</p></div> 1176 </div> 1177 1178 <div class="footer__address address"> 1179 <div class="address__title">Fisher Island Property Lounge</div> 1180 <div class="address__content"><p>Marina Village II<br /><span style="font-weight: 400;">Fisher Island, FL 33109</span></p></div> 1181 </div> 1182 </div> 1183 1184 1185 1186 <div class="footer__col footer__col--contact"> 1187 <div class="footer__contact contact"> 1188 <div class="contact__icon"> 1189 <svg width="30" height="19" viewBox="0 0 30 19" fill="none" xmlns="http://www.w3.org/2000/svg"> 1190 <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" /> 1191 </svg> 1192 </div> 1193 1194 <div class="contact__content"> 1195 <div class="contact__title">EMAIL</div> 1196 <a href="/cdn-cgi/l/email-protection#9ef7f0f8f1defaf1ecffeeebf7f9b0fdf1f3" class="lp-link lp-link--light contact__link hyperlink-style-2"><span class="__cf_email__" data-cfemail="0960676f66496d667b68797c606e276a6664">[email protected]</span></a> 1197 </div> 1198 </div> 1199 1200 <div class="footer__contact contact"> 1201 <div class="contact__icon"> 1202 <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 1203 <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" /> 1204 </svg> 1205 </div> 1206 1207 <div class="contact__content"> 1208 <div class="contact__title">PHONE NUMBER</div> 1209 <a href="tel:3056132118" class="lp-link lp-link--light contact__link hyperlink-style-2">(305) 613-2118</a> 1210 </div> 1211 </div> 1212
1213 <div class="footer__contact contact"> 1214 <div class="contact__icon"> 1215 <svg width="30" height="25" viewBox="0 0 30 25" fill="none" xmlns="http://www.w3.org/2000/svg"> 1216 <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" /> 1217 </svg> 1218 </div> 1219 1220 <div class="contact__content"> 1221 <div class="contact__title">OFFICE NUMBER</div> 1222 <a href="tel:3056736787" class="lp-link lp-link--light contact__link hyperlink-style-2">(305) 673-6787</a> 1223 </div> 1224 </div> 1225 </div> 1226 1227 <div class="footer__col footer__col--socials"> 1228 <ul class="lp-socials social_icons-style-3 lp-socials--dark"> 1229 1230 <li> 1231 <a 1232 href="https://www.instagram.com/dorapuig" 1233 class="lp-socials__link wow fadeInUp" 1234 data-wow-delay="0s" 1235 target="_blank" 1236 aria-label="INSTAGRAM" 1237 > 1238 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 1239 </a> 1240 </li> 1241 <li> 1242 <a 1243 href="https://www.facebook.com/dora.puig" 1244 class="lp-socials__link wow fadeInUp" 1245 data-wow-delay="0.1s" 1246 target="_blank" 1247 aria-label="FACEBOOK" 1248 > 1249 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 1250 </a> 1251 </li> 1252 <li> 1253 <a 1254 href="https://twitter.com/DoraPuig" 1255 class="lp-socials__link wow fadeInUp" 1256 data-wow-delay="0.2s" 1257 target="_blank" 1258 aria-label="TWITTER" 1259 >
1260 <span class="lp-i lp-i--twitter" aria-hidden="true"></span> 1261 </a> 1262 </li> 1263 <li> 1264 <a 1265 href="https://www.linkedin.com/in/dorapuig/" 1266 class="lp-socials__link wow fadeInUp" 1267 data-wow-delay="0.3s" 1268 target="_blank" 1269 aria-label="LINKEDIN" 1270 > 1271 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 1272 </a> 1273 </li> 1274 <li> 1275 <a 1276 href="https://www.tiktok.com/@dorapuig?_t=8eX6MgyYH8A&_r=1" 1277 class="lp-socials__link wow fadeInUp" 1278 data-wow-delay="0.4s" 1279 target="_blank" 1280 aria-label="TIKTOK" 1281 > 1282 <span class="lp-i lp-i--tiktok" aria-hidden="true"></span> 1283 </a> 1284 </li> 1285 <li> 1286 <a 1287 href="https://www.youtube.com/user/DoraPuig?app=desktop" 1288 class="lp-socials__link wow fadeInUp" 1289 data-wow-delay="0.5s" 1290 target="_blank" 1291 aria-label="YOUTUBE" 1292 > 1293 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 1294 </a> 1295 </li> 1296 <li> 1297 <a 1298 href="https://www.pinterest.com/dorapuig/" 1299 class="lp-socials__link wow fadeInUp" 1300 data-wow-delay="0.6s" 1301 target="_blank" 1302 aria-label="PINTEREST" 1303 > 1304 <span class="lp-i lp-i--pinterest" aria-hidden="true"></span> 1305 </a> 1306 </li> 1307 </ul> 1308 <div class="footer__logos"> 1309 <img src="https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/cvdqr0pfprn8ve8kgmpn" alt="Dora Puig Logo 0" class="portrait"> 1310 </div> 1311 </div> 1312 </div> 1313 1314 <div class="footer__tagline"><p>LIFE, LUXURY AND THE PURSUIT OF HAPPINESS</p> 1315<p style="font-size: 12px;">All information is deemed reliable but not guaranteed and should be independently reviewed and verified.<br><img style="margin-top: 20px;" src="https://media-production.lp-cdn.com/media/a3846264-0167-4772-afe7-b5b10b7299d1" width="100px;" height="auto;"></p></div> 1316 1317 </div> 1318</div> 1319 1320 </footer> 1321 1322 <div id="modal-global-contact-us" class="modal " 1323 data-el-id="" 1324 style="background-color: ;" 1325 > 1326 <div class="modal-content"> 1327 <div class="contact-form lp-vertical-paddings" style="--formBackgroundColor: #ffffff; --accentColor: #EB647E"> 1328 <div class="lp-container"> 1329 <div class="contact-form__close close"></div> 1330 1331 <div class="contact-form__container"> 1332 <form class="contact-form__form js-contact-form__form" data-type="contact-form"> 1333 <h2 class="lp-h2 contact-form__title">Letâs Connect!</h2> 1334 <div class="input-container"> 1335 <input id="-mp-name" name="name" type="text" class="lp-input lp-input--light contact-form__input" placeholder="NAME" required> 1336 </div> 1337 1338 <div class="input-container"> 1339 <input id="-mp-email" name="email" type="email" class="lp-input lp-input--light contact-form__input" placeholder="EMAIL" required pattern="[a-zA-Z0-9.!#$%&â*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+"> 1340 1341 </div> 1342 1343 <div class="input-container"> 1344 <input id="-mp-phone" name="phone" type="tel" class="lp-input lp-input--light contact-form__input" placeholder="PHONE" required> 1345 1346 </div> 1347 1348 <div class="input-container"> 1349 <label for="-contactMessage" class="input-container__label">MESSAGE</label> 1350 <textarea id="-contactMessage" placeholder="" name="message" type="text" class="lp-in
1350put lp-input--light contact-form__input"></textarea> 1351 </div> 1352 1353 <div class="h-pot"> 1354 <label for="-mp-middleName">Middle Name</label> 1355 <input id="-mp-middleName" name="middleName" value="" autocomplete="off" tabindex="-1"> 1356 </div> 1357 1358 <div class="lp-disclaimer"> <label style='display: none;' for='-termsAccepted'>Opt In/Disclaimer Consent:</label> 1359 <label class='lp-tcr-content'> 1360 <span class='lp-tcr-checkbox'> 1361 <input 1362 type='checkbox' 1363 id='-termsAccepted' 1364 name='termsAccepted' 1365 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 1366 oninput="this.setCustomValidity('')" 1367 required 1368 /></span> 1369 <span class='lp-tcr-message'> 1370 1371 I agree to be contacted by 1372 Dora Puig 1373 via call, email, and text for real estate services. To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1374 You can also click the unsubscribe link in the emails. Message and data rates may apply. Message frequency may vary. 1375 <a href='/terms-and-conditions' target='_blank'>Privacy Policy</a>. 1376 </span> 1377 </label> 1378 1379 </div> 1380 1381 <input type="hidden" name="source" value="CONTACT_INQUIRY"> 1382 <button class="contact-form__submit lp-btn lp-btn--outline lp-btn--dark button-style-7 lp-btn--mobile-fullwidth" type="submit"> 1383 1384 <span class="sync-icon"></span> 1385 1386 <span class="success-icon"></span> 1387 1388 <span class="static-text">Submit</span><span class="loading-text">Loading</span><span class="success-text">Success</span> 1389 </button> 1390 </form> 1391 1392 1393 <div class="contact-form__details"> 1394 <h2 class="lp-h2 contact-form__title">Contact Details</h2> 1395 1396 1397 <div class="company"> 1398 <div class="bf-medium company_title">Lincoln Road Property Lounge</div> 1399 1400 <div class="company_address bordered"><p>1680 Michigan Avenue, Suite 100<br />Miami Beach, FL 33139<br /><br /></p> 1401 <p style="font-family: var(--global-primary-font-family); font-size: 25px; line-height: 1.36; font-weight: 400; letter-spacing: 0;">South of Fifth Property Lounge</p> 1402 <p style="margin-top: -15px;">801 S. Pointe Drive, Loft 101<br />Miami Beach, FL 33139<br /><br /></p> 1403 <p style="font-family: var(--global-primary-font-family); font-size: 25px; line-height: 1.36; font-weight: 400; letter-spacing: 0;">Fisher Island Property Lounge</p> 1404 <p style="margin-top: -15px;">Marina Village II<br />Fisher Island, FL 33109</p></div> 1405 1406 <div class="company_contact-wrap"> 1407 <svg width="35" height="22" viewBox="0 0 35 22" fill="none" xmlns="http://www.w3.org/2000/svg"> 1408 <path d="M2.33333 0C1.0541 0 0 1.06486 0 2.35714V19.6429C0 20.9351 1.0541 22 2.33333 22H32.6667C33.9459 22 35 20.9351 35 19.6429V2.35714C35 1.06486 33.9459 0 32.6667 0H2.33333ZM2.84375 1.57143H32.1562L18.2535 13.5413C17.8953 13.8496 17.1047 13.8496 16.7465 13.5413L2.84375 1.57143ZM1.55556 2.51674L11.8976 11.4297L1.55556 19.5324V2.51674ZM33.4444 2.51674V19.5324L23.1024 11.4297L33.4444 2.51674ZM13.1128 12.4732L15.7378 14.7321C16.7467 15.6006 18.2533 15.6006 19.2622 14.7321L21.8872 12.4732L32.0469 20.4286H2.95312L13.1128 12.4732Z" fill='currentColor'/> 1409 </svg> 1410 <div> 1411 <div class="company_label">EMAIL</div> 1412 <a href="/cdn-cgi/l/email-protection#650c0b030a25010a170415100c024b060a08" class="company_contact lp-a hyperlink-style-3"><span class="__cf_email__" data-cfemail="ea83848c85aa8e85988b9a9f838dc4898587">[email protected]</span></a> 1413 </div> 1414 </div> 1415 1416 <div class="company_contact-wrap"> 1417 <svg width="37" height="31" viewBox="0 0 37 31" fill="none" xmlns="http://www.w3.org/2000/svg"> 1418 <path fill-rule="evenodd" clip-rule="evenodd" d="M13.3156 10.3463H23.6844V11.1199C23.6844 13.7848 25.7868 15.9589 28.3679 15.9589H30.5139L31.1851 26.3797C31.299 28.1869 29.9537 29.65 28.2214 29.65H8.63728C6.89976 29.65 5.56036 28.1677 5.67358 26.3782C5.8978 22.9199 6.06208 19.4057 6.3566 15.9596H8.63284C11.2132 15.9596 13.3163 13.7863 13.3163 11.1207V10.3463H13.3156ZM14.134 21.125C14.134 18.6734 16.0565 16.6874 18.4297 16.6874C20.8021 16.6874 22.7247 18.6742 22.7247 21.125C22.7247 23.5773 20.8036 25.5618 18.4297 25.5618C16.058 25.5625 14.134 23.5757 14.134 21.125ZM18.4297 15.3374C15.3358 15.3374 12.8272 17.9288 12.8272 21.125C12.8272 24.3203 15.3365 26.9125 18.4297 26.9125C21.5199 26.9125 24.0315 24.318 24.0315 21.125C24.0315 17.9296 21.5229 15.3374 18.4297 15.3374ZM11.2043 6.16178C10.138 6.16178 9.2648 7.06382 9.2648 8.16538V11.1207C9.2648 11.4785 8.97916 11.7743 8.6321 11.7743H1.93954C1.59174 11.7743 1.30684 11.4808 1.30684 11.1207V8.82738C1.30684 8.25558 1.43412 7.76481 1.71458 7.27098C2.3384 6.17477 3.36626 5.22534 4.6805 4.42726C11.4441 0.320683 25.5537 0.321448 32.3
1418188 4.42726C33.6337 5.22534 34.6616 6.17477 35.2854 7.27098C35.5637 7.76175 35.6924 8.25788 35.6924 8.82738V11.1207C35.6924 11.4808 35.409 11.7743 35.0597 11.7743H28.3672C28.0201 11.7743 27.7345 11.4785 27.7345 11.1207V8.16538C27.7345 7.06152 26.8627 6.16178 25.7949 6.16178H11.2043ZM10.5709 8.16538C10.5709 7.80533 10.8565 7.51254 11.2043 7.51254H25.7957C26.1427 7.51254 26.4291 7.80685 26.4291 8.16538V11.1207C26.4291 12.2238 27.3001 13.1251 28.3679 13.1251H35.0605C36.1268 13.1251 37 12.2223 37 11.1207V8.82738C37 8.00561 36.8106 7.29927 36.4087 6.59063C35.6665 5.28649 34.4796 4.17882 32.9774 3.26684C25.8031 -1.08895 11.1984 -1.08895 4.02338 3.26684C2.52044 4.17882 1.33348 5.28573 0.592 6.59063C0.1887 7.29927 0 8.00561 0 8.82662V11.1199C0 12.2215 0.87468 13.1243 1.93954 13.1243H8.6321C9.69992 13.1243 10.5709 12.223 10.5709 11.1199V8.16538ZM12.0087 9.67209V11.1207C12.0087 13.0448 10.4947 14.6096 8.6321 14.6096H5.75794C5.41606 14.6096 5.1356 14.881 5.10748 15.2265C4.79668 18.9004 4.61094 22.6064 4.37192 26.288C4.20764 28.8481 6.1531 31 8.63728 31H28.2214C30.6878 31 32.6525 28.8672 32.4867 26.2895L31.7734 15.2388C31.7504 14.8825 31.4626 14.6104 31.1222 14.6104L28.3679 14.6089C26.5046 14.6089 24.9913 13.0433 24.9913 11.1199V9.67133C24.9913 9.29828 24.699 8.99633 24.3379 8.99633H12.6621C12.301 8.99633 12.0087 9.29904 12.0087 9.67209Z" fill='currentColor' /> 1419 </svg> 1420 <div> 1421 <div class="company_label">PHONE NUMBER</div> 1422 <a href='tel:3056132118' class="company_contact lp-a hyperlink-style-3">(305) 613-2118</a> 1423 </div> 1424 </div> 1425 1426 <div class="company_contact-wrap"> 1427 <svg width="37" height="31" viewBox="0 0 37 31" fill="none" xmlns="http://www.w3.org/2000/svg"> 1428 <path fill-rule="evenodd" clip-rule="evenodd" d="M13.3156 10.3463H23.6844V11.1199C23.6844 13.7848 25.7868 15.9589 28.3679 15.9589H30.5139L31.1851 26.3797C31.299 28.1869 29.9537 29.65 28.2214 29.65H8.63728C6.89976 29.65 5.56036 28.1677 5.67358 26.3782C5.8978 22.9199 6.06208 19.4057 6.3566 15.9596H8.63284C11.2132 15.9596 13.3163 13.7863 13.3163 11.1207V10.3463H13.3156ZM14.134 21.125C14.134 18.6734 16.0565 16.6874 18.4297 16.6874C20.8021 16.6874 22.7247 18.6742 22.7247 21.125C22.7247 23.5773 20.8036 25.5618 18.4297 25.5618C16.058 25.5625 14.134 23.5757 14.134 21.125ZM18.4297 15.3374C15.3358 15.3374 12.8272 17.9288 12.8272 21.125C12.8272 24.3203 15.3365 26.9125 18.4297 26.9125C21.5199 26.9125 24.0315 24.318 24.0315 21.125C24.0315 17.9296 21.5229 15.3374 18.4297 15.3374ZM11.2043 6.16178C10.138 6.16178 9.2648 7.06382 9.2648 8.16538V11.1207C9.2648 11.4785 8.97916 11.7743 8.6321 11.7743H1.93954C1.59174 11.7743 1.30684 11.4808 1.30684 11.1207V8.82738C1.30684 8.25558 1.43412 7.76481 1.71458 7.27098C2.3384 6.17477 3.36626 5.22534 4.6805 4.42726C11.4441 0.320683 25.5537 0.321448 32.3188 4.42726C33.6337 5.22534 34.6616 6.17477 35.2854 7.27098C35.5637 7.76175 35.6924 8.25788 35.6924 8.82738V11.1207C35.6924 11.4808 35.409 11.7743 35.0597 11.7743H28.3672C28.0201 11.7743 27.7345 11.4785 27.7345 11.1207V8.16538C27.7345 7.06152 26.8627 6.16178 25.7949 6.16178H11.2043ZM10.5709 8.16538C10.5709 7.80533 10.8565 7.51254 11.2043 7.51254H25.7957C26.1427 7.51254 26.4291 7.80685 26.4291 8.16538V11.1207C26.4291 12.2238 27.3001 13.1251 28.3679 13.1251H35.0605C36.1268 13.1251 37 12.2223 37 11.1207V8.82738C37 8.00561 36.8106 7.29927 36.4087 6.59063C35.6665 5.28649 34.4796 4.17882 32.9774 3.26684C25.8031 -1.08895 11.1984 -1.08895 4.02338 3.26684C2.52044 4.17882 1.33348 5.28573 0.592 6.59063C0.1887 7.29927 0 8.00561 0 8.82662V11.1199C0 12.2215 0.87468 13.1243 1.93954 13.1243H8.6321C9.69992 13.1243 10.5709 12.223 10.5709 11.1199V8.16538ZM12.0087 9.67209V11.1207C12.0087 13.0448 10.4947 14.6096 8.6321 14.6096H5.75794C5.41606 14.6096 5.1356 14.881 5.10748 15.2265C4.79668 18.9004 4.61094 22.6064 4.37192 26.288C4.20764 28.8481 6.1531 31 8.63728 31H28.2214C30.6878 31 32.6525 28.8672 32.4867 26.2895L31.7734 15.2388C31.7504 14.8825 31.4626 14.6104 31.1222 14.6104L28.3679 14.6089C26.5046 14.6089 24.9913 13.0433 24.9913 11.1199V9.67133C24.9913 9.29828 24.699 8.99633 24.3379 8.99633H12.6621C12.301 8.99633 12.0087 9.29904 12.0087 9.67209Z" fill='currentColor'/> 1429 </svg> 1430 1431 <div> 1432 <div class="company_label">OFFICE NUMBER</div> 1433 <a href='tel:3056736787' class="company_contact lp-a hyperlink-style-3">(305) 673-6787</a> 1434 </div> 1435 </div> 1436 <div class="socials"> 1437 <ul class="lp-socials social_icons-style-3 lp-socials lp-socials--dark"> 1438 1439 <li> 1440 <a 1441 href="https://www.facebook.com/dora.puig" 1442 class="lp-socials__link" 1443 data-wow-delay="0s" 1444 target="_blank" 1445 aria-label="FACEBOOK" 1446 >
1447 <span class="lp-i lp-i--facebook" aria-hidden="true"></span> 1448 </a> 1449 </li> 1450 <li> 1451 <a 1452 href="https://twitter.com/dorapuig" 1453 class="lp-socials__link" 1454 data-wow-delay="0.1s" 1455 target="_blank" 1456 aria-label="TWITTER" 1457 > 1458 <span class="lp-i lp-i--twitter" aria-hidden="true"></span> 1459 </a> 1460 </li> 1461 <li> 1462 <a 1463 href="https://www.linkedin.com/in/dorapuig/" 1464 class="lp-socials__link" 1465 data-wow-delay="0.2s" 1466 target="_blank" 1467 aria-label="LINKEDIN" 1468 > 1469 <span class="lp-i lp-i--linkedin" aria-hidden="true"></span> 1470 </a> 1471 </li> 1472 <li> 1473 <a 1474 href="https://www.instagram.com/dorapuig" 1475 class="lp-socials__link" 1476 data-wow-delay="0.3s" 1477 target="_blank" 1478 aria-label="INSTAGRAM" 1479 > 1480 <span class="lp-i lp-i--instagram" aria-hidden="true"></span> 1481 </a> 1482 </li> 1483 <li> 1484 <a 1485 href="https://dorapuig.tumblr.com/" 1486 class="lp-socials__link" 1487 data-wow-delay="0.4s" 1488 target="_blank" 1489 aria-label="PODCAST" 1490 > 1491 <span class="lp-i lp-i--podcast" aria-hidden="true"></span> 1492 </a> 1493 </li> 1494 <li> 1495 <a 1496 href="https://www.youtube.com/user/DoraPuig?app=desktop" 1497 class="lp-socials__link" 1498 data-wow-delay="0.5s" 1499 target="_blank" 1500 aria-label="YOUTUBE" 1501 > 1502 <span class="lp-i lp-i--youtube" aria-hidden="true"></span> 1503 </a> 1504 </li> 1505 <li> 1506 <a 1507 href="https://www.pinterest.com/dorapuig/" 1508 class="lp-socials__link" 1509 data-wow-delay="0.6s" 1510 target="_blank" 1511 aria-label="PINTEREST" 1512 > 1513 <span class="lp-i lp-i--pinterest" aria-hidden="true"></span> 1514 </a> 1515 </li> 1516 <li> 1517 <a 1518 href="https://www.tiktok.com/@dorapuig?_t=8eX6MgyYH8A&_r=1" 1519 class="lp-socials__link" 1520 data-wow-delay="0.7s" 1521 target="_blank" 1522 aria-label="TIKTOK" 1523 > 1524 <span class="lp-i lp-i--tiktok" aria-hidden="true"></span> 1525 </a> 1526 </li> 1527 </ul> </div> 1528 </div> 1529 1530 </div> 1531 </div> 1532 1533 </div> 1534 </div> 1535 </div> 1536 <button class="close lp-close" type="button" aria-label="close modal">
1537 <span class="lp-close-icon" aria-hidden="true"></span> 1538 </button> 1539 </div> 1540 <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;"> 1541 <style> 1542 #qualifying-questions-modal .custom-select-toggle { 1543 border: 1px solid #848484; 1544 border-radius: 8px; 1545 padding: 12px 16px; 1546 } 1547 1548 #qualifying-questions-modal .custom-select-toggle.is-placeholder { 1549 color: #848484; 1550 } 1551 1552 #qualifying-questions-modal #qualifying-questions-modal-phoneNumber::placeholder { 1553 color: #848484; 1554 opacity: 1; 1555 } 1556 1557 #qualifying-questions-modal .disclaimer-more { 1558 display: none; 1559 } 1560 1561 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-more { 1562 display: inline; 1563 } 1564 1565 #qualifying-questions-modal #qualifying-questions-modal-disclaimer-text:not(.collapsed) .disclaimer-ellipsis { 1566 display: none; 1567 } 1568 </style>
vendor: 119 bytes, lines 1568-1569
1568 1569 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1569<script> 1570 function toggleDisclaimerQualifyingQuestionsModal() { 1571 const disclaimerText = document.getElementById('qualifying-questions-modal-disclaimer-text'); 1572 const toggleButton = document.getElementById('qualifying-questions-modal-toggle-disclaimer'); 1573 1574 if (disclaimerText.classList.contains('collapsed')) { 1575 disclaimerText.classList.remove('collapsed'); 1576 toggleButton.textContent = 'Read less'; 1577 toggleButton.setAttribute('aria-expanded', 'true'); 1578 } else { 1579 disclaimerText.classList.add('collapsed'); 1580 toggleButton.textContent = 'Read more'; 1581 toggleButton.setAttribute('aria-expanded', 'false'); 1582 } 1583 } 1584 </script>
1584 1585 <div style="max-width: 400px; width: 95%; margin: 0 auto;"> 1586 <div style="background: #fff; border: none; border-radius: 16px; color: black; box-shadow: none; position: relative;"> 1587 <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;"> 1588 <span aria-hidden="true">×</span> 1589 </button> 1590 <div style="padding: 40px 30px 32px;"> 1591 <div style="text-align: left; margin-bottom: 32px;"> 1592 <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;"> 1593 Thanks, please provide more information to help serve you 1594 </h2> 1595 </div> 1596 <form id="qualifying-questions-modal-form" data-type="contact-form"> 1597 <input type="hidden" name="source" value="PROFILE_UPDATE" /> 1598 <input type="hidden" name="email" value="" id="qualifying-questions-modal-email" /> 1599 <input type="hidden" name="triggerSource" id="qualifying-questions-modal-triggerSource" value="" /> 1600 <label for="qualifying-questions-modal-email" style="display:none;"> 1601 Email 1602 </label> 1603 <label for="qualifying-questions-modal-triggerSource" style="display:none;"> 1604 Trigger Source 1605 </label> 1606 1607 <div style="margin-bottom: 20px;"> 1608 <label for="qualifying-questions-modal-phoneNumber" style="display:none;"> 1609 Phone Number 1610 </label> 1611 <input 1612 type="tel" 1613 id="qualifying-questions-modal-phoneNumber" 1614 name="phoneNumber" 1615 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;" 1616 pattern="^\+?1?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$" 1617 required 1618 placeholder="Phone" 1619 aria-label="Phone Number" 1620 inputmode="tel" 1621 autocomplete="tel" 1622 onfocus="this.style.borderColor='black';" 1623 onblur="this.style.borderColor='#848484';" 1624 /> 1625 </div> 1626 1627 <div style="margin-bottom: 20px;"> 1628 <label for="qualifying-questions-modal-interest" style="display:none;"> 1629 Interest 1630 </label> 1631 <select 1632 id="qualifying-questions-modal-interest" 1633 name="interest" 1634 required 1635 data-label="Interest" 1636 aria-label="Interest" 1637 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;" 1638 onfocus="this.style.borderColor='black'; this.style.color='black';" 1639 onblur="this.style.borderColor='#848484'; if(this.value === '') this.style.color='#848484'; else this.style.color='black';" 1640 > 1641 <option value="" style="background: #fff; color: #848484;" disabled selected>Interested in...</option> 1642 <option value="Selling & Buying" style="background: #fff; color: black;">Selling & Buying</option> 1643 <option value="Selling" style="background: #fff; color: black;">Selling</option> 1644 <option value="Buying" style="background: #fff; color: black;">Buying</option> 1645 <option value="Renting" style="background: #fff; color: black;">Renting</option> 1646 <option value="Other" style="background: #fff; color: black;">Other</option> 1647 </select> 1648 </div> 1649 1650 <div style="margin-bottom: 32px; font-size: 12px; line-height: 1.2;"> 1651 <label style='display: none;' for='qualifying-questions-modal-qualifying-questions-termsAccepted'>Opt In/Disclaimer Consent:</label> 1652 <label class='lp-tcr-content'>
1653 <span class='lp-tcr-checkbox'> 1654 <input 1655 type='checkbox' 1656 id='qualifying-questions-modal-qualifying-questions-termsAccepted' 1657 name='termsAccepted' 1658 aria-describedby='qualifying-questions-modal-disclaimer-text' 1659 oninvalid="this.setCustomValidity('Please accept the terms and conditions')" 1660 oninput="this.setCustomValidity('')" 1661 required 1662 /></span> 1663 <span class='lp-tcr-message'> 1664 <div id="qualifying-questions-modal-disclaimer-text" class="collapsed" style="color: #848484;"> 1665 1666 I agree to be contacted by 1667 <strong>Dora Puig</strong> 1668 via call, email, and text <span class="disclaimer-more">for real estate services. 1669 To opt out, you can reply 'stop' at any time or reply 'help' for assistance. 1670 You can also click the unsubscribe link in the emails. 1671 Message and data rates may apply. Message frequency may vary.</span> 1672 <span class="disclaimer-ellipsis">...</span> 1673 <a href='/terms-and-conditions' target='_blank' rel='noopener noreferrer' style='text-decoration: underline;'>Privacy Policy</a>. 1674 </div> 1675 <button 1676 id="qualifying-questions-modal-toggle-disclaimer" 1677 type="button" 1678 style="background: none; border: none; color: #848484; font-size: inherit; font-weight: bold; padding: 0; margin-top: 4px; cursor: pointer;" 1679 aria-expanded="false" 1680 onclick="toggleDisclaimerQualifyingQuestionsModal()" 1681 > 1682 Read more 1683 </button> 1684 </span> 1685 </label> 1686 </div> 1687 1688 <div> 1689 <button 1690 type="submit" 1691 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;" 1692 onmouseover="this.style.background='transparent'; this.style.color='black';" 1693 onmouseout="this.style.background='black'; this.style.color='white';" 1694 > 1695 Submit 1696 </button> 1697 </div> 1698 </form> 1699 </div> 1700 </div> 1701 </div> 1702 </div> 1703 1704
1704<script> 1705 (function() { 1706 var lazyVideos = [].slice.call(document.querySelectorAll("video.lazy")); 1707 1708 if ("IntersectionObserver" in window && lazyVideos.length > 0) { 1709 var lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 1710 entries.forEach(function(video) { 1711 if (video.isIntersecting) { 1712 for (var source in video.target.children) { 1713 var videoSource = video.target.children[source]; 1714 if (typeof videoSource.tagName === "string" && videoSource.tagName === "SOURCE") { 1715 videoSource.src = videoSource.dataset.src; 1716 } 1717 } 1718 1719 video.target.load(); 1720 video.target.classList.remove("lazy"); 1721 lazyVideoObserver.unobserve(video.target); 1722 } 1723 }); 1724 }); 1725 1726 lazyVideos.forEach(function(lazyVideo) { 1727 lazyVideoObserver.observe(lazyVideo); 1728 }); 1729 } 1730 })(); 1731 </script>
1731 1732 1733 <!-- Global site tag (gtag.js) - Google Analytics --> 1734
1734<script defer src="https://www.googletagmanager.com/gtag/js"></script>
1734 1735 1736 <!-- Google Tag Manager --> 1737
1737<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 1738 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 1739 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.defer=true;j.async=false;j.src= 1740 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 1741 })(window,document,'script','dataLayer','GTM-T9SFQGHZ');</script>
1741 1742 <!-- End Google Tag Manager --> 1743 1744 1745 <!-- LP Tracker (divolte.js) - LP Divolte --> 1746
1746<script>window.divolteLp=window.divolteLp||function(){(divolteLp.q=divolteLp.q||[]).push(arguments)}</script>
1746 1747 <!-- LP Tracker (eventBus) - LP EventBus --> 1748
1748<script>window.eventBusLp=window.eventBusLp||function(){(eventBusLp.q=eventBusLp.q||[]).push(arguments)}</script>
1748 1749 1750
1750<script> 1751 window.dataLayer = window.dataLayer || []; 1752 document.sendGoogleTagManagerEvent = function() { 1753 /* Honor GPC-enabled browsers and prevent GTM event if GPC is enabled. More details: https://global-privacy-control.glitch.me/ */ 1754 if (window.navigator.globalPrivacyControl) { 1755 return; 1756 } 1757 1758 dataLayer.push(arguments); 1759 } 1760 1761 document.sendGoogleTagManagerEvent('js', new Date()); 1762 document.sendGoogleTagManagerEvent('config', 'G-K6HC606GN2', { page: location.pathname, location: location.href }); 1763 document.sendGoogleTagManagerEvent('config', 'G-5BBN9DDW9K', { page: location.pathname, location: location.href }); 1764 document.sendGoogleTagManagerEvent('config', 'G-61CZ51QXY9', { page: location.pathname, location: location.href }); 1765 document.sendGoogleTagManagerEvent('config', 'UA-16521381-1', { page: location.pathname, location: location.href }); 1766 document.sendGoogleAnalyticsEvent = function(googleEvent) { 1767 document.sendGoogleTagManagerEvent('event', googleEvent.eventAction || googleEvent.hitType, { 1768 event_category: googleEvent.eventCategory, 1769 event_label: googleEvent.eventLabel, 1770 value: googleEvent.eventValue, 1771 page: googleEvent.page, 1772 location: googleEvent.location 1773 }) 1774 }; 1775 1776 document.addEventListener("DOMContentLoaded", function() { 1777 (function() { 1778 //If the page has an element with ID of auto-year-update the element will be populated with the current year. 1779 var date = new Date(); 1780 var elements = document.getElementsByClassName('auto-year-update'); 1781 var i; 1782 for (i = 0; i < elements.length; i++) { 1783 elements[i].innerText = date.getFullYear(); 1784 } 1785 })(); 1786 if (window.divolteLp) { 1787 window.divolteLp('sendLpPageView', {}); 1788 } 1789 if (window.eventBusLp) { 1790 window.eventBusLp('sendLpPageView', {}); 1791 } 1792 }); 1793 </script>
1793 1794 1795 1796
1796<script> 1797 // Function to dynamically load a script 1798 function loadScript(url, callback) { 1799 var script = document.createElement('script'); 1800 script.type = 'text/javascript'; 1801 script.src = url; 1802 script.defer = true; 1803 script.async = true; 1804 script.onload = callback; 1805 document.head.appendChild(script); 1806 } 1807 1808 // Function to dynamically load CSS file 1809 function loadCSS(url) { 1810 var link = document.createElement("link"); 1811 link.rel = "stylesheet"; 1812 link.href = url; 1813 document.head.appendChild(link); 1814 } 1815 1816 // Global methods / variables that can be accessed by element js 1817 window.luxuryPresence = { 1818 libs: { 1819 loadJs: loadScript, 1820 loadCss: loadCSS, 1821 jsLibsMap: { 1822 paroller: { 1823 jsSrc: 'https://d1e1jt2fj4r8r.cloudfront.net/javascript/jquery.paroller.min.js', 1824 isLoaded: false, 1825 }, 1826 ionRangeSlider: { 1827 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/js/ion.rangeSlider.min.js', 1828 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/ion-rangeslider/2.3.1/css/ion.rangeSlider.min.css', 1829 isLoaded: false, 1830 requires: ['jquery'], 1831 }, 1832 splide: { 1833 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/js/splide.min.js', 1834 cssSrc: 'https://cdnjs.cloudflare.com/ajax/libs/splidejs/4.1.4/css/splide-core.min.css', 1835 isLoaded: false, 1836 }, 1837 wow: { 1838 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/wow/1.1.2/wow.min.js', 1839 isLoaded: false, 1840 }, 1841 jquery: { 1842 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', 1843 isLoaded: false, 1844 }, 1845 slick: { 1846 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js', 1847 isLoaded: false, 1848 requires: ['jquery'], 1849 }, 1850 libphonenumber: { 1851 jsSrc: 'https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.11.8/libphonenumber-js.min.js', 1852 isLoaded: false, 1853 }, 1854 }, 1855 }, 1856 }; 1857 </script>
1857 1858
1858<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>
1858 1859
1859<script defer src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.8/handlebars.min.js"></script>
1859 1860
1860<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handlebars-intl.min.js"></script>
1860 1861
1861<script defer src="https://cdnjs.cloudflare.com/ajax/libs/superagent/4.1.0/superagent.min.js"></script>
1861 1862
1862<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>
1862 1863
1863<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>
1863 1864
1864<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>
1864 1865 1866 <!-- GOOGLE TRANSLATE SCRIPT --> 1867
1867<script> 1868 function googleTranslateElementInit() { 1869 // list of languages can be overridden by setting window.customLanguages in the head JS. example `window.customLanguages = 'en,de,fr,ro,sk,pl'` 1870 // Language codes can be taken from here https://cloud.google.com/translate/docs/languages 1871 const DEFAULT_LANGUAGES = 'en,es,zh-CN,zh-TW,tl,vi,ar,ko,ru,de,fr,hi,pt'; 1872 document.querySelectorAll('[data-type="TRANSLATE"]').forEach(function(translate){ 1873 translate.innerText = ''; 1874 new google.translate.TranslateElement({ 1875 pageLanguage: 'en', 1876 layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 1877 includedLanguages: window.customLanguages || DEFAULT_LANGUAGES, 1878 }, translate); 1879 }); 1880 } 1881 </script>
1881 1882
1882<script defer src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
1882 1883 1884 <!-- GOOGLE TRANSLATE SCRIPT END--> 1885
1885<script> 1886 1887 // UI helpers 1888 (function () { 1889 1890 function getSideMenu () { 1891 return document.querySelector('body > div.sidemenu'); 1892 } 1893 1894 function sideMenuHide (instant) { 1895 var sideMenu = getSideMenu(); 1896 if (!sideMenu || !sideMenu.classList.contains('visible')) { 1897 return; 1898 } 1899 sideMenu.classList.remove('visible'); 1900 sideMenu.dispatchEvent(new CustomEvent('lpui-hide', { detail: { instant: !!instant } })); 1901 window.dispatchEvent(new CustomEvent('lpui-sidemenu-hide', { detail: {instant: !!instant} })); 1902 } 1903 1904 function sideMenuShow () { 1905 var sideMenu = getSideMenu(); 1906 if (!sideMenu || sideMenu.classList.contains('visible')) { 1907 return; 1908 } 1909 sideMenu.classList.add('visible'); 1910 sideMenu.dispatchEvent(new Event('lpui-show')); 1911 window.dispatchEvent(new Event('lpui-sidemenu-show')); 1912 } 1913 1914 function sideMenuToggle () { 1915 var sideMenu = getSideMenu(); 1916 if (!sideMenu) { 1917 return; 1918 } 1919 var isSideMenuVisible = sideMenu.classList.contains('visible'); 1920 if (isSideMenuVisible) { 1921 sideMenuHide(); 1922 } else { 1923 sideMenuShow(); 1924 } 1925 } 1926 1927 var scrollLockRequests = {}; 1928 window.__debug_scrollLockRequests = scrollLockRequests; 1929 var hideScrollStyles = ''+ 1930 'body {'+ 1931 'overflow: hidden;' + 1932 '}'; 1933 var hideScrollId = 'hide-body-scroll-style'; 1934 1935 function scrollLock () { 1936 var style = document.createElement('style'); 1937 style.id = hideScrollId; 1938 style.textContent = hideScrollStyles; 1939 document.head.appendChild(style); 1940 window.dispatchEvent(new Event('lpui-scroll-locked')); 1941 } 1942 1943 function scrollUnlock () { 1944 document.getElementById(hideScrollId)?.remove(); 1945 window.dispatchEvent(new Event('lpui-scroll-unlocked')); 1946 } 1947 1948 function requestScrollLock (lockId) { 1949 var wasLocked = Object.keys(scrollLockRequests).length > 0; 1950 scrollLockRequests[lockId || '__anonymous_lock'] = true; 1951 if (!wasLocked) { 1952 scrollLock(); 1953 } 1954 } 1955 1956 function releaseScrollLock (lockId) { 1957 if (lockId) { 1958 delete scrollLockRequests[lockId]; 1959 if (!Object.keys(scrollLockRequests).length) { 1960 scrollUnlock(); 1961 } 1962 } else { 1963 scrollLockRequests = {}; 1964 window.__debug_scrollLockRequests = scrollLockRequests; 1965 scrollUnlock(); 1966 } 1967 } 1968 1969 function showModal (modalId, options) { 1970 var modal = document.getElementById(modalId); 1971 if (!modal) { 1972 return; 1973 } 1974 1975 if (!modal.classList.contains('visible')) { 1976 modal.classList.add('visible'); 1977 if (options && options.scrollLock) { 1978 window.lpUI.requestScrollLock(modalId); 1979 } 1980 modal.dispatchEvent(new Event('lpui-show')); 1981 window.dispatchEvent(new CustomEvent('lpui-modal-show', { detail: { id: modalId } })); 1982 } 1983 1984 const visibleModals = document.querySelectorAll('.modal.visible'); 1985 1986 if (visibleModals.length > 1) { 1987 1988 const maxZIndex = Array.from(visibleModals).reduce((maxZIndex, modal) => { 1989 const zIndex = window.getComputedStyle(modal).zIndex; 1990 const parsedZIndex = zIndex !== 'auto' ? parseInt(zIndex) : 0; 1991 return Math.max(maxZIndex, parsedZIndex); 1992 }, 0); 1993 1994 modal.style.zIndex = maxZIndex + 1; 1995 } 1996 1997 } 1998 1999 function _hideModal (modalEl) { 2000 if (!modalEl) { 2001 return; 2002 } 2003 if (!modalEl.classList.contains('visible')) { 2004 return; 2005 } 2006 modalEl.classList.remove('visible'); 2007 modalEl.style.zIndex = '';
2008 modalEl.dispatchEvent(new Event('lpui-hide')); 2009 var modalId = modalEl.getAttribute('id'); 2010 if (modalId) { 2011 window.lpUI.releaseScrollLock(modalId); 2012 window.dispatchEvent(new CustomEvent('lpui-modal-hide', { detail: { id: modalId } })); 2013 } 2014 } 2015 2016 function hideModal (modalId) { 2017 _hideModal(document.getElementById(modalId)); 2018 } 2019 2020 function hideClosestModal (el) { 2021 const modal = el?.closest('.modal'); 2022 if (!modal) { 2023 return; 2024 } 2025 if (modal.classList) { 2026 _hideModal(modal); 2027 return; 2028 } 2029 if (modal.length && modal[0].classList) { 2030 _hideModal(modal[0]); 2031 } 2032 } 2033 2034 window.lpUI = { 2035 sideMenuHide: sideMenuHide, 2036 sideMenuShow: sideMenuShow, 2037 sideMenuToggle: sideMenuToggle, 2038 requestScrollLock: requestScrollLock, 2039 releaseScrollLock: releaseScrollLock, 2040 showModal: showModal, 2041 hideModal: hideModal, 2042 hideClosestModal: hideClosestModal 2043 } 2044 })(); 2045 2046 var stringifyPrimitive = function(v) { 2047 switch (typeof v) { 2048 case 'string': 2049 return v; 2050 2051 case 'boolean': 2052 return v ? 'true' : 'false'; 2053 2054 case 'number': 2055 return isFinite(v) ? v : ''; 2056 2057 default: 2058 return ''; 2059 } 2060 }; 2061 2062 function objectToQuerystring(obj, sep, eq, name) { 2063 // https://github.com/Gozala/querystring/blob/master/encode.js 2064 sep = sep || '&'; 2065 eq = eq || '='; 2066 if (obj === null) { 2067 obj = undefined; 2068 } 2069 2070 if (typeof obj === 'object') { 2071 return Object.keys(obj).map(function(k) { 2072 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 2073 if (Array.isArray(obj[k])) { 2074 return obj[k].map(function(v) { 2075 return ks + encodeURIComponent(stringifyPrimitive(v)); 2076 }).join(sep); 2077 } else { 2078 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 2079 } 2080 }).filter(Boolean).join(sep); 2081 2082 } 2083 2084 if (!name) return ''; 2085 return encodeURIComponent(stringifyPrimitive(name)) + eq + 2086 encodeURIComponent(stringifyPrimitive(obj)); 2087 } 2088 2089 function getPath(url, options) { 2090 var parser = document.createElement('a'); 2091 parser.href = url || ''; 2092 var path = parser.pathname || ''; 2093 if (path[0] !== '/') { 2094 // IE does not return path starting with a slash 2095 path = '/' + path; 2096 } 2097 2098 if (options && options.queryString) { 2099 path += parser.search; 2100 } 2101 2102 return path; 2103 } 2104 2105 function getMLSAutocomplete(keyword) { 2106 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 2107 var query = { 2108 kind: 'listings', 2109 query: keyword 2110 }; 2111 2112 return superagent 2113 .get(searchURL) 2114 .query(query) 2115 .then(function(res) { 2116 var data = res.body || []; 2117 // Array of listing_auto_complete documents: id, display_address, city, state, 2118 // price, sold_price, status, status_modified_at, photo_urls (array of URLs). 2119 2120 return data; 2121 }); 2122 } 2123 2124 function getMLSAutocompleteWithFilters(keyword, filters = {}) { 2125 var searchURL = window.location.protocol + '//' + window.location.hostname + '/home-search/auto_complete'; 2126 2127 return superagent 2128 .get(searchURL) 2129 .query({ kind: 'listings', query: keyword, ...filters }) 2130 .then(function(res) { 2131 // Same response shape as getMLSAutocomplete. 2132 return res.body || []; 2133 }); 2134 } 2135 2136 function makeMlsLink(data) { 2137 // Code Dupe from utils/googlePlace 2138 // mapping of google data type to mls data type 2139 var mapping = { 2140 neighborhood: 'neighborhood', 2141 locality: 'place', 2142 administrative_area_level_2: 'county', 2143 administrative_area_level_1: 'state', 2144 postal_code: 'postalcode', 2145 }; 2146 2147 function _filterTypes(types) { 2148 return types.filter(function(type) { return type !== 'political' }); 2149 } 2150 2151 if (!data || !Object.keys(data).length) { 2152 return '/home-search/listings'; 2153 } 2154 2155 var newData = {};
2156 _filterTypes(data.types).forEach(function(type) { 2157 if (mapping[type]) { 2158 newData.search_type = mapping[type]; 2159 } 2160 }); 2161 newData.omnibox = data.formatted_address; 2162 data.address_components.forEach(function(component) { 2163 _filterTypes(component.types).forEach(function(type) { 2164 if (mapping[type]) { 2165 newData[mapping[type]] = component.long_name; 2166 } 2167 }); 2168 }); 2169 var bounds = data.geometry.bounds; 2170 var convertedData = Object.assign(bounds, newData); 2171 2172 return '/home-search/listings?' + objectToQuerystring(convertedData); 2173 } 2174 2175 function debounce(func, wait) { 2176 let timeout; 2177 return function(...args) { 2178 const context = this; 2179 clearTimeout(timeout); 2180 timeout = setTimeout(() => func.apply(context, args), wait) 2181 } 2182 } 2183 2184 // Global methods / variables that can be accessed by element js 2185 window.luxuryPresence = { 2186 ...window.luxuryPresence, 2187 defaults: { 2188 companyId: 'a2ac92a2-c8ef-4bed-917e-1ed69140fa8a', 2189 apiGatewayUrl: '/api-gw', 2190 routerUrl: '/api-nv', 2191 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\
2191n }\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 $developmentId: ID\n $companyId: String\n $offset: Int\n $limit: Int\n $sort: String\n $sortDir: SortDirectionEnum\n $search: String\n $tag: [String!]\n $agentId: [ID!]\n $neighborhoodId: ID\n $neighborhoodIds: [ID!]\n ) {\n developments (\n developmentId: $developmentId\n companyId: $companyId\n offset: $offset\n limit: $limit\n sort: $sort\n sortDir: $sortDir\n search: $search\n tag: $tag\n agentId: $agentId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n ) {\n id\n name\n description\n descriptionShort\n slug\n createdAt\n media {\n smallUrl\n mediumUrl\n largeUrl\n xLargeUrl\n xxLargeUrl\n height\n width\n }\n googlePlaceData\n seoTitle\n seoDescription\n tags\n }\n developmentsCount(\n companyId: $companyId\n search: $search\n tag: $tag\n agentId: $agentId\n neighborhoodId: $neighborhoodId\n neighborhoodIds: $neighborhoodIds\n ) {\n count\n }\n }\n","pois":"\n query PointsOfInterest (\n $regionId: UUID!\n $radiu
2191s: 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"}, 2192 propertyPlaceholderImage: {"id":"41d42955-418d-40a6-80a1-66533210e851","alt":null,"bytes":20738,"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/jwyw1osrt9l558nsmr7g","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/jwyw1osrt9l558nsmr7g","authorUrl":null,"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/jwyw1osrt9l558nsmr7g","sourceUrl":null,"xLargeUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/jwyw1osrt9l558nsmr7g","__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/jwyw1osrt9l558nsmr7g","description":null,"displayName":"logo","originalUrl":"https://media-production.lp-cdn.com/cdn-cgi/image/format=auto,quality=85/https://media-production.lp-cdn.com/media/jwyw1osrt9l558nsmr7g","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/jwyw1osrt9l558nsmr7g","originalFileName":"Logo"} 2193 }, 2194 objectToQuerystring: objectToQuerystring, 2195 getPath: getPath, 2196 getMLSAutocomplete: getMLSAutocomplete, 2197 getMLSAutocompleteWithFilters: getMLSAutocompleteWithFilters, 2198 makeMlsLink: makeMlsLink, 2199 debounce: debounce, 2200 }; 2201 2202 var wowOffset = 100; 2203 </script>
2203 2204
2204<script> 2205 (()=>{function e(e){return e&&e.__esModule?e.default:e}var t={},i={};i={getVideoFirstFrame(e){let t="https://res.cloudinary.com/";if(!e||!e.startsWith(t))return null;let i=e.replace(t,"").replace("f_auto:video","f_auto").split("/");if(-1===i[1].toLowerCase().indexOf("video"))return null;let s=i[i.length-1];s.lastIndexOf(".")>-1?s=`${s.slice(0,s.lastIndexOf("."))}.jpg`:s+=".jpg",i[i.length-1]=s;let r=3;"videos"===i[1].toLowerCase()&&""!==i[2]&&(r=2);let a=/^(?:[a-z]{1,3}|\$\w+)_\S+$/;for(;r<i.length-1&&a.test(i[r]);)r++;return i.splice(r,0,"so_0,eo_0"),t+i.join("/")}};let s={amp:"&",lt:"<",gt:">",quot:'"',apos:"'",nbsp:" "},r=/&(?:amp|lt|gt|quot|apos|nbsp|#(?:[0-9]+|[xX][0-9a-fA-F]+));/y,a=/[<&]/g,o=/["'>]/g,n=/<\/p\s*>|<br\s*\/?>|[\r\n\u2028\u2029]/g;function l(e,t){let i="";for(let l=0;l<e.length;){a.lastIndex=l;let d=a.exec(e);if(!d){i+=e.slice(l);break}let c=d.index;i+=e.slice(l,c);let u="&"===e[c]?function(e,t){r.lastIndex=t;let i=r.exec(e);return{text:i?function(e){if("#"!==e[1])return s[e.slice(1,-1)];
2205let t="x"===e[2]||"X"===e[2],i=parseInt(e.slice(t?3:2,-1),t?16:10);return 0===i||i>1114111||i>=55296&&i<=57343?e:160===i?" ":String.fromCodePoint(i)}(i[0]):"&",end:i?r.lastIndex:t+1}}(e,c):function(e,t,i){let s=function(e,t){let i=null;o.lastIndex=t+1;let s=o.exec(e);for(;s;){let t=s[0];if(i)t===i&&(i=null);else if('"'===t||"'"===t)i=t;else if(">"===t)return o.lastIndex;s=o.exec(e)}return -1}(e,t);return{text:-1===s?"<":function(e,t,i,s){if(!s)return"";let r=e.slice(t,i);if(/^<br\s*\/?>$/.test(r))return" ";if(/^<\/p\s*>$/.test(r)){n.lastIndex=i;let t=n.exec(e);if(t&&"<"===t[0][0])return" "}return""}(e,t,s,i),end:-1===s?t+1:s}}(e,c,t);i+=u.text,l=u.end}return i}t=function(e,{isEqual:t}){let s=[{field:"thumbnailUrl",w:320},{field:"smallUrl",w:960},{field:"mediumUrl",w:1280},{field:"largeUrl",w:1920},{field:"xLargeUrl",w:2560},{field:"xxLargeUrl",w:3456}],r=function(e,t,i){let s="en-US";if(!e)return"";if("string"==typeof e){let t=e.trim();if(/[^+\-0-9.]/.test(t))return e;if(!(e=parseFloat(t)))return""}let r="number"==typeof i?i:0,a=Number.isInteger(e)?0:r,o={minimumFractionDigits:a,maximumFractionDigits:a};return"USD"===t?`$${e.toLocaleString(s,o)}`:"CAD"===t?`$${e.toLocaleString(s,o)} CAD`:"EUR"===t?`\u{20AC}${e.toLocaleString(s,o)}`:"GBP"===t?`\xa3${e.toLocaleString(s,o)}`:"PERCENT"===t?`${e}%`:"number"==typeof i&&i>-1?e.toLocaleString(s,{maximumFractionDigits:i}):e.toLocaleString(s)},a=function(e){switch(e){case"DAY":return"daily";case"MONTH":return"monthly";case"WEEK":return"weekly";case"YEAR":return"yearly";case"QUARTER":return"quarterly";case"HALF_YEAR":return"semi-annually";case"NIGHTLY":return"nightly";case"SEASONAL":return"seasonally";default:return""}},o=function(e){switch(e){case"DAY":return"day";case"WEEK":return"wk";case"MONTH":return"mo";case"YEAR":return"yr";case"QUARTER":return"3 mos";case"HALF_YEAR":return"6 mos";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},n=function(e){switch(e){case"DAY":return"day";case"WEEK":return"week";case"MONTH":return"month";case"YEAR":return"year";case"QUARTER":return"quarter";case"HALF_YEAR":return"6 months";case"NIGHTLY":return"night";case"SEASONAL":return"season";default:return""}},d=function(e,t){let i,s,r=t||{};switch(r.mode){case"short":i=o(e),s=r.frequencySeparator||"/";break;case"standard":case"std":i=n(e),s=r.frequencySeparator||"/";break;default:i=a(e),s=r.frequencySeparator||" "}return i?r.frequencyTag||r.frequencyClass?`${s}<${r.frequencyTag||"span"}${r.frequencyClass?` class="${r.frequencyClass}"`:""}>${i}</${r.frequencyTag||"span"}>`:s+i:""};return{isEmpty(e,t){let i=!e||"string"==typeof e&&!e.trim()||!Object.keys(e).length;return t.fn?i?t.fn(this):t.inverse(this):i},ifEquals(e,i,s){return t(e,i)?s.fn(this):s.inverse(this)},"raw-helper":function(e){return e.fn()},striptags:e=>e?l(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!1):"",striptagsLineBreaks:e=>e?l(e=(e=e.replace(/<\!--(.|[\r\n])*?-\->/g,"")).replace(/<(xml|style|svg)("[^"]*"|'[^']*'|[^>])*>(.|[\r\n])*?<\/\1>/gi,""),!0):"",truncate:(e,t,i)=>e?e.length>t?"string"==typeof i?e.slice(0,t-i.length)+i:e.slice(0,t):e:"",setSubArray(e=[],t,i,s,r){r.data.root[s]=e.slice(t,i)},formatAreaUnit(e){switch(e){case"ACRE":return"Acres";case"SQUARE_METER":return"Sq.M.";case"SQUARE_YARD":return"Sq.Yd.";default:return"Sq.Ft."}},formatFrequency:a,formatFrequencyShort:o,lpFormatFrequency:(e,t)=>d(e,t&&t.hash),subArray(e,t,i,s){return e>=t&&e<i?s.fn(this):s.inverse(this)},formatPropertyStatus(e,t,i){let s="";switch(e){case"SOLD":s="Sold";break;case"FOR_SALE":s="For Sale";break;case"COMING_SOON":s="Coming Soon";break;case"INACTIVE":s="Inactive";break;case"POCKET_LISTING":s="Pocket Listing";break;case"PENDING":s="Pending";break;case"UNDER_CONTRACT":s="Under Contract";break;case"ACTIVE_UNDER_CONTRACT":s="Active Under Contract";break;default:s=e}return("Sold"===s||"Leased"===s)&&t&&"string"==typeof i&&i&&(s+=` on ${i}`),s},formatGrade(e){switch(e){case"UNDERGRADUATE_COURSES":return"Undergrad";case"PRE_KINDERGARTEN":return"PreK";case"KINDERGARTEN":return"K";case"FIRST_GRADE":return"1st";case"SECOND_GRADE":return"2nd";case"THIRD_GRADE":return"3rd";case"FOURTH_GRADE":return"4th";case"FIFTH_GRADE":return"5th";case"SIXTH_GRADE":return"6th";case"SEVENTH_GRADE":return"7th";case"EIGHTH_GRADE":return"8th";case"NINTH_GRADE":return"9th";case"TENTH_GRADE":return"10th";case"ELEVENTH_GRADE":return"11th";case"TWELFTH_GRADE":return"12th";default:return""}},encodeURI:e=>encodeURI(e),encodeURIComponent:e=>encodeURIComponent(e),hbFormatDate(e,t){if(!e)return"";let i="current"===e?new Date:new Date(e);if(Number.isNaN(i.getTime()))return"";if("YYYY"===t||"year"===t)return`${i.getFullYear()}`;if("MM/DD/YY"===t){let e=i.getMonth()+1;return e<10&&(e=`0${e.toString()}`),`${e}/${i.getDate()}/${i.getFullYear().toString().substr(-2)}`}return`${["January","February","March","April","May","June","July","August","September","October","November","December"][i.getMonth()]} ${i.getDate()}, ${i.getFullYear()}`},openHousesFormat(e,t,i){if(!e||!t)return"";let s=e=>{let t=e.getHours();t>12&&(t-=12);let i=`${t}:${e.getMinutes()>9?e.getMinutes():"0"+e.getMinutes()}`;return e.getHours()>11?i+="PM":i+="AM",i},r="",a=e,o=t;
2205i&&(a=new Date(e).toLocaleString("en-US",{timeZone:i}),o=new Date(t).toLocaleString("en-US",{timeZone:i}),[,,,r]=new Date(t).toLocaleString("en-US",{timeZone:i,timeZoneName:"short"}).split(" "));let n=new Date(a),l=n.toLocaleDateString("en-US"),d=s(n),c=s(new Date(o));return`${l} ${d} - ${c} ${r}`},math:(e,t,i)=>(e=parseFloat(e),({"+":e+(i=parseFloat(i)),"-":e-i,"*":e*i,"/":e/i,"%":e%i})[t]),findByKey(e,t,i,s){let r=(e||[]).find(e=>e[t]===i);return s.fn(r)},capitalize(e,t,i){let s;return"string"==typeof e&&e.length&&(s=e.toLowerCase().split(t).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ").toString()),s},and:(...e)=>Array.prototype.slice.call(e).every(Boolean),or:(...e)=>Array.prototype.slice.call(e,0,-1).some(Boolean),not:e=>!e,orderByIds(t,i,s){let r="",a=null;s.data&&(a=e.createFrame(s.data));let o=(i||[]).filter(Boolean);if(o&&o.length){let e=0;r=o.reduce((i,r,o)=>{let n=(t||[]).find(e=>e.id===r);return n?(a&&(a.index=o-e),i+s.fn(n,{data:a})):(e+=1,i)},"")}else for(let e=0,i=(t||[]).length;e<i;e++)a&&(a.index=e),r+=s.fn(t[e],{data:a});return r},ifIn(e,t,i){return t&&t.indexOf(e)>-1?i.fn(this):i.inverse(this)},partial:(t,i)=>(e.registerPartial(t,e.compile(i.fn())),`
2205<script type="text/x-handlebars-template" class="${t} pagination-script">${i.fn()}<\/script>`),numCompare(e,t,i,s){return({"==":function(e,t){return e==t},"===":function(e,t){return e===t},"!=":function(e,t){return e!=t},"<":function(e,t){return e<t},">":function(e,t){return e>t},"<=":function(e,t){return e<=t},">=":function(e,t){return e>=t}})[i](e,t)?!s.fn||s.fn(this):!!s.fn&&s.inverse(this)},lpFormatNumber:r,arrayToHtmlList:(e,t)=>e.reduce((e,t)=>{try{if("object"==typeof t||null===t)return e;return e+=`<li>${t}</li>`}catch(e){}},""),join:(e,t,i)=>e&&e.join?e.join("string"==typeof t?t:", "):"",dedupe(t,i,s){let r=null,a=0,o=new Set;return s.data&&(r=e.createFrame(s.data)),(t||[]).reduce((e,t,n)=>{let l=i?t[i]:t;return!o.has(l)||i&&void 0===l?(o.add(l),r&&(r.index=n-a),e+s.fn(t,{data:r})):(a+=1,e)},"")},JSONstringify:(e,t)=>JSON.stringify(e),formatPropertyPrice(...t){let i=t[t.length-1].hash,s=t.length>1?t[0]:i.property,a=i.precision||0;t.length>2&&(i.mode=t[1]),i.mode||(i.mode="short");let o=t.length>3?t[2]:i.separator;if("string"!=typeof o&&(o=" | "),s.isPasswordProtected)return"Exclusive Listing";let n=t.length>4?t[3]:i.priceUponRequestText;if("string"!=typeof n&&(n="Price Upon Request"),s.priceUponRequest)return n;let l=s.salesPrice,c=null;"SOLD"!==s.status&&"Leased"!==s.status&&s.reducedPrice&&(i.reducedClass?c=s.reducedPrice:l=s.reducedPrice);let u="";c&&(u+=`<${i.reducedTag||"span"} class="${i.reducedClass}">${r(c,s.currency,a)}</${i.reducedTag||"span"}>`),l&&(l=r(l,s.currency,a),i.priceTag||i.priceClass?u+=`<${i.priceTag||"span"}${i.priceClass?` class="${i.priceClass}"`:""}>${l}</${i.priceTag||"span"}>`:u+=l);let h=s.leasePrice&&r(s.leasePrice,s.currency,a);if(h){u&&(u+=o);let e=`${h}${d(s.leasePeriod,i)}`;i.leaseTag||i.leaseClass?u+=`<${i.leaseTag||"span"}${i.leaseClass?` class="${i.leaseClass}"`:""}>${e}</${i.leaseTag||"span"}>`:u+=e}
2205return new e.SafeString(u)},mediaImage(t,i={}){if(!t)return;let{lazy:r,...a}=i.hash,o="",n="";if("string"==typeof t)o=t;else{let e={},{height:r,width:l,altTagText:d}=t;s.forEach(i=>{t[i.field]&&!e[t[i.field]]&&(e[t[i.field]]=i.w)});let c=Object.keys(e);if(!c.length)return;if(d&&(a.alt=d),r&&l&&(r>=l&&(a.class?a.class+=" portrait":a.class="portrait"),"setDims"in i.hash&&(a.width=l,a.height=r)),c.length>1&&l&&l<e[c[c.length-1]]){let t=c.findIndex(t=>e[t]>=l);c.splice(t+1),e[c[c.length-1]]=l}c.length>1&&(n=c.map(t=>`${t} ${e[t]}w`).join(", "),c.sort((t,i)=>Math.abs(e[t]-1280)-Math.abs(e[i]-1280))),o=c[0]}delete a.setDims,n||delete a.sizes,"alt"in a||(a.alt=""),!("loading"in a)&&(i?.data?.root?.sectionIndex>1||r)&&(a.loading="lazy");let l=Object.keys(a).map(t=>`${e.escapeExpression(t)}="${e.escapeExpression(a[t])}"`).join(" ");return new e.SafeString(`<img src="${o}"${n?` srcset="${n}"`:""}${l?` ${l}`:""}>`)},bgImage:e=>e?"string"==typeof e?e:e.largeUrl||e.url||"":"",concat(...e){let t="";for(let i in e)null!==e[i]&&void 0!==e[i]&&"object"!=typeof e[i]&&(t+=e[i]);return t},setVideoExtension(e,t){if(!e||!t)return"";let i=new URL(e);if("res.cloudinary.com"!==i.host)return i.pathname.endsWith(`.${t}`)?e:"";let s=i.pathname.lastIndexOf("."),r=i.pathname;return -1!==s&&(r=i.pathname.substr(0,s)),i.pathname=`${r}.${t}`,i.toString()},addVideoSources(e){if(!e)return"";if(!e.includes("res.cloudinary.com"))return`<source data-src="${e}">`;let t=e.replace(/\.(?:3gp|mpeg|mp4|m4v|m4p|ogv|ogg|mov|webm)$/,"");return[{format:"webm",codec:"vp9",htmlCodecs:";codecs=vp9"},{format:"mp4",codec:"h265",htmlCodecs:";codecs=hvc1"},{format:"mp4",codec:"h264",htmlCodecs:""}].map(e=>{let i=`${t.replace(/f_auto(?::video)?(?:,q_auto(?::\w+)?)?/,`f_${e.format},vc_${e.codec},q_auto:best,w_1920,c_limit`)}.${e.format}`;return`<source data-src="${i}" type="video/${e.format}${e.htmlCodecs}">`}).join("\n")},cloudinaryVideoFirstFrame:i.getVideoFirstFrame,initials(e,t){if(!e)return"";t?.hash?.endChar&&(e=e.split(t.hash.endChar)[0]);let i=+t?.hash?.maxChars||2,s=e.match(/\b\w/g)?.slice(0,i);return s?(t?.hash?.addText&&(s=s.map(e=>e+t.hash.addText)),s.join(t?.hash?.joinWith||"").toUpperCase()):""},normalizePhone(e){if(!e)return"";let t=String(e).trim();return(t.startsWith("+")?"+":"")+t.replace(/\D/g,"")}}};class d{constructor(e,t,i){if(this.config=e,this.window=t,this.document=i,!this.destroy)throw Error("Controllers must implement a deconstructor")}}let c="lp_lead_form_conversion_fired";function u(e,t){if(e&&t&&"function"==typeof t.sendGoogleTagManagerEvent&&!function(e){try{return"true"===e.sessionStorage.getItem(c)}catch{return!1}}(e))try{t.sendGoogleTagManagerEvent("event","generate_lead");try{e.sessionStorage.setItem(c,"true")}catch{}}catch{}}function h(e){return!!e&&(!!e.expired||Date.now()>=e.expiresAt)}let p="/api/v1/home-valuation";class m extends d{destroy(){}_cleanAddressString(e){if(!e||"string"!=typeof e)return"";let t=e.trim();if(t.includes("User entered address:")){let e=t.match(/User entered address:\s*\n?\s*([^\n]+)/);e&&e[1]&&(t=e[1].trim())}let i=t.indexOf(", call time frame:");return -1!==i&&(t=t.substring(0,i).trim()),t}_transformAddressComponents(e){let t=t=>(e.find(e=>e.componentType===t)||{}).componentName?.text,i={},s=t("street_number"),r=t("route"),a=t("administrative_area_level_1"),o=t("postal_code"),n=t("subpremise"),l=t("locality")||t("sublocality_level_1")||t("neighborhood");return s&&(i.streetNumber=s),r&&(i.streetName=r),l&&(i.city=l),a&&(i.state=a),o&&(i.zipcode=o),n&&(i.addressLine2=n),i}_extractAddressAndCoordinates(e){let t=null,i=null;if(e?.result){let{result:s}=e;s.address?.addressComponents&&(t=this._transformAddressComponents(s.address.addressComponents)),s.geocode?.location&&(i={latitude:s.geocode.location.latitude,longitude:s.geocode.location.longitude})}return{structuredAddress:t,coordinates:i}}_filterEmptyStrings(e){let t={};for(let[i,s]of Object.entries(e))""!==s&&null!=s&&(t[i]=s);return t}_getRawAddress(e){let t=e.activity.content||{},i=e.activity.comments_attributes?.[0]?.text;return[t.address,t["property-address"],t.property_address,t.Property_Address,i,t.message,t.homeValuationAddress,t.propertyAddress].map(e=>e&&this._cleanAddressString(e)).find(Boolean)||""}_logLeadEvent(e,t,i=null){let s={event:e,companyId:this.config.companyId,websiteId:this.config.websiteId,timestamp:new Date().toISOString(),hasEmail:!!t.activity?.author_email,hasAddress:!!this._getRawAddress(t)};if(i&&(s.errorMessage=i.userMessage||(i.status?`Request failed with status ${i.status}`:"An error occurred"),s.errorName=i.name,s.errorStatus=i.status),console.error(`[HomeValuation] ${e}`,JSON.stringify(s)),this.window.posthog)try{this.window.posthog.capture(e,s)}catch(e){console.error("[HomeValuation] PostHog capture failed:",e)}}_getUserFriendlyErrorMessage(e){return"AbortError"===e.name||e.message?.includes("timeout")?"Connection timed out. Please try again.":"TypeError"===e.name&&e.message?.includes("fetch")?"Unable to connect. Please check your internet connection and try again.":503===e.status||502===e.status||504===e.status?"Service temporarily unavailable. Please try again in a moment.":400===e.status?"Please check your information and try again.":"Something went wrong. Please try again or c
2205ontact us directly."}_formatStructuredAddress(e){if(!e||0===Object.keys(e).length)return"";let t=[];return t.push([e.streetNumber,e.streetName,e.addressLine2].filter(Boolean).join(" ")),t.push([[e.city,e.state].filter(Boolean).join(", "),e.zipcode].filter(Boolean).join(" ")),t.filter(Boolean).join(", ")}_buildHomeValuationData(e,t,i,s){let r=this._formatStructuredAddress(i)||this._getRawAddress(e);if(!r)throw Error("Unable to extract home valuation address from form data");let a={companyId:e.companyId,homeValuationAddress:r,homeValuationEstimate:t?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0,minimumFractionDigits:0}).format(t):null,websiteId:e.page.websiteId,sourceUrl:e.activity.source_url},o={leadEmailAddress:e.activity.author_email,leadFullName:e.activity.author_name,leadFirstName:e.activity.firstName,leadLastName:e.activity.lastName,leadPhoneNumber:e.activity.author_phone,parcelId:e.activity.content?.parcelId,resourceId:e.page.pageMeta?.resourceId,pageId:e.page.pageId,sourceResource:e.page.pageMeta?.s
2205ourceResource,pageElementId:e.page.pageMeta?.pageElementId,formId:e.page.pageMeta?.formId,utmSource:e.activity.content?.utm_source,utmMedium:e.activity.content?.utm_medium,utmCampaign:e.activity.content?.utm_campaign,utmTerm:e.activity.content?.utm_term,utmContent:e.activity.content?.utm_content,utmId:e.activity.content?.utm_id,timeToSell:e.activity.content?.timeToSell,lookingToBuy:e.activity.content?.lookingToBuy,consented:!!e.activity.content?.termsAccepted,referrer:e.referrer,content:e.activity.content||{},fields:e.fields||{}},n=this._filterEmptyStrings(o);return{...a,...n,...i&&{address:i},...s&&{coordinates:s}}}async _validateAddressSafely(e){if(!e)return console.error("Home valuation: No address found in form data"),null;try{return await this._validateAddressWithGoogleMaps(e)}catch(e){throw console.error("Error validating address with Google Maps:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}async _getHomeValuationEstimateSafely(e){try{return await this._getHomeValuationEstimate(e)}catch(e){throw console.error("Error getting home valuation estimate:",e),e.userMessage=this._getUserFriendlyErrorMessage(e),e}}_isSafeRedirectUrl(e){try{let{protocol:t}=new URL(e,this.window.location.href);return"https:"===t||"http:"===t}catch{return!1}}_parseResponsePayload(e){try{return e?JSON.parse(e):{}}catch{return{raw:e}}}_createResponseError(e,t){let i=Error(e&&"object"==typeof e&&Object.keys(e).length?e.message||JSON.stringify(e):"Request failed");return e&&"object"==typeof e&&Object.keys(e).length&&Object.assign(i,e),i.status=t,i}_resolveValuationApiBase(){let{config:e}=this;if(void 0!==e.valuationApiBase&&null!==e.valuationApiBase&&(""!==e.valuationApiBase||!e.isBuilder))return e.valuationApiBase;if(e.websiteApiGatewayUrl)return e.websiteApiGatewayUrl;throw Error("websiteApiGatewayUrl/valuationApiBase not configured for home valuation")}async _submitLead(e,t,i){let s=new AbortController,r=setTimeout(()=>s.abort(),1e4);try{let a=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),signal:s.signal});clearTimeout(r);let o=await a.text(),n=this._parseResponsePayload(o);if(!a.ok)throw this._createResponseError(n,a.status);if(n&&"success"===n.status&&n.redirectUrl){if(h(i))return n;if(!this._isSafeRedirectUrl(n.redirectUrl))return console.error("Home valuation: refusing redirect to unsupported protocol"),n;return this.window.location.href=n.redirectUrl,{redirected:!0,url:n.redirectUrl}}return n}catch(e){throw clearTimeout(r),e}}async _submitHomeValuationRequest(e){let t=this._resolveValuationApiBase();this._logLeadEvent("home_valuation_submission_started",e);try{let i=this._getRawAddress(e),s=null;try{s=await this._validateAddressSafely(i)}catch(t){throw this._logLeadEvent("home_valuation_address_validation_failed",e,t),t}let r=null;try{r=await this._getHomeValuationEstimateSafely(s)}catch(t){this._logLeadEvent("home_valuation_estimate_failed",e,t),r=null}let{structuredAddress:a,coordinates:o}=this._extractAddressAndCoordinates(s),n=`${t}${p}`,l=this._buildHomeValuationData(e,r,a,o),d=await this._submitLead(n,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:i}=this,s=t.googleMapsAPIKey;if(!s&&i.luxuryPresence?.mapApiLoader&&(s=await i.luxuryPresence.mapApiLoader.getMapApiKey()),!s)throw Error("Google Maps API key not configured");let r=new AbortController,a=setTimeout(()=>r.abort(),1e4);try{let t=await fetch(`https://addressvalidation.googleapis.com/v1:validateAddress?key=${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({address:{addressLines:[e]},enableUspsCass:!1}),signal:r.signal});if(clearTimeout(a),!t.ok){let e=Error(`Address validation failed: ${t.status}`);throw e.status=t.status,e}return t.json()}catch(e){throw clearTimeout(a),e}}_hasMandatoryAddressFields(e){return!!(e.streetNumber&&e.streetName&&e.city&&e.state&&e.zipcode)}_logMissingAddressFields(e){let t=[];e.streetNumber||t.push("streetNumber"),e.streetName||t.push("streetName"),e.city||t.push("city"),e.state||t.push("state"),e.zipcode||t.push("zipcode"),console.log("Home valuation estimate skipped - missing required fields:",t.join(", "),"Available fields:",Object.keys(e).join(", "))}_buildAddressQueryString(e){return Object.entries(e).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")}async _getHomeValuationEstimate(e=null){let t=`${this._resolveValuationApiBase()}${p}`;if(!e?.result?.address?.addressComponents)return null;let i=this._transformAddressComponents(e.result.address.addressComponents);if(!this._hasMandatoryAddressFields(i))return this._logMissingAddressFields(i),null;let s=this._buildAddressQueryString(i),r=`${t}?${s}`,a=new AbortController,o=setTimeout(()=>a.abort(),1e4);try{let e=await fetch(r,{headers:{Accept:"application/json"},signal:a.signal});if(clearTimeout(o),!e.ok){let t=Error(`Home valuation estimate failed: ${e.status}`);throw t.status=e.status,t}let t=await e.json();return t?.valueDollars??null}catch(e){throw clearTimeout(o),e}}}let g="middleName",y="redirect-pending",f=["name","firstName","lastName",g,"email","phone","phoneNumber","source","message","mlsId","sourceUrl"],v="lp_map_key_failed",w="oauthSuccess",b={cookieyes:{eventName:"cookieyes_consent_update",hasAnalyticsConsent:e=>(function(e){let t=e.cookie.match(/cookieyes-consent=([^;
2205]+)/);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 S(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function _(e,t){t.forEach(t=>{let i=e[t];Array.isArray(i)&&0===i.length&&delete e[t]})}function I(e,t,i,s){let r=t.map(t=>(function e(t){return Array.isArray(t)?t.flatMap(t=>e(t)):"string"==typeof t?t.split(/\s+/).filter(Boolean):null==t?[]:[t]})(e[t])),a=s?.merge?r.flat():r.find(e=>e.length>0)??[];t.forEach(t=>{delete e[t]}),a.length>0&&(e[i]=[...new Set(a)])}function E(e){let t={...e};if(t.urlWebsite||(t.urlWebsite=null),t.urlYoutube=null,t.urlFacebook=null,t.urlInstagram=null,t.urlLinkedin=null,t.urlPodcast=null,t.urlTwitter=null,Array.isArray(e.socialLinks)){let i=[...e.socialLinks].sort((e,t)=>{let i=e.type?.toLowerCase()||"",s=t.type?.toLowerCase()||"";return i.localeCompare(s)});t.socialLinks=i;let s={youtube:"urlYoutube",facebook:"urlFacebook",instagram:"urlInstagram",linkedin:"urlLinkedin",podcast:"urlPodcast",twitter:"urlTwitter"};i.forEach(e=>{let i=s[e.type?.toLowerCase()??""];i&&(t[i]=e.link)})}return t}function A(e){return e&&Array.isArray(e)?e.map(e=>E(e)):e}function L(e){let{region:t}=e;if(!S(t))return e;let{schools:i,pois:s,...r}=t,a={...r,schools:S(i)?i.data??[]:[],...Array.isArray(s)?{pois:s.map(e=>({...e,category:"string"==typeof e.category?e.category.toUpperCase():e.category}))}:{}};return{...e,region:a}}function x(e){return e&&Array.isArray(e)?e.map(e=>L(e)):e}function $(e){let t=e.featuresAndAmenities;if(!Array.isArray(t))return e;let i=t.map(e=>({featureIds:e.featureIds??[],features:e.features??[],description:e.description}));return{...e,featuresAndAmenities:i}}function T(e){return e&&Array.isArray(e)?e.map(e=>$(e)):e}function C(e,t){return S(e)?t(e):e}function k(e,t){return Array.isArray(e)?t(e):e}var M={};M=` 2206 query PropertyDisclaimers($input: PropertyDisclaimersInput!) { 2207 propertyDisclaimers(input: $input) { 2208 feedId 2209 listingId 2210 resolvedFromListing 2211 listingCardAttribution 2212 listingDetailCourtesy 2213 listingDetailFooter 2214 logo 2215 } 2216 } 2217`;let P={mlsAttribution:"listingCardAttribution",mlsLogo:"logo",listingDetailCourtesy:"listingDetailCourtesy",listingDetailFooter:"listingDetailFooter"},U=new class{constructor(e){this.isBuilder=!1,this.companyId=null,this.websiteId=null,this.pageId=null,this.shareId=null,this.pageMeta=null,this.websiteApiGatewayUrl=null,this.buyerSellerServiceUrl=null,this.leadIngesterUrl=null,this.divolteServiceUrl=null,this.eventBus=null,this.templateId=null,this.myhomeDashboardEnabled=!1,this.mlsEnabled=!1,this.hstValuationRedirectEnabled=!1,this.hvStepTwoCaptureEnabled=!1,this.googleMapsAPIKey=null}get valuationApiBase(){return this.isBuilder?this.websiteApiGatewayUrl:""}destroy(){}setPage(e,t={}){this.pageId=e,this.shareId=t.shareId||null,this.pageMeta={sourceResource:t.sourceResource,pageElementId:t.pageElementId,pageQueryVariables:t.pageQueryVariables||{}}}setIsBuilder(e){this.isBuilder=e}setCompany(e,t={}){this.companyId=e}setWebsite(e,t={}){this.websiteId=e,t.myhomeDashboardEnabled&&(this.myhomeDashboardEnabled=t.myhomeDashboardEnabled),t.mlsEnabled&&(this.mlsEnabled=t.mlsEnabled),t.hstValuationRedirectEnabled&&(this.hstValuationRedirectEnabled=t.hstValuationRedirectEnabled),t.hvStepTwoCaptureEnabled&&(this.hvStepTwoCaptureEnabled=t.hvStepTwoCaptureEnabled)}setWebsiteApiGatewayUrl(e,t={}){this.websiteApiGatewayUrl=e}setBuyerSellerServiceUrl(e,t={}){this.buyerSellerServiceUrl=e}setDivolteServiceUrl(e,t={}){this.divolteServiceUrl=e}setEventBusUrl(e,t={}){this.eventBusUrl=e}setTemplateId(e,t={}){this.templateId=e}setLeadIngesterUrl(e,t={}){this.leadIngesterUrl=e}setGoogleMapsAPIKey(e,t={}){this.googleMapsAPIKey=e}setEventBus({enabled:e,apiKey:t,url:i}){this.eventBus={enabled:e,apiKey:t,url:i}}}({}),N=new class extends d{constructor(e,t,i){super(e,t,i),this.setLoginState=this.setLoginState.bind(this),this.pageId=null,this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}initialize(e){try{let{config:t,document:i}=this;this.pageId=t.pageId,this.modals=i.querySelectorAll("body > #modals >
2217 .modal"),e.modals.forEach(e=>{this._attachModalHandler(e)})}catch(e){console.log(e)}}destroy(){let{document:e}=this;this.exitModalEventListeners.forEach(t=>{e.removeEventListener("mouseout",t)}),this.modals=[],this.exitModalTriggered={},this.exitModalEventListeners=[]}setModalWithExpiry(e){let{window:t}=this,i=new Date().getTime()+864e5,s=`modal-controller-${e}`;try{t.localStorage.setItem(s,JSON.stringify(i))}catch(e){}}setLoginState(){let{window:e}=this;try{e.localStorage.setItem("isSignedUp","true")}catch(e){}}getModalWithExpiry(e){let{window:t}=this,i=t.localStorage,s=i.getItem(`modal-controller-${e}`);if(!s)return!1;let r=JSON.parse(s);return!(new Date().getTime()>r)||(i.removeItem(`modal-controller-${e}`),!1)}show(e,t={}){let{window:i}=this,s=this.getModalWithExpiry(e);(e&&!s||!0===t.forced)&&(i.lpUI.showModal(`modal-${e}`,t),this.setModalWithExpiry(e))}_attachModalHandler(e){let{pageId:t}=this,{trigger:i,pageSpecific:s}=e;(!s||e.pages.map(e=>e.pageId).includes(t))&&("EXIT"===i?this._exitModalHandler(e):"TIMER"===i?this._timerModalHandler(e):"FORCED"===i&&this._forcedModalHandler(e))}_exitModalHandler(e){let t=this,{document:i,exitModalTriggered:s}=this,{modalId:r}=e;function a(e){!s[r]&&(e.toElement||e.relatedTarget||(t.show(r),s[r]=!0))}i.addEventListener("mouseout",a),this.exitModalEventListeners.push(a)}_timerModalHandler(e){let{modalId:t,timerDelay:i}=e;setTimeout(()=>{this.show(t)},i)}_forcedModalHandler(e){let{modalId:t}=e,{window:i,document:s}=this;if("true"!==i.localStorage.getItem("isSignedUp")){let e=s.querySelector(`#modal-${t}`),r=e?.querySelector("form"),a=r?.dataset.delay||2e3;r.addEventListener("formsubmitted",()=>{this.setLoginState()}),i.addEventListener("oauthSuccess",()=>{this.setLoginState(),r.classList.add("success"),setTimeout(()=>{i.lpUI.hideModal(`modal-${t}`),r.reset(),r.classList.remove("success")},a)}),this.show(t,{forced:!0})}}}(U,window,document),R=new class extends d{constructor(e,t,i){super(e,t,i),this._boundClickHandler=this._buttonClickHandler.bind(this)}initialize(e={}){try{let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler),e.body.addEventListener("click",this._boundClickHandler)}catch(e){console.error(e)}}destroy(){let{document:e}=this;e.body.removeEventListener("click",this._boundClickHandler)}_buttonClickHandler(e){this._handleButtonClick(e).catch(e=>console.error(e))}async _handleButtonClick(e){let{window:t,document:i}=this,s=e.target.closest("button, a");if(!s)return;let r=s.dataset.type||"",a=s.href||s.dataset.href||"",o=s.target||"",{submit:n}=s.dataset;if(n){try{await this._handleSubmit(s)}catch(e){console.error(e)}((e,t=!1)=>{if(e){if(t)return window.open(e);window.location.assign(e)}})(a,"_blank"===o)}if(this._trackConversion(s),"VIDEO"===r)return void this._handleVideoButton(s);if("CONTACT_US"===r)return void this._handleContactUsButton(s);if("SUBSCRIBE"===r)return void t.lpUI.showModal("modal-global-subscribe");if("MY_ACCOUNT"===r)return void t.lpUI.showModal("modal-global-my-account");if("SHARE_POPUP"===r){let t=s.querySelector(".share-popup");t&&(t.style.display="flex"),e.stopPropagation();return}if("MODAL_"===r.substring(0,6)){let e=r.substring(6);t.lpUI.showModal(`modal-${e}`);return}if(a?.startsWith("mailto:")){let e=a.substring(7);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Email",eventValue:e})}else if(a?.startsWith("tel:")){let e=a.substring(4);i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"Phone",eventValue:e})}}async _handleSubmit(e){let t=e.closest("form"),{window:i}=this;return t?await i.luxuryPresence.contactForms.submitForm(t):null}_getVimeoSrc(e){if(!e||!e.includes("vimeo.com")||e.length>2e3)return null;let t=e.match(/(?:(?:www\.)?vimeo\.com\/(?:showcase\/\d+(?:\/video\/|\?video[=/])|channels\/(?:\w+\/)?|groups\/(?:[^/]*)\/videos\/|)|player\.vimeo\.com\/video\/)(\d+)(?:(?:\?.*&*h=|\/)+([\d,a-f]+))?/);if(!t)return null;let[,i,s]=t,r=`https://player.vimeo.com/video/${i}?`;return s&&(r+=`h=${s}&`),r+="autoplay=1"}_handleVideoButton(e){let{document:t}=this,i=e.closest("section"),{src:s}=e.dataset,r="";if(s&&(s.includes("youtube.com")||s.includes("youtu.be"))&&!s.includes("youtube.com/embed")){let e=s.match(/(?:youtube\.com\/\S*(?:(?:\/e(?:mbed))?\/|watch\?(?:\S*?&?v=)
2217)|youtu.be\/)([a-zA-Z0-9_-]{6,11})/);e&&(r=e[1])}let a=this._getVimeoSrc(s);if(r?s=`https://youtube.com/embed/${r}?autoplay=1&controls=0`:a&&(s=a),!s||!i)return;let o=s.endsWith(".mp4")||s.endsWith(".webm")||s.includes("cloudinary.com"),n=` 2218 <div id="modal-${i.id}" class="modal visible"> 2219 <div class="modal-content"> 2220 <div class="lightbox-video"> 2221 <div class="video-player"> 2222 <div class="embed-container"> 2223 ${o?`<video controls autoplay src="${s}"></video>`:`<iframe frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" width="100%" height="100%" src="${s}"></iframe>`} 2224 </div> 2225 </div> 2226 </div> 2227 </div> 2228 <button class="close lp-close" type="button" aria-label="close modal"><span class="lp-close-icon" aria-hidden="true"></span></button> 2229 </div> 2230 `;t.body.insertAdjacentHTML("beforeend",n);let l=t.getElementById(`modal-${i.id}`);l.querySelector(".close").addEventListener("click",()=>{l.remove()})}_handleContactUsButton(e){let{window:t,document:i}=this;i.sendGoogleAnalyticsEvent({hitType:"event",eventCategory:"button",eventAction:"click",eventLabel:"contact"}),t.lpUI.showModal("modal-global-contact-us",{scrollLock:!0})}_trackConversion(e){let{window:t,document:i}=this,{gtagConversionId:s,gtagConversionLabel:r,fbEventName:a}=e.dataset;if(s&&r){t.dataLayer&&t.dataLayer.length&&(t.dataLayer.some(e=>e.length&&"config"===e[0]&&e[1]===s)||i.sendGoogleTagManagerEvent("config",s));let e=`${s}/${r}`;i.sendGoogleTagManagerEvent("event","conversion",{send_to:e})}t.fbq&&a&&t.fbq("track",a,{})}}(U,window,document),B=new class extends d{constructor(e,t,i){super(e,t,i),this.validatedForms=[]}initialize(e={}){try{let{window:t,document:i}=this,{selector:s}=e,r=[];if(r=s?i.querySelectorAll(`${s} form[data-type="contact-form"]`):i.querySelectorAll('form[data-type="contact-form"]'),i.querySelectorAll('input[type="tel"]').length&&!t.libphonenumber&&t?.luxuryPresence?.libs){let{loadJs:e,jsLibsMap:i}=t.luxuryPresence.libs,{libphonenumber:s}=i;e(s.jsSrc,this.attachValidation.bind(this,r))}else this.attachValidation(r);this.validatedForms=this.validatedForms.concat(r)}catch(e){console.log(e)}}destroy(){this.validatedForms=[]}attachValidation(e){e.forEach(e=>{e.querySelectorAll("input, select, textarea").forEach(e=>{this.applyFieldValidation(e)})})}applyFieldValidation(e){"tel"===e.getAttribute("type")&&this._applyPhoneValidation(e)}_applyPhoneValidation(e){let{window:t}=this;if(t.libphonenumber){let i=t.libphonenumber.isValidPhoneNumber;e.addEventListener("keyup",function(){if(this.hasAttribute("required")||this.value.replace(/\s/g,"").length)try{let e=this.value;i(e,"US")?this.setCustomValidity(""):this.setCustomValidity("Please enter a valid phone number.")}catch(e){this.setCustomValidity("Please enter a valid phone number.")}else this.setCustomValidity("")})}}}(U,window,document),D=new class extends d{constructor(e,t,i){super(e,t,i),this.forms=[],this.homeValuationService=new m(e,t,i)}initialize(e={}){try{let{document:t}=this,{selector:i}=e,s=[];(s=i?t.querySelectorAll(`${i} form[data-type="contact-form"]`):t.querySelectorAll('form[data-type="contact-form"]')).forEach(e=>{this._attachSubmitHandler(e)}),this.forms=this.forms.concat(s)}catch(e){console.log(e)}}destroy(){this.forms=[]}submitForm(e){this._handleSubmit(null,e).catch(e=>console.error(e))}_attachValidation(e){let{window:t}=this;e.querySelectorAll("input, select, textarea").forEach(e=>{t.luxuryPresence.validation.applyFieldValidation(e)})}_attachSubmitHandler(e){e.addEventListener("submit",t=>this._handleSubmit(t,e))}_extractFormValues(e){let t=new FormData(e),i={},s=[],r=/^name(?:-\d+)?$/;return t.forEach((e,t)=>{if("string"==typeof e){let a=e.trim();r.test(t)&&a&&s.push(a);let o=i[t];i[t]=o?`${o} ${a}`:a}else i[t]=e}),s.length?i.name=s.join(" ").trim():!i.name&&i.firstName&&(i.name=i.firstName,i.lastName&&(i.name+=` ${i.lastName}`)),this._deriveNameParts(i)}_deriveNameParts(e){if(e.firstName||!e.name)return e;let t=e.name.indexOf(" ");return -1===t?{...e,firstName:e.name}:{...e,firstName:e.name.slice(0,t),lastName:e.lastName||e.name.slice(t+1).trim()}}_buildSubmissionData(e,t,i){let{window:s,config:r}=this,a=Object.keys(e).filter(e=>!f.includes(e)).reduce((t,i)=>(t[i]=e[i],t),{}),{pageId:o,companyId:n,websiteId:l,pageMeta:d}=r,c=s.localStorage.getItem("utm_vars")||"{}",u=s.localStorage.getItem("referrer")||"",h=this._getFormId(i);return{activity:{author_email:e.email,author_name:e.name,firstName:e.firstName||void 0,lastName:e.lastName||void 0,author_phone:e.phone||e.phoneNumber,activity_source:e.source||"CONTACT_INQUIRY",comments_attributes:[{text:e.message||void 0}],source_url:s.location.href,content:{...a,...JSON.parse(c)}},page:{pageId:o,companyId:n,websiteId:l,pageMeta:{...d,formId:h}},companyId:n,referrer:u,fields:t}}_handleSubmissionSuccess(e){let{window:t}=this,i=e.dataset.delay||2e3;e.classList.remove("loading"),e.classList.remove("error"),e.classList.add("success"),e.querySelectorAll(".success").forEach(e
2230=>e.classList.remove("hide")),e.dispatchEvent(new Event("formsubmitted")),setTimeout(()=>{t.lpUI.hideClosestModal(e),e.reset(),t.lpUI.sideMenuHide(),e.querySelectorAll(".success").forEach(e=>e.classList.add("hide")),e.classList.remove("success")},i)}async _handleSubmit(e,t){if(e&&e.preventDefault(),!t.classList.contains("loading")){this._hideSubmissionError(t),t.classList.remove("error"),t.classList.add("loading");try{let e=this._extractFormValues(t);if(e.middleName)return void t.classList.remove("loading");let i=this._getFields(t),s=this._buildSubmissionData(e,i,t);u(this.window,this.document);let r=await this._waitForLeadSubmit(e=>this._submitLeadRequest(s,e));if(this._sendGAEvent(s),r?.redirected)return void this._showRedirectPending(t);this._handleSubmissionSuccess(t)}catch(e){console.error("Form submission failed:",e),t.dispatchEvent(new Event("formsubmiterror")),t.classList.remove("loading"),t.classList.add("error"),e.userMessage?this._showSubmissionError(t,e.userMessage):this._showSubmissionError(t,"Something went wrong. Please try again.")}}}async _waitForLeadSubmit(e){let t,i={expired:!1,expiresAt:Date.now()+6e3},s=new Promise(e=>{t=setTimeout(()=>{i.expired=!0,e(null)},6e3)}),r=e(i).catch(e=>{if(h(i))return null;throw e});try{return await Promise.race([r,s])}finally{clearTimeout(t)}}_showRedirectPending(e){if(e.classList.add(y),e.querySelector(`.${y}__indicator`))return;let t=this.document.createElement("div");t.className=`${y}__indicator`,t.setAttribute("role","status"),t.setAttribute("aria-label","Loading"),t.innerHTML='<span class="lp-i lp-i--spinner lp-i--pulse" aria-hidden="true"></span>',e.appendChild(t)}_aliasUserWithEventBus(e){try{if(!this.window.eventBusProvider?.alias||!this.window.eventBusProvider?.isIdentified||!this.window.eventBusProvider?.getDistinctId||!this.window.LuxuryPresenceEventBus?.generateUUIDv5FromCompanyEmail)return;if(this.window.eventBusProvider.isIdentified())return void console.log("[EventBus] User already identified, skipping alias");let t=e.activity?.author_email,{companyId:i}=this.config;if(!t||!i)return void console.warn("[EventBus] Missing required data for user alias");let s=this.window.eventBusProvider.getDistinctId();if(!s)return void console.warn("[EventBus] No anonymous ID available for alias");let r=this.window.LuxuryPresenceEventBus.generateUUIDv5FromCompanyEmail(i,t);this.window.eventBusProvider.alias({anonId:s,canonicalId:r}),console.log("[EventBus] User aliased with canonical ID")}catch(e){console.error("[EventBus] User alias failed:",e)}}async _submitLeadRequest(e,t){let{config:i}=this;return(this._aliasUserWithEventBus(e),i.myhomeDashboardEnabled&&(e.activity?.activity_source==="HOME_VALUATION"||e.activity?.activity_source==="HOME_VALUE"))?this.homeValuationService._submitHomeValuationRequest({...e,deadline:t}):fetch(`${i.leadIngesterUrl}/api/v1/leads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then(e=>e.ok?e.json():e.json().then(e=>{throw e}))}_sendGAEvent(e){let{document:t}=this,i={hitType:"event",eventCategory:"button",eventAction:"click"};switch(e.activity.activity_source){case"NEWSLETTER_SIGNUP":i.eventLabel="Newsletter",t.sendGoogleTagManagerEvent("event","newsletter_signup");break;case"HOME_SEARCH":i.eventLabel="HomeSearch",t.sendGoogleTagManagerEvent("event","home_search");break;case"HOME_VALUE":case"HOME_VALUATION":i.eventLabel="HomeValue",t.sendGoogleTagManagerEvent("event","home_valuation");break;case"EBOOK":i.eventLabel="Ebook",t.sendGoogleTagManagerEvent("event","ebook_download");break;default:i={hitType:"pageview",page:"/thank-you"},t.sendGoogleTagManagerEvent("event","contact_inquiry")}t.sendGoogleAnalyticsEvent(i)}_getFields(e){let t=e.querySelectorAll("input, select, textarea"),i={};return t.forEach(t=>{let{id:s,name:r,type:a}=t;if(r===g)return!0;let o="";if(s){let i=e.querySelector(`label[for='${s}']`);i?o=i.textContent.trim():t.placeholder&&(o=t.placeholder.trim())}i[r]={label:o,type:t.tagName,inputType:"INPUT"===t.tagName?a:"text"}}),i}_getFormId(e){let t=e.closest("section[id^='section-'], footer[id], .modal[id^='modal-']");return t?.id?this._cleanFormId(t.id):""}_cleanFormId(e){for(let t of["section-","modal-"])if(e.startsWith(t))return e.substring(t.length);return e}_showSubmissionError(e,t){let i=e.querySelector(".submission-error-message");i||((i=this.document.createElement("div")).className="submission-error-message",i.setAttribute("role","alert"),e.appendChild(i)),i.textContent=t||"Something went wrong. Please try again.",i.style.display="block"}_hideSubmissionError(e){let t=e.querySelector(".submission-error-message");t&&(t.style.display="none")}}(U,window,document),O=new class extends d{constructor(e,t,i){super(e,t,i),this.retries=3,this.callbacks=[],this.id=`__googleMapsScriptId${Date.now()}`,this._apiKey="",this.reset()}set apiKey(e){this._apiKey=e,this.config.setGoogleMapsAPIKey(e)}get apiKey(){return this._apiKey}reset(){this.deleteScript(),this.done=!1,this.loading=!1,this.failed=!1,this.errors=[],this.onerrorEvent=null}destroy(){this.reset()}async getMapApiKey(){if(this.apiKey)return this.apiKey;let e=this._hadPreviousFailure(),t=!1;for(let i=1;i<=3;i+=1){let s=e&&!t;try{let e=await fetch(this._getMapKeyUrl(i,s));if(t=t||s,this._setFailureFlag(!1),!e.ok)throw Error(`Failed to fetch API key: ${e.status}`);let r=await e.text();if(!r)return"";return this.apiKey=r,this.apiKey}catch(e){console.error(e),i<3&&await this._delay(300*2**(i-1))}}return this._setFailureFlag(!0),""}_getMapKeyUrl(e,t){let i=[];e>1&&i.push(`attempt=${e}`),t&&i.push("recovered_after_failure=1");let s=i.length?`?${i.join("&")}`:"";return`${this._getBaseUrl()}/api/v1/map${s}`}_hadPreviousFailure(){try{return"1"===this.window.sessionStorage.getItem(v)}catch(e){return!1}}_setFailureFlag(e){try{e?this.window.sessionStorage.setItem(v,"1"):this.window.sessionStorage.removeItem(v)}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");
2230let t="https://maps.googleapis.com/maps/api/js";return t+`?callback=__googleMapsCallback&key=${e}&libraries=places`}async setScript(){let e;if(this.document.getElementById(this.id))return void this.callback();try{e=await this.createUrl()}catch(e){console.error(e),this.failed=!0,this.loading=!1,this.onerrorEvent=e,this.callback();return}let t=this.document.createElement("script");t.id=this.id,t.type="text/javascript",t.src=e,t.onerror=this.loadErrorCallback.bind(this),t.defer=!0,t.async=!0,this.document.head.appendChild(t)}loadErrorCallback(e){if(this.errors.push(e),this.errors.length<=this.retries){let e=this.errors.length*2**this.errors.length;console.log(`Failed to load Google Maps script, retrying in ${e} ms.`),setTimeout(()=>{this.deleteScript(),this.setScript().catch(e=>console.error(e))},e)}else this.failed=!0,this.onerrorEvent=e,this.callback()}deleteScript(){let e=this.document.getElementById(this.id);e&&e.remove()}load(){return this.loadPromise()}loadPromise(){return new Promise((e,t)=>{this.loadCallback(i=>{i?t(i):e()})})}loadCallback(e){this.callbacks.push(e),this.execute()}setCallback(){this.window.__googleMapsCallback=this.callback.bind(this)}resetIfRetryingFailed(){this.failed&&this.reset()}callback(){this.done=!0,this.loading=!1,this.callbacks.forEach(e=>{e(this.onerrorEvent)}),this.callbacks=[]}execute(){this.window.google&&this.window.google.maps&&this.window.google.maps.version&&this.callback(),this.resetIfRetryingFailed(),this.done?this.callback():this.loading||(this.loading=!0,this.setCallback(),this.setScript().catch(e=>console.error(e)))}_getBaseUrl(){let{isBuilder:e,websiteApiGatewayUrl:t}=this.config;return e?t:""}resizeStaticMapDimensions(e,t){if(e<=1024&&t<=1024)return{width:e,height:t};let i=Math.min(1024/e,1024/t);return{width:parseInt(e*i),height:parseInt(t*i)}}convertThemeToStaticApiUrl(e){return e.map(e=>{let t=e.stylers.reduce((e,t)=>{let i=t.visibility?`visibility:${t.visibility}`:"",s=t.color?`color:${t.color.replace("#","0x")}`:"",r=t.lightness?`lightness:${t.lightness}`:"";return`${e}|${i}${s}${r}`},""),i=e.elementType?`|element:${e.elementType}`:"";return`feature:${e.featureType}${i}${t}`})}async getMapApiSignedUrl(e){try{let t=await fetch(`${this._getBaseUrl()}/api/v1/map/signature?${e}`);if(!t.ok)throw Error("Failed to fetch signed URL");let{url:i}=await t.json();return i}catch(e){return console.error(e),""}}generateStaticMapUrl(e,t,i,s,r,a){let{width:o,height:n}=this.resizeStaticMapDimensions(r,a),l={center:`${e},${t}`,zoom:i,scale:2,size:`${o}x${n}`,key:this.apiKey};s&&(l.style=this.convertThemeToStaticApiUrl(s));let d=new URLSearchParams;return Object.entries(l).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>d.append(e,t.toString())):d.append(e,t.toString())}),`https://maps.googleapis.com/maps/api/staticmap?${d.toString()}`}async generateDigitallySignedStaticMapUrl({srcWidth:e,srcHeight:t,theme:i,...s}){let{width:r,height:a}=this.resizeStaticMapDimensions(e,t),o={...s,size:`${r}x${a}`};i&&(o.style=this.convertThemeToStaticApiUrl(i));let n=new URLSearchParams;Object.entries(o).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>n.append(e,t.toString())):n.append(e,t.toString())});let l=n.toString();try{return await this.getMapApiSignedUrl(l)}catch(e){return console.error(e),""}}}(U,window,document),q=new class extends d{destroy(){}updateQueryString(e,t,i){i||(i=this.window.location.href);let s=RegExp(`([?&])${e}=.*?(&|#|$)`,"i"),r="";null!=t&&(Array.isArray(t)?t.length&&(r=this.serializeArray(e,t)):"object"==typeof t?(s=RegExp(`([?&])${e}\\[[^=]*\\]=.*?(&|#|$)`,"i"),r=this.serializeObj(t,"",e)):r=`${e}=${encodeURIComponent(t)}`);let a=i.split("#"),o=a[0];if(s.test(i)){let e=o;for(r=r?`$1${r}$2`:"$1";s.test(e);)o=e.replace(s,r),e=e.replace(s,"$1");o=o.replace(/(&|\?)$/,"")}else if(r){let e=-1!==o.indexOf("?")?"&":"?";o+=`${e}${r}`}return void 0!==a[1]&&null!==a[1]&&(o+=`#${a[1]}`),o}getParameterByName(e,t){t||(t=this.window.location.href),e=e.replace(/[[\]]/g,"\\$&");let i=RegExp(`[?&]${e}(=([^&#]*)|&|#|$)`),s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat();if(!s.length){let i=RegExp(`[?&]${e}(\\[.*?\\])=(.*?)(?=&|#|$)`,"g");return s=Array.from(RegExp.prototype[Symbol.matchAll].call(i,t)).flat(),this._parseParamToObject(s,"advancedFilters"===e)}return s.length>3?s.reduce((e,t,i)=>((i+1)%3==0&&e.push(decodeURIComponent(t.replace(/\+/g," "))),e),[]):s[2]?decode
2230URIComponent(s[2].replace(/\+/g," ")):""}makePageKey(e){return e.replace("section-","").replace(/-/g,"")}makeParamKey(e,t){return e.global?e.urlKey:`${t}-${e.urlKey}`}deserializeParams(e,t){let i={},s=this.makePageKey(t),r=this.getParameterByName(s);return r&&(i.page=parseInt(r)),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,s),r=this.getParameterByName(t);if("int"===e.type)isFinite(r=parseInt(r))||(r=null);else if("bool"===e.type||"boolean"===e.type)r="true"===r||"false"!==r&&null;else if("json"===e.type)try{r=JSON.parse(r)}catch(e){}i[e.formKey||e.param]=r}),i}serializeParams(e,t,i){let s=this.window.location.href,r=this.makePageKey(t);return s=this.updateQueryString(r,i.page,s),Array.isArray(e)&&e.forEach(e=>{let t=this.makeParamKey(e,r),a=i[e.formKey||e.param];"json"===e.type&&null!=a&&(a=JSON.stringify(a)),s=this.updateQueryString(t,a,s)}),s}formatSliderAtom(e,t=""){return t+(Number.isInteger(e)?e:e.toFixed(2))}formatSliderValue(e,t="",i=""){return e<1e3?this.formatSliderAtom(e,t):e<1e6?`${this.formatSliderAtom(e/1e3,t)}${i}K`:`${this.formatSliderAtom(e/1e6,t)}${i}M`}formatSliderPriceRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e,i," ")}`:t.max===e?`${this.formatSliderValue(e,i," ")}${s.highSuffix}`:`${this.formatSliderValue(e,i," ")}`}formatSliderAreaRange(e,t,i,s){return t.min===e&&0!==e?`${s.lowPrefix}${this.formatSliderValue(e)} ${i}`:t.max===e?`${this.formatSliderValue(e)}${s.highSuffix} ${i}`:`${this.formatSliderValue(e)} ${i}`}getSearchFormValues(e){let{queryElement:t,priceSliderElement:i,areaSliderElement:s,neighborhoodSelect:r}=e,a={};if(t&&(a.search=t.value||null),i){let e=i.value.split(";"),t=parseInt(i.dataset.min),s=parseInt(i.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.priceMin=r!==t?r:null,a.priceMax=o!==s?o:null}if(s){let e=s.value.split(";"),t=parseInt(s.dataset.min),i=parseInt(s.dataset.max),r=parseInt(e[0]),o=parseInt(e[1]);a.areaMin=r!==t?r:null,a.areaMax=o!==i?o:null}return r&&(a.neighborhoodId=r.value||null),a}serializeObj(e,t="",i=""){let s=[];for(let r in e)if(e.hasOwnProperty(r)){let a,o=e[r];if(i){let e=t?`[${t}][${r}]`:`[${r}]`;a=`${i}${e}`}else a=t?`${t}[${r}]`:r;null!==o&&Array.isArray(o)?o.length&&s.push(this.serializeArray(a,o)):null!==o&&"object"==typeof o?s.push(this.serializeObj(o,a)):s.push(`${a}=${encodeURIComponent(o)}`)}return s.join("&")}serializeArray(e,t,i=""){let s=[];return t.forEach(t=>{let r=i?`${i}${e}`:e;s.push(`${r}=${encodeURIComponent(t)}`)}),s.join("&")}_parseParamToObject(e,t=!1){if(!e.length)return null;let i={};for(let s=0;s<e.length;s++)if((s+1)%3==0){let r=decodeURIComponent(e[s].replace(/\+/g," ")),a=e[s-1];Object.assign(i,this._setObjectPath(a,r,i,t))}return i}_setObjectPath(e,t,i,s=!1){let r=e.split(/[\[\]]/).filter(Boolean),a=["in","nin","btw","ciin","cinin"],o={},n=o,l=((e,t,i)=>{if(!t)return;let s=(Array.isArray(t)?t:t.match(/([^[.\]])+/g)).reduce((e,t)=>e&&e[t],e);return void 0===s?i:s})(i,r.join("."));return r.forEach((e,o)=>{o===r.length-1?l?n[e]=Array.isArray(l)?[...l,t]:[l,t]:n[e]=s&&a.includes(e)?[t]:t:(n[e]=i[e]?i[e]:{},n=n[e])}),o}}(U,window,document),V=new class extends d{constructor(e,t,i){super(e,t,i),this._createLightbox=this._createLightbox.bind(this),this.expandSliders=[]}initialize(e={}){try{let{document:e}=this,t=e.querySelectorAll(".has-mobile-expand");t.forEach(e=>{this._addExpandButton(e)}),this.expandSliders=this.expandSliders.concat(t)}catch(e){console.log(e)}}destroy(){let{document:e}=this;e.querySelectorAll(".lp-expand-btn, .lp-expand-btn-wrapper").forEach(e=>e.remove()),this.expandSliders=[]}_addExpandButton(e){let{document:t}=this,i=e.closest("section[id]"),s=e.dataset.append,r=i.querySelector(".lp-expand-btn");if(!r)if((r=t.createElement("button")).className="lp-expand-btn",r.setAttribute("aria-label","Open a lightbox"),r.innerHTML='<span class="lp-i lp-i--expand-alt" aria-hidden="true"></span>',s){let e=i.querySelector(s);e&&e.appendChild(r)}else{let i=t.createElement("div");i.className="lp-expand-btn-wrapper",i.style.position="relative",i.appendChild(r),e.parentNode.insertBefore(i,e.nextSibling)}r.addEventListener("click",()=>{this._createLightbox({slider:e,section:i})})}_createLightbox({slider:e,section:t,initialIndex:i}){let{window:s,document:r}=this,a=`lightbox-for-${t?.id}`,o=s.$&&s.$.fn.slick,n=o&&e.slick,l="function"==typeof s.Splide,d=e.classList.contains("is-initialized")&&e.classList.contains("splide");function c(){let t=r.createElement("div");t.id=a,t.className="lp-lightbox",t.setAttribute("tabindex","-1"),t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true"),t.innerHTML=` 2231 <button class="lp-lightbox__close" aria-label="close modal"></button> 2232 <div class="lp-lightbox__content"> 2233 <div class="lp-lightbox__carousel splide" role="group" aria-label="Image Gallery"> 2234 <div class="splide__arrows"> 2235 <button class="splide__arrow splide__arrow--prev lp-lightbox-arrow lp-lightbox-arrow--prev"></button> 2236 <button class="splide__arrow splide__arrow--next lp-lightbox-arrow lp-lightbox-arrow--next"></button> 2237 </div> 2238 <div class="splide__track"> 2239 <ul class="splide__list"></ul> 2240 </div> 2241 </div> 2242 </div> 2243 `,"function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",r.body.appendChild(t);let o=t.querySelector(".lp-lightbox__carousel"),n=o.querySelector(".splide__list");t.classList.add("show"),(d?e.querySelectorAll(".splide__slide:not(.splide__slide--clone) img"):e.querySelectorAll("img")).forEac
2243h(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("li");i.className="lp-lightbox__slide splide__slide",i.appendChild(t),n.appendChild(i)});let l=new s.Splide(o,{rewind:!0,arrows:!0,arrowPath:"",type:"loop",clones:1,pagination:!1,perPage:1,perMove:1});l.mount(),void 0!==i&&i>=0&&l.go(i),setTimeout(()=>{t.focus()},100);let c=e=>{if(!t.classList.contains("show"))return;let i=t.querySelector(".splide__arrow--prev"),s=t.querySelector(".splide__arrow--next"),r=t.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&i?(e.preventDefault(),i.click()):"ArrowRight"===e.key&&s?(e.preventDefault(),s.click()):"Escape"===e.key&&r&&(e.preventDefault(),r.click())};r.addEventListener("keydown",c),t.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",c),t.classList.remove("show"),l&&l.destroy(),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",t.remove()})}if("function"==typeof s.lpUI.requestScrollLock?s.lpUI.requestScrollLock(a):r.body.style.overflow="hidden",o&&!d){let t,i,o,l,d;i={arrows:!0,dots:!1,infinite:!0,draggable:!0,prevArrow:'<button type="button" class="lp-lightbox-arrow--prev lp-lightbox-arrow" aria-label="Previous"></button>',nextArrow:'<button type="button" class="lp-lightbox-arrow--next lp-lightbox-arrow" aria-label="Next"></button>'},(o=r.createElement("div")).id=a,o.className="lp-lightbox",o.setAttribute("tabindex","-1"),o.setAttribute("role","dialog"),o.setAttribute("aria-modal","true"),o.innerHTML=` 2244 <button class="lp-lightbox__close" aria-label="close modal"></button> 2245 <div class="lp-lightbox__content"> 2246 <div class="lp-lightbox__carousel"></div> 2247 </div> 2248 `,r.body.appendChild(o),l=o.querySelector(".lp-lightbox__carousel"),o.classList.add("show"),n?(t=e.slick.$slides.find("img"),i.initialSlide=e.slick?.currentSlide||0,t.each(function(){s.$(".lp-lightbox__carousel").append(s.$(this).clone(!1).removeAttr("style").wrap('<div class="lp-lightbox__slide"></div>').parent())})):(t=e.querySelectorAll("img")).forEach(e=>{let t=e.cloneNode(!0);t.removeAttribute("style");let i=r.createElement("div");i.className="lp-lightbox__slide",i.appendChild(t),l.appendChild(i)}),s.$(l).slick(i),setTimeout(()=>{o.focus()},100),d=e=>{if(!o.classList.contains("show"))return;let t=o.querySelector(".lp-lightbox-arrow--prev"),i=o.querySelector(".lp-lightbox-arrow--next"),s=o.querySelector(".lp-lightbox__close");"ArrowLeft"===e.key&&t?(e.preventDefault(),t.click()):"ArrowRight"===e.key&&i?(e.preventDefault(),i.click()):"Escape"===e.key&&s&&(e.preventDefault(),s.click())},r.addEventListener("keydown",d),o.querySelector(".lp-lightbox__close").addEventListener("click",()=>{r.removeEventListener("keydown",d),o.classList.remove("show");let t=l?.slick?s.$(l).slick("slickCurrentSlide"):0;l?.slick&&s.$(l).slick("unslick"),n&&s.$(e).slick("slickGoTo",t),"function"==typeof s.lpUI.releaseScrollLock?s.lpUI.releaseScrollLock(a):r.body.style.overflow="",o.remove()})}else l?c():(s.luxuryPresence.libs.loadCss(s.luxuryPresence.libs.jsLibsMap.splide.cssSrc),s.luxuryPresence.libs.loadJs(s.luxuryPresence.libs.jsLibsMap.splide.jsSrc,()=>{c(),s.luxuryPresence.libs.jsLibsMap.splide.isLoaded=!0}))}}(U,window,document),F=new class extends d{destroy(){this.window.divolte||(this.window.divolteLp=function(){(this.window.divolteLp.q=this.window.divolteLp.q||[]).push(arguments)})}initialize(e={}){let{divolteServiceUrl:t}=this.config;t&&!this.window.divolte&&this.loadScript()}loadScript(){let{divolteServiceUrl:e}=this.config,t=this.document.createElement("script");t.id="divolte-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/divolte.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){(this.window.divolteLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.divolteLp=this.divolteLp.bind(this)}divolteLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpEvent(e,t){if(!e.includes("pageView"))return void console.log(`${e} IS NOT SUPPORTED`);let{companyId:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n}=this.config;this.window.divolte.signal(e,Object.assign({companyId:i,templateId:s,websiteId:r,pageId:a,shareId:o,pageMeta:n},t))}sendLpPageView(){this.sendLpEvent("pageView",{})}}(U,window,document),j=new class extends d{constructor(e,t,i){super(e,t,i)}initialize(e={}){(void 0!==e.enabled?e.enabled:this.config.eventBus?.enabled)&&this.config.eventBus?.apiKey&&this.config.eventBus?.url&&this.loadScript()}loadScript(){let{eventBusUrl:e}=this.config,t=this.document.createElement("script");t.id="posthog-script",t.type="text/javascript",t.defer=!0,t.async=!0,t.src=`${e}/v2.8.0/event-bus-js.js`,this.document.head.appendChild(t),t.addEventListener("load",this.executeQueue.bind(this))}executeQueue(){this.window.LuxuryPresenceEventBus&&(this.window.eventBusProvider=this.window.LuxuryPresenceEventBus.createEventBusProvider({apiKey:this.config.eventBus.apiKey,host:this.config.eventBus.url,defaultSource:"frontend://website-render-engine"}
2248)),(this.window.eventBusLp.q||[]).forEach(([e,t])=>{this[e](t)}),this.window.eventBusLp=this.eventBusLp.bind(this)}destroy(){if(!this.window.eventBusProvider){this.window.eventBusLp=function(){(this.window.eventBusLp.q=this.window.eventBusLp.q||[]).push(arguments)};return}this.window.eventBusProvider.shutdown()}sendLpEvent(e,t){if("user.activity.page.viewed"!==e)return void console.log(`${e} IS NOT SUPPORTED`);if(!this.window.eventBusProvider)return;let{companyId:i}=this.config;try{this.window.eventBusProvider.capture(e,{company:i,data:{}})}catch(e){console.log("EventBus capture error:",e)}}eventBusLp(e,t){try{this[e](t)}catch(e){console.log(e)}}sendLpPageView(){this.sendLpEvent("user.activity.page.viewed",{})}}(U,window,document),H=new class extends d{constructor(e,t,i){super(e,t,i),this.successListeners=[],this._listenToMessages=this._listenToMessages.bind(this),this._listenToOneTapMessage=this._listenToOneTapMessage.bind(this)}initialize(e={}){try{e.googleSignOnEnabled&&!e.iframe&&this._renderGoogleOneTap(),this.document.querySelectorAll('div[data-signin-type="google-sign-in"]').forEach(e=>this._convertGoogleSignIn(e)),this.document.querySelectorAll('div[data-signin-type="facebook-sign-in"]').forEach(e=>this._convertFacebookSignIn(e))}catch(e){console.log(e)}}destroy(){this.successListeners.forEach(e=>{this.window.removeEventListener("message",this._listenToMessages),this.window.removeEventListener("message",this._listenToOneTapMessage),this.window.removeEventListener(w,this.window[e])})}_renderGoogleOneTap(){if(!this._isGoogleOneTapOnCooldown()){let e=this.document.createElement("div");google.accounts.id.initializeIntermediate({src:this._buildUrlAndCopyAttributes(e,e,"googleOneTap")}),this.window.localStorage.removeItem("googleOneTapExpiration"),this.window.addEventListener("message",this._listenToOneTapMessage)}}_listenToOneTapMessage(e){let t="show_intermediate_iframe",{buyerSellerServiceUrl:i}=this.config,{data:s,origin:r}=e,{type:a,height:o,event:n,source:l,token:d}=s;if(a===t||"hide_intermediate_iframe"===a){let e=this.document.getElementById("onetap_google_intermediate_iframe");e&&(e.style.height=o,e.style.display=a===t?"unset":"none")}r===i&&"GOOGLE_SIGN_ON"===l&&("success"===n?(this._setExpirationLsItem(864e5),this._handleQualifyingQuestionsModal(d)):"cancel"===n&&this._setExpirationLsItem(72e5))}_setExpirationLsItem(e){let t=new Date().getTime()+e;this.window.localStorage.setItem("googleOneTapExpiration",t)}_isGoogleOneTapOnCooldown(){return Number(this.window.localStorage.getItem("googleOneTapExpiration"))>new Date().getTime()}_convertGoogleSignIn(e){this._replaceWithIframe("googleSignIn",e)}_convertFacebookSignIn(e){this._replaceWithIframe("facebookSignIn",e)}_replaceWithIframe(e,t){this._attachSuccessCallback(t);let i=this.document.createElement("iframe");i.src=this._buildUrlAndCopyAttributes(t,i,e),i.dataset.isSocialOauthButton=!0,t.replaceWith(i)}_listenToMessages(e){let{buyerSellerServiceUrl:t}=this.config;if(e.origin===t&&"success"===e.data.event){let e=new Event(w);this.window.dispatchEvent(e),u(this.window,this.document),this.successListeners.forEach(t=>{this.window[t]?this.window[t](e):console.error(`Callback function ${t} not found on window object`)}),this.document.documentElement.classList.add("is-login-success")}}_attachSuccessCallback(e){this.window.addEventListener("message",this._listenToMessages);let t=e.dataset.onSuccessFunctionName;t&&this.successListeners.push(t)}_buildUrlAndCopyAttributes(e,t,i){let{buyerSellerServiceUrl:s,companyId:r,websiteId:a,pageId:o,pageMeta:n}=this.config,{location:l}=this.window,d=l.origin+l.pathname,c=new URL(`${s}/buttons/${i}`),u=this.window.localStorage.getItem("utm_vars"),h=this.window.localStorage.getItem("referrer");c.searchParams.append("companyId",r),c.searchParams.append("websiteId",a),c.searchParams.append("pageId",o),c.searchParams.append("sourceUrl",d),c.searchParams.append("pageMeta",JSON.stringify(n)),u&&c.searchParams.append("utm",u),h&&c.searchParams.append("referrer",h);let p=["data-size","data-width","data-text","data-button-type","data-shape","data-layout","data-max-rows","data-use-continue-as","data-type","data-theme","data-logo_alignment","data-locale"];
2248return Array.from(e.attributes).forEach(e=>{p.includes(e.nodeName)?c.searchParams.append(e.nodeName,e.nodeValue):t.setAttribute("id"===e.nodeName?"data-id":e.nodeName,e.nodeValue)}),c.toString()}_decodeToken(e){try{let t=e.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),i=4-t.length%4,s=4===i?t:t+"=".repeat(i);return JSON.parse(atob(s))}catch(e){return null}}_handleQualifyingQuestionsModal(e){if(e&&this.window.luxuryPresence&&this.window.luxuryPresence.qualifyingQuestionsModal){let t=this._decodeToken(e);t&&t.email&&this.window.luxuryPresence.qualifyingQuestionsModal.showModal(t.email,"Google Sign On")}}}(U,window,document),G=new class extends d{constructor(e,t,i){super(e,t,i),this.showModal=this.showModal.bind(this),this.hasModalBeenSubmitted=this.hasModalBeenSubmitted.bind(this),this.modalId="qualifying-questions-modal",this.cookieKey="qualifyingQuestionsModalSubmitted",this.qualifyingQuestionsModalEnabled=!0,this.eventListeners=[],this.timeouts=[]}initialize(e={}){this.qualifyingQuestionsModalEnabled=e.qualifyingQuestionsModalEnabled??this.qualifyingQuestionsModalEnabled,this.qualifyingQuestionsModalEnabled&&this.attachModalCloseListeners()}destroy(){this.eventListeners.forEach(({element:e,event:t,handler:i})=>{e&&e.removeEventListener&&e.removeEventListener(t,i)}),this.timeouts.forEach(e=>{clearTimeout(e)}),this.restoreBodyScroll(),this.eventListeners=[],this.timeouts=[]}hasModalBeenSubmitted(){return"true"===this.getCookie(this.cookieKey)}setModalSubmittedCookie(){this.setCookie(this.cookieKey,"true",365)}showModal(e,t){!this.qualifyingQuestionsModalEnabled||this.hasModalBeenSubmitted()||(this.updateEmailValue(e),this.updateTriggerSourceValue(t),this.showModalElement())}getModalElement(){let e=this.document.getElementById(this.modalId);return e||console.error("Modal element not found:",this.modalId),e}updateEmailValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector('input[name="email"]');i&&"string"==typeof e&&(i.value=e)}updateTriggerSourceValue(e){let t=this.getModalElement();if(!t)return;let i=t.querySelector(`#${this.modalId}-triggerSource`);i&&"string"==typeof e&&(i.value=e)}showModalElement(){let e=this.getModalElement();e&&(e.style.display="flex",this.blockBodyScroll())}getCookie(e){let t=`; ${this.document.cookie}`.split(`; ${e}=`);return 2===t.length?decodeURIComponent(t.pop().split(";").shift()):null}setCookie(e,t,i){let s="";if(i){let e=new Date;e.setTime(e.getTime()+864e5*i),s=`; expires=${e.toUTCString()}`}let r="; path=/; SameSite=Lax";this.window&&this.window.location&&"https:"===this.window.location.protocol&&(r+="; Secure"),this.document.cookie=`${e}=${encodeURIComponent(t||"")}${s}${r}`}blockBodyScroll(){this._prevOverflow=this.document.body.style.overflow,this.document.body.style.overflow="hidden"}restoreBodyScroll(){this.document.body.style.overflow=this._prevOverflow||"",this._prevOverflow=null}attachModalCloseListeners(){let e=this.getModalElement();if(!e)return;let t=this.document.getElementById(`${this.modalId}-form`);if(t){let i=()=>{this.setModalSubmittedCookie();let t=setTimeout(()=>{e.style.display="none",this.restoreBodyScroll()},100);this.timeouts.push(t)};t.addEventListener("formsubmitted",i),this.eventListeners.push({element:t,event:"formsubmitted",handler:i})}let i=e.querySelector('[data-dismiss="modal"]');if(i){let t=()=>{e.style.display="none",this.restoreBodyScroll()};i.addEventListener("click",t),this.eventListeners.push({element:i,event:"click",handler:t})}let s=t=>{(t.target===e||t.target.id===this.modalId)&&(e.style.display="none",this.restoreBodyScroll())};e.addEventListener("click",s),this.eventListeners.push({element:e,event:"click",handler:s})}}(U,window,document),K=new class extends d{constructor(e,t,i){super(e,t,i),this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null,this.validationCacheDuration=3e5}destroy(){this.isValidating=!1,this.lastValidationResult=null,this.lastValidationTime=null}async validateSession(e={}){let{useCache:t=!0}=e;if(t&&null!==this.lastValidationResult&&this.lastValidationTime&&Date.now()-this.lastValidationTime<this.validationCacheDuration)return this.lastValidationResult;if(this.isValidating)return null!==this.lastValidationResult&&this.lastValidationResult;this.isValidating=!0;let i=` 2249 query { 2250 validSession { 2251 success 2252 } 2253 } 2254 `;try{let e=await this.window.fetch("/graphql",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({query:i})});if(!e.ok)return console.error("SessionController: HTTP error during session validation",e.status),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let t=await e.json();if(t.errors)return this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1;let s=t.data?.validSession?.success===!0;return this.lastValidationResult=s,this.lastValidationTime=Date.now(),s}catch(e){return console.error("SessionController: Error validating session",e),this.lastValidationResult=!1,this.lastValidationTime=Date.now(),!1}finally{this.isValidating=!1}}clearCache(){this.lastValidationResult=null,this.lastValidationTime=null}}(U,window,document),z=new class extends d{constructor(e,t,i){super(e,t,i),this.consentListener=null,this.eventName=null}destroy(){this.consentListener&&this.eventName&&(this.document.removeEventListener(this.eventName,this.consentListener),this.consentListener=null)}loadScript(){this.document.getElementById("posthog-script")||this.window.luxuryPresence.eventBus.initialize({enabled:this.config.eventBus?.enabled}),this.document.getElementById("divolte-script")||this.window.luxuryPresence.divolte.initialize({})}removeScripts(){this.window.luxuryPresence?.eventBus?.destroy?.(),this.window.luxuryPresence?.divolte?.destroy?.(),this.document.getElementById("posthog-script")?.remove(),this.document.getElementById("divolte-script")?.remove()}async initialize(e={}){let t=b[e.provider];if(!t)return;this.eventName=t.eventName;let i=await this.window.luxuryPresence.session.validateSession();(t.hasAnalyticsConsent(this.document,this.window)||i)&&this.loadScript(),this.consentListener||(this.consentListener=e=>{t.isAnalyticsAccepted(e.detail)?this.loadScript():this.removeScripts()},this.document.addEventListener(t.eventName,this.consentListener))}}(U,window,document),Q=new class extends d{destroy(){}transformVariables(e,t){let i;return _(i={...t},["testimonialId"]),I(i,["testimonialId"],"testimonialIds"),0===i.limit&&delete i.limit,(void 0===i.limit||null===i.limit)&&(("testimonials"===e||"testimonialsCount"===e)&&(i.limit=50),("agents"===e||"agentsCount"===e||"developments"===e||"developmentsCount"===e||"neighborhoods"===e||"neighborhoodsCount"===e||"posts"===e||"postsCount"===e||"pressReleases"===e||"pressReleasesCount"===e)&&(i.limit=100)),!function(e){let{sortDir:t}=e;"string"==typeof t&&t.includes("_")&&(e.sortDir=t.replace(/_/g," "))}(i),!function(e,t){switch(t){case"agent":break;case"testimonials":case"testimonialsCount":_(e,["testimonialIds"]);break;case"agents":case"agentsCount":_(e,["officeId","teamId","developmentId","agentIds","tags"]),I(e,["officeId"],"officeIds"),I(e,["teamId"],"teamIds"),I(e,["developmentId"],"developmentIds");break;case"neighborhoods":case"neighborhoodsCount":_(e,["neighborhoodIds","neighborhoodId"]),I(e,["neighborhoodIds","neighborhoodId"],"neighborhoodId");break;case"developments":case"developmentsCount":_(e,["agentId","neighborhoodIds","neighborhoodId","developmentIds","tag"]),e.agentId&&Array.isArray(e.agentId)&&([e.agentId]=e.agentId),I(e,["neighborhoodIds","neighborhoodId"],"neighborhoodIds"),I(e,["developmentIds","developmentId"],"developmentIds");break;case"properties":case"propertiesCount":_(e,["statusIds","statusId","propertyTypeIds","propertyTypeId","propertyId","networkId","propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","
2254spaceTypeIds","addressState","addressCity","backfillProviders","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"]),["propertyIds","agentIds","teamIds","officeIds","neighborhoodIds","spaceTypeIds","backfillMLSListingIds","backfillMLSAgentIds","backfillMLSOfficeIds"].forEach(t=>I(e,[t],t)),I(e,["statusIds","statusId"],"propertyStatusId"),e.excludeStatusId&&(e.excludePropertyStatusId=e.excludeStatusId,delete e.excludeStatusId),I(e,["propertyTypeIds","propertyTypeId"],"propertyTypeId"),I(e,["networkId"],"networkId"),I(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":_(e,["categoryIds","categoryId","neighborhoodId"]),void 0!==e.order&&(e.sort=e.order,delete e.order),I(e,["categoryIds","categoryId"],"categoryId");break;case"postCategories":_(e,["categoryId","categoryIds"]),void 0!==e.order&&(e.sort=e.order,delete e.order),I(e,["categoryIds","categoryId"],"categoryId");break;case"pressReleases":case"pressReleasesCount":_(e,["pressReleaseId","categories","propertyId","developmentId","agentId","teamId"]),I(e,["pressReleaseId"],"pressReleaseIds");break;case"offices":case"officesCount":_(e,["officeId","officeIds","tags"]),I(e,["officeId"],"officeIds");break;case"teams":case"teamsCount":_(e,["teamId","teamIds"]),I(e,["teamId"],"teamIds");break;case"pois":_(e,["categories"]),Array.isArray(e.categories)&&(e.categories=e.categories.map(e=>e.toLowerCase())),"string"==typeof e.sortBy&&(e.sortBy=e.sortBy.toLowerCase())}}(i,e),i}transformResponse(e,t){return"agent"===e?C(t,E):"agents"===e||"agentsCount"===e?k(t,A):"neighborhood"===e?C(t,L):"neighborhoods"===e||"neighborhoodsCount"===e?k(t,x):"development"===e?C(t,$):"developments"===e||"developmentsCount"===e?k(t,T):t}transformPage(e){return{items:e&&e.items||[],count:e&&e.total||0}}applyPropertyDisclaimers(t,i){if(!Array.isArray(t)||!t.length||!i||!i.length)return Promise.resolve(t);let s=t.filter(e=>e&&e.vendorId&&e.mlsId).map(e=>({feedId:e.vendorId,listingId:e.mlsId,officeName:e.officeName??null,agentMlsId:e.mlsAgentId??null,officeMlsId:e.mlsOfficeId??null,attributionContact:e.attributionContact??null,status:e.status??null,syncedAt:e.syncedAt??null})),r=e=>{let s={};return(e||[]).forEach(e=>{s[`${e.feedId}:${e.listingId}`]=e}),t.map(e=>{let t=e&&s[`${e.vendorId}:${e.mlsId}`],r={};return i.forEach(e=>{let i=t?t[P[e]]:void 0;r[e]=i??null}),{...e,...r}})};if(!s.length)return Promise.resolve(r([]));let{websiteId:a}=this.config;return this.window.superagent?this.window.superagent.post(`${this.window.luxuryPresence.defaults.routerUrl}/graphql`).withCredentials().send({query:e(M),variables:{input:{websiteId:"string"==typeof a?a:void 0,properties:s}}}).then(e=>r(e.body&&e.body.data&&e.body.data.propertyDisclaimers),e=>(console.warn("[RouterApiController] propertyDisclaimers lookup failed:",e),r([]))):Promise.resolve(r([]))}}(U,window,document);function W(e,t){if(window.luxuryPresence[e])try{window.luxuryPresence[e].destroy()}catch(e){console.log(e)}window.luxuryPresence[e]=t}W("config",U),W("modals",N),W("buttons",R),W("validation",B),W("contactForms",D),W("mapApiLoader",O),W("pagination",q),W("expandSliders",V),W("divolte",F),W("eventBus",j),W("oauth",H),W("qualifyingQuestionsModal",G),W("session",K),W("consent",z),W("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(){}}),W("routerApi",Q),window.luxuryPresence.formatSliderPriceRange=q.formatSliderPriceRange.bind(q),window.luxuryPresence.formatSliderAreaRange=q.formatSliderAreaRange.bind(q),window.luxuryPresence.getSearchFormValues=q.getSearchFormValues.bind(q),window.luxuryPresence.handlebarsHelpersFactory=function(i){return e(t)(i,{isEqual:(e,t)=>e==t})}})(); 2255//# sourceMappingURL=lp-sdk.js.map 2256 2257 </script>
2257 2258 2259
2259<script> 2260 var lpGlobalInitialized = false; 2261 2262 function lpGlobalInit () { 2263 if (lpGlobalInitialized) { 2264 return; 2265 } 2266 lpGlobalInitialized = true; 2267 // Initialize wow animation plugin only according to turbolinks 2268 var wow; 2269 if (window.WOW) { 2270 wow = new WOW({ 2271 animateClass: 'animated', 2272 offset: wowOffset, 2273 live: false, 2274 callback: function(box) {} 2275 }); 2276 } 2277 // Initialize handlebar helpers only once 2278 function handlebarsInit() { 2279 if (!window.Handlebars) { 2280 return; 2281 } 2282 HandlebarsIntl.registerWith(Handlebars); 2283 Handlebars.registerHelper(window.luxuryPresence.handlebarsHelpersFactory(Handlebars)); 2284 } 2285 2286 handlebarsInit(); 2287 2288 var modalContentUrl = "/modals.html"; 2289 const modalsContainer = document.getElementById('modals'); 2290 if (modalsContainer) { 2291 fetch(modalContentUrl).then(function(res) { 2292 if (!res.ok) { 2293 throw new Error(`HTTP error! Status: ${res.status}`); 2294 } 2295 return res.text(); 2296 }).then(function(resultText) { 2297 modalsContainer.innerHTML = resultText; 2298 2299 // now we need to execute all script elements 2300 Array.from(modalsContainer.getElementsByTagName('script')).forEach(function (s) { 2301 const script = document.createElement("script"); 2302 script.text = s.innerHTML; 2303 Array.from(s.attributes).forEach(function (a) { 2304 script.setAttribute(a.name, a.value); 2305 }) 2306 s.parentNode.replaceChild(script, s); 2307 }); 2308 2309 try { 2310 window.luxuryPresence.modals.initialize(window.luxuryPresence._modalIncludes); 2311 window.luxuryPresence.contactForms.initialize({ selector: '#modals' }); 2312 window.luxuryPresence.validation.initialize({ selector: '#modals' }); 2313 window.luxuryPresence.oauth.initialize({ 2314 googleSignOnEnabled: false, 2315 iframe: false }); 2316 } catch (e) { 2317 console.log(e); 2318 } 2319 document.querySelectorAll('.modals > .modal .close').forEach(closeModalBtn => { 2320 closeModalBtn.addEventListener('click', function() { 2321 window.lpUI.hideClosestModal(closeModalBtn); 2322 }); 2323 }); 2324 }).catch((e) => console.log(e)); 2325 } 2326 /* Initialize Luxury Presence SDK */ 2327 try { 2328 window.luxuryPresence.config.setCompany("a2ac92a2-c8ef-4bed-917e-1ed69140fa8a", {}); 2329 window.luxuryPresence.config.setWebsite("6c769009-9c3a-4f12-85ed-938263bb2536", { 2330 myhomeDashboardEnabled: true, 2331 mlsEnabled: true, 2332 hstValuationRedirectEnabled: true, 2333 hvStepTwoCaptureEnabled: false 2334 }); 2335 const url = new URL(window.location.href); 2336 const shareId = url.searchParams.get('shareId'); 2337 window.luxuryPresence.config.setPage("23edfe18-5a42-43b8-99c8-ba635fce0e85", { 2338 sourceResource: "", 2339 pageElementId: "", 2340 pageQueryVariables: {}, 2341 shareId: "", 2342 }); 2343 window.luxuryPresence.config.setWebsiteApiGatewayUrl("https://wgw.luxurypresence.com", {}); 2344 window.luxuryPresence.config.setBuyerSellerServiceUrl("https://bss.luxurypresence.com", {}); 2345 window.luxuryPresence.config.setDivolteServiceUrl("https://t.luxurypresence.com", {}); 2346 window.luxuryPresence.config.setEventBusUrl("https://cdn.luxurypresence.com/scripts/event-bus-js", {}); 2347 window.luxuryPresence.config.setEventBus({ 2348 enabled: true, 2349 apiKey: "phc_PMYT31xlmXBaTCwpIRx1v6RrpLVZIuP47N3mOT6KLnr", 2350 url: "https://p.luxurypresence.com", 2351 }); 2352 window.luxuryPresence.config.setTemplateId("dbfbedc7-c7e2-4812-86ee-0ee198862c21", {}); 2353 window.luxuryPresence.config.setLeadIngesterUrl("https://leads.luxurypresence.com", {}); 2354 window.luxuryPresence.buttons.initialize({}); 2355 window.luxuryPresence.consent.initialize({ provider: 'lp-consent' }); 2356 window.luxuryPresence.contactForms.initialize({}); 2357 window.luxuryPresence.validation.initialize({}); 2358 window.luxuryPresence.expandSliders.initialize({}); 2359 window.luxuryPresence.oauth.initialize({ googleSignOnEnabled: false, iframe: false }); 2360 window.luxuryPresence.qualifyingQuestionsModal.initialize({ qualifyingQuestionsModalEnabled: true }); 2361 } catch (e) { 2362 console.log(e); 2363 } 2364 2365 /* Inject Section Specific Javascript */ 2366 try { 2367(function init(sectionDomId) { 2368 let address = $('#' + sectionDomId + " .js-company_address").text().trim(); 2369 $('#' + sectionDomId + " .js-company_address").text(address); 2370 function setHttp(link) { 2371 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 2372 link = 'http://' + link; 2373 } 2374 return link; 2375 } 2376 $("#" + sectionDomId + " .js-contact-form__form").on("formsubmitted", function (e) { 2377 setTimeout(function () { 2378 $("#" + sectionDomId + ' .js-contact-form__form').removeClass('success'); 2379 }, 2000); 2380 }); 2381 $("#" + sectionDomId + " .js-contact-form__form").on("reset", function () { 2382 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 2383 if (redirectLink.length) { 2384 const rawHref = redirectLink.attr('href'); 2385 redirectLink.attr('href', setHttp(rawHref)); 2386 redirectLink[0].click(); 2387 } 2388 }); 2389})('modal-global-contact-us'); 2390} catch(e) { 2391console.log(e); 2392} 2393 2394 try { 2395(function init(sectionDomId) { 2396 const $section = $("#" + sectionDomId); 2397 const $hamburger = $section.find(".hamburger-component"); 2398 function onSideMenuShow() { 2399 if (!$hamburger.hasClass("active")) { 2400 $hamburger.addClass("active"); 2401 } 2402 } 2403 function onSideMenuHide() { 2404 $hamburger.removeClass("active"); 2405 } 2406 const $window = $(window); 2407 $window.on("lpui-sidemenu-show.lpui-auto-clean", onSideMenuShow); 2408 $window.on("lpui-sidemenu-hide.lpui-auto-clean", onSideMenuHide); 2409 const $subContainers = $section.find(".navigation__item.sub-nav-container"); 2410 $subContainers.hover(function () { 2411 $(this).addClass("hovered").find(".sub-nav").addClass("visible"); 2412 }, function () { 2413 $(this).removeClass("hovered").find(".sub-nav").removeClass("visible"); 2414 }); 2415 if (sectionDomId == "section-temp") { 2416 $("#section-temp").find(".header").closest("body").addClass(); 2417 } 2418 function checkScroll() { 2419 if ($(window).scrollTop() > 0) { 2420 $section.addClass("sticky"); 2421 } else { 2422 $section.removeClass("sticky"); 2423 } 2424 } 2425 let throttleTimer; 2426 const throttle = (callback, time) => { 2427 if (throttleTimer) return; 2428 throttleTimer = true; 2429 setTimeout(() => { 2430 callback(); 2431 throttleTimer = false;
2432 }, time); 2433 }; 2434 window.addEventListener("scroll", () => { 2435 throttle(checkScroll, 250); 2436 }); 2437})('global-navbar'); 2438} catch(e) { 2439console.log(e); 2440} 2441 2442 try { 2443(function init(sectionDomId) { 2444 const $subnav = $('body > div.sidemenu .sub-nav-container'); 2445 const $subnavItem = $('body > div.sidemenu .sub-nav-container .sub-nav__item'); 2446 const $navLink = $('body > div.sidemenu .sub-nav-container > a'); 2447 var animatedTimeout; 2448 $navLink.click(function (e) { 2449 $subnav.removeClass('active'); 2450 $(this).closest('.sub-nav-container').addClass('active'); 2451 let i = 0; 2452 $(this).closest('.sub-nav-container').find('.sub-nav__item').removeClass('fade-in'); 2453 $(this).closest('.sub-nav-container').find('.sub-nav__item').each(function () { 2454 i++; 2455 setTimeout(() => { 2456 $(this).addClass('fade-in'); 2457 }, i * 80); 2458 }); 2459 }); 2460 $(document).on('click', function (evt) { 2461 if (!$(evt.target).closest($navLink).length) { 2462 $subnav.removeClass('active'); 2463 $(this).closest('.sub-nav-container').find('.sub-nav__item').removeClass('fade-in'); 2464 } 2465 }); 2466 var $sidemenu = $('#' + sectionDomId); 2467 var shown = false; 2468 function onShow() { 2469 if (shown) { 2470 return; 2471 } 2472 shown = true; 2473 window.lpUI.requestScrollLock(sectionDomId); 2474 $('#' + sectionDomId + ' .navigation__link').removeClass('fade-in'); 2475 let i = 0; 2476 $('#' + sectionDomId + ' .navigation__link').each(function () { 2477 i++; 2478 setTimeout(() => { 2479 $(this).addClass('fade-in'); 2480 }, i * 80); 2481 }); 2482 } 2483 function onHide() { 2484 if (!shown) { 2485 return; 2486 } 2487 let i = 0; 2488 $($('#' + sectionDomId + ' .navigation__link').get().reverse()).each(function () { 2489 i++; 2490 setTimeout(() => { 2491 $(this).removeClass('fade-in'); 2492 }, i * 50); 2493 }); 2494 shown = false; 2495 setTimeout(() => { 2496 window.lpUI.releaseScrollLock(sectionDomId); 2497 }, 1000); 2498 } 2499 $sidemenu.on('lpui-show', onShow); 2500 $sidemenu.on('lpui-hide', onHide); 2501})('global-sidemenu'); 2502} catch(e) { 2503console.log(e); 2504} 2505 2506 2507 2508 try { 2509(function init(sectionDomId) { 2510 var _section = $('#' + sectionDomId); 2511 var _footer = document.getElementById('global-footer'); 2512 const redirectLink = _section.find('.js-redirect-link'); 2513 function setHttp(link) { 2514 if (link.search(/^(http[s]?\:\/\/|\/)/) == -1) { 2515 link = 'https://' + link; 2516 } 2517 return link; 2518 } 2519 function redirectPage(link) { 2520 if (link.length) { 2521 window.location.href = setHttp(link.attr('href')); 2522 } 2523 } 2524 const emailInput = _section.find('.js-email-input'); 2525 const emailRegex = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~\-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+/; 2526 emailInput.on('input', function () { 2527 if (emailRegex.test(this.value)) { 2528 this.setCustomValidity(''); 2529 } else { 2530 this.setCustomValidity('Please enter a valid email address.'); 2531 } 2532 this.reportValidity(); 2533 }); 2534 _section.find('input[name="name"]').on("keyup", function () { 2535 if (this.value.replaceAll(/\d/g, "").trim().split(" ").length < 2 || this.value.replaceAll(/\d/g, "").trim() === "") { 2536 this.setCustomValidity("Please input your first name and last name."); 2537 } else { 2538 this.setCustomValidity(""); 2539 } 2540 }); 2541 _section.find('form').on("reset", function () { 2542 $(this).addClass("show-success"); 2543 redirectPage(redirectLink); 2544 }); 2545 $(window).scroll(function () { 2546 if ($(this).scrollTop() >= 150) _section.find('.btn-holder').addClass('visible');else _section.find('.btn-holder').removeClass('visible'); 2547 }); 2548 _section.find('.close-btn, .connect-btn').click(function () { 2549 _section.find('.pop-up').toggle(); 2550 _section.find('.btn-holder').toggle(); 2551 }); 2552 if (!_footer) return; 2553 const observer = new IntersectionObserver(entries => { 2554 entries.forEach(entry => { 2555 if (entry.isIntersecting) _section.hide();else _section.show(); 2556 }); 2557 }, { 2558 threshold: 0.1 2559 }); 2560 observer.observe(_footer); 2561 function selectToDropdown(selectItem) { 2562 let customDropdown = ` 2563 <div class="custom-select" role="presentation"> 2564 <button class="custom-select-toggle is-placeholder" type="button" aria-haspopup="true" aria-expanded="false"></button> 2565 <div class="custom-select-menu" style="display: none;max-height: none;"> 2566 <div class="custom-select-content"> 2567 </div> 2568 </div> 2569 </div>`; 2570 $(customDropdown).insertAfter(selectItem); 2571 let $dropdown = $($(selectItem).next()); 2572 let $dropdownToggle = $dropdown.find(".custom-select-toggle"); 2573 let $dropdownMenu = $dropdown.find(".custom-select-menu"); 2574 let $dropdownContent = $dropdown.find(".custom-select-content"); 2575 $dropdownToggle.addClass($(selectItem).attr("class")).removeClass("dropdown-select"); 2576 $dropdownToggle.attr("id", $(selectItem).attr("id") + "custom"); 2577 $dropdownMenu.attr("aria-labelledby", $dropdownToggle.attr("id")); 2578 appendOptionButtons(selectItem, $dropdownContent); 2579 $(selectItem).removeClass().addClass("sr-only"); 2580 var toggleText = $(selectItem).find(":selected").first().text() || $(selectItem).children().first().text(); 2581 $dropdownToggle.html(toggleText); 2582 $dropdown.on("click", ".custom-select-item", function (e) { 2583 if ($(this).hasClass("is-disabled")) return; 2584 let elementNumber = $(this).index(); 2585 let $originalSelect = $(this).closest(".custom-select").siblings("select"); 2586 let $linkedOption = $originalSelect.find("option").eq(elementNumber); 2587 if (!$linkedOption.prop("selected")) { 2588 $linkedOption.prop("selected", true); 2589 $originalSelect.change(); 2590 $(this).addClass("is-selected").siblings(".custom-select-item").removeClass("is-selected"); 2591 $dropdownToggle.html($(this).html()); 2592 closeSelectMenu($(this).closest(".custom-select-menu")); 2593 } 2594 $dropdownToggle.removeClass("is-placeholder"); 2595 }); 2596 function convertOptionToButton(option) { 2597 var optionText = $(option).text(); 2598 var optionValue = $(option).attr("value") || $(option).text(); 2599 var optionIsDisabled = $(option).prop("disabled"); 2600 var outputButton = `<button value="${optionValue}" class="custom-select-item" type="button" ${optionIsDisabled ? "disabled" : ""}>${optionText}</button>`; 2601 return outputButton; 2602 } 2603 function appendOptionButtons(selectItem, appendTarget) { 2604 $(selectItem).find("option").each(function () { 2605 let currentButton = convertOptionToButton(this); 2606 $(appendTarget).append(currentButton); 2607 }); 2608 } 2609 function showSelectMenu(selectMenu) { 2610 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2611 $(customSelect).addClass("open"); 2612 $(selectMenu).slideDown(); 2613 } 2614 function closeSelectMenu(selectMenu) { 2615 var customSelect = $(selectMenu).closest(".custom-select")[0]; 2616 $(customSelect).removeClass("open"); 2617 $(selectMenu).slideUp(); 2618 } 2619 $dropdown.on("click", ".custom-select-toggle", function (e) { 2620 var $customSelect = $(this).closest(".custom-select"); 2621 var selectMenu = $customSelect.find(".custom-select-menu")[0]; 2622 if ($customSelect.hasClass("open")) { 2623 closeSelectMenu(selectMenu); 2624 } else { 2625 showSelectMenu(selectMenu); 2626 } 2627 }); 2628 $(document).on("click", function (e) { 2629 if ($(e.target).closest(".custom-select").length < 1 && $(".custom-select").hasClass("open")) { 2630 $(".custom-select.open").each(function () { 2631 var selectMenu = $(this).find(".custom-select-menu")[0]; 2632 closeSelectMenu(selectMenu); 2633 }); 2634 } 2635 }); 2636 } 2637 $(".pop-up select[name='interest']").each(function () { 2638 selectToDropdown(this); 2639 }); 2640})('global-mobile-contact'); 2641} catch(e) { 2642console.log(e); 2643} 2644 2645 try { 2646(function init(sectionDomId, options) { 2647 let section = null; 2648 switch (sectionDomId) { 2649 case 'NAVBAR': 2650 section = document.querySelector('body > nav, #global-navbar'); 2651 break; 2652 case 'FOOTER': 2653 section = document.querySelector('body > footer, #global-footer'); 2654 break; 2655 case 'SIDEMENU': 2656 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 2657 break; 2658 case 'CONTACT':
2659 section = document.querySelector('#modal-global-contact-us'); 2660 break; 2661 case 'MOBILE_CONTACT': 2662 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 2663 break; 2664 case 'SUBSCRIBE': 2665 // Subscribe Not Implemented 2666 section = null; 2667 break; 2668 case 'ACCOUNT': 2669 // Account Not Implemented 2670 section = null; 2671 break; 2672 default: 2673 section = document.querySelector('#' + sectionDomId); 2674 } 2675 if (!section) { 2676 return; 2677 } 2678 2679 // Where content / items are rendered 2680 const dataContainer = section.querySelector('.data-container'); 2681 if (!dataContainer) { 2682 // no place to render items = no need to query server or do anything else 2683 return; 2684 } 2685 let variables = options.variables || {}; 2686 2687 // Some variables in options may not have been injected - remove 2688 Object.keys(variables).forEach(function (variableName) { 2689 if (typeof variables[variableName] === 'string' && variables[variableName].match(/^{{.*}}$/)) { 2690 delete variables[variableName]; 2691 } 2692 }); 2693 2694 // Merge page query variables 2695 if (options.usePageResource) { 2696 variables = { 2697 ...variables, 2698 ...window.luxuryPresence.config.pageMeta.pageQueryVariables[options.resource] 2699 }; 2700 } 2701 2702 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Callers 2703 // resolve the flag â fetchData reads the section stamp, aux fetches read 2704 // their own resource's stamp (auxUsesRouter). 2705 function apiUrl(useRouter) { 2706 return options.url || (useRouter ? window.luxuryPresence.defaults.routerUrl : window.luxuryPresence.defaults.apiGatewayUrl); 2707 } 2708 2709 // ROUTER-CLEANUP: aux resources roll out on their own flag, not the section's 2710 // (options.routerApiAux is stamped per aux resource server-side). 2711 function auxUsesRouter(resource) { 2712 return !!(options.routerApiAux && options.routerApiAux[resource]); 2713 } 2714 2715 // Pagination Executes on a Numbered Pagination Container 2716 // Or via a load more button 2717 let mode = 'BUTTONLESS_PAGINATION'; 2718 const container = section.querySelector('.pagination-container');
2719 const loadMoreButton = section.querySelector(options?.loadMoreSelector); 2720 if (container) { 2721 mode = 'NUMBERED_PAGINATION'; 2722 } 2723 if (loadMoreButton) { 2724 mode = 'LOAD_MORE_BUTTON'; 2725 } 2726 let searchContainer = section.querySelector('.search-container'); 2727 const hidePaginationOnFirstPage = options.hidePaginationOnFirstPage || false; 2728 const eventPrefix = '__pagination-'; 2729 const searchFormParams = options.searchFormParams || (options.resource === 'properties' ? [{ 2730 param: 'neighborhoodId', 2731 urlKey: 'neighborhood' 2732 }, { 2733 param: 'search', 2734 urlKey: 'search' 2735 }, { 2736 param: 'salesPriceGTE', 2737 urlKey: 'pricemin', 2738 formKey: 'priceMin', 2739 type: 'int' 2740 }, { 2741 param: 'salesPriceLTE', 2742 urlKey: 'pricemax', 2743 formKey: 'priceMax', 2744 type: 'int' 2745 }, { 2746 param: 'livingSpaceSizeGTE', 2747 urlKey: 'areamin', 2748 formKey: 'areaMin', 2749 type: 'int' 2750 }, { 2751 param: 'livingSpaceSizeLTE', 2752 urlKey: 'areamax', 2753 formKey: 'areaMax', 2754 type: 'int' 2755 }] : []); 2756 2757 // Total entries - initialized in first render 2758 let totalNumber = 0; 2759 const DefaultSearchParams = { 2760 page: 1 2761 }; 2762 searchFormParams.forEach(function (formParam) { 2763 DefaultSearchParams[formParam.formKey || formParam.param] = null; 2764 }); 2765 let searchParams = { 2766 ...DefaultSearchParams 2767 }; 2768 const offset = options.variables?.offset || 0; 2769 let scrollTarget = options.scrollTargetSelector ? section.querySelector(options.scrollTargetSelector) || section : section; 2770 let scrollOffset = (parseInt(options.scrollOffset, 10) || 0) ?? 100; 2771 2772 // entries of per page 2773 // when query variables for a given section would't be filled options.pageSize can store 2774 // template string, ex: "{{variables.limit}}", below code handles that case and set 9 as a default value 2775 let pageSize = parseInt(options.pageSize, 10) || 9; 2776 2777 // Adding mobile pageRange support 2778 var NARROW_BREAKPOINT = 600; 2779 var mobileBreakpoint = options.mobileBreakpoint > 0 ? options.mobileBreakpoint : NARROW_BREAKPOINT; 2780 var paginationMql = window.matchMedia(`(max-width: ${mobileBreakpoint}px)`); 2781 2782 // Page range (pages on both sides of the current page) 2783 var mobilePageRange = options.mobilePageRange > 0 ? options.mobilePageRange : 0; 2784 var desktopPageRange = options.pageRange >= 0 ? options.pageRange : 2; 2785 var pageRange = paginationMql.matches ? mobilePageRange : desktopPageRange; 2786 2787 // Whether to display the 'Previous' button 2788 var showPrevious = true; 2789 2790 // Whether to display the 'Next' button 2791 var showNext = true; 2792 2793 // Whether to display the page buttons 2794 var showPageNumbers = true; 2795 2796 // 'Previous' text 2797 var prevText = options.prevText || '«'; 2798 2799 // 'Next' text 2800 var nextText = options.nextText || '»'; 2801 2802 // Ellipsis text 2803 var ellipsisText = '…'; 2804 var classPrefix = 'paginationjs'; 2805 2806 // Default active class 2807 var activeClassName = 'active'; 2808 2809 // Default disable class 2810 var disableClassName = 'disabled'; 2811 2812 // Pagination element's position in the container 2813 var position = 'bottom'; 2814 2815 // Whether to trigger pagination at initialization 2816 var triggerPagingOnInit = !options.skipInitialLoad; 2817 var showFirstOnEllipsisShow = true; 2818 var showLastOnEllipsisShow = true; 2819 2820 // Instantiated in init() 2821 var el = null; 2822 2823 // Controls scrollTop logic 2824 var firstRender = true; 2825 var renderBySearch = false; 2826 var disabled = false; 2827 2828 // Pagination script class selector 2829 var paginationScriptSelector = options.paginationPartialName ? `.${options.paginationPartialName}` : '.pagination-script'; 2830 2831 // Property Specific Image Override if No Image 2832 var propertyPlaceholderImage = window.luxuryPresence.defaults.propertyPlaceholderImage; 2833 2834 // Construct template 2835 var templateHTML = section.querySelector(`script${paginationScriptSelector}`)?.innerHTML || ''; 2836 var template = Handlebars.compile(templateHTML); 2837 2838 // Initialize 2839 init(); 2840 function init() { 2841 Object.assign(searchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 2842 2843 // Append/prepend pagination element to the pagination container 2844 if (mode === 'NUMBERED_PAGINATION') { 2845 el = document.createElement('div'); 2846 el.className = 'paginationjs';
2847 container[position === 'bottom' ? 'append' : 'prepend'](el); 2848 } 2849 if (searchContainer) { 2850 initSearchContainer({ 2851 fetchNeighborhoods: searchContainer.dataset.fetchNeighborhoods === 'true', 2852 fetchPostCategories: searchContainer.dataset.fetchPostCategories === 'true', 2853 fetchOffices: searchContainer.dataset.fetchOffices === 'true', 2854 fetchRentalRates: searchContainer.dataset.fetchRentalRates === 'true' 2855 }, function () { 2856 syncSearchFormState(searchParams); 2857 }); 2858 } 2859 2860 // Bind events 2861 observer(); 2862 } 2863 function syncSearchFormState(params) { 2864 searchContainer.dispatchEvent(new CustomEvent('sync', { 2865 detail: params 2866 })); 2867 } 2868 function initSearchContainer(options, done) { 2869 var promises = []; 2870 if (options.fetchNeighborhoods) { 2871 promises.push(fetchAllNeighborhoods(function (neighborhoods) { 2872 searchContainer.dispatchEvent(new CustomEvent('neighborhoods-data', { 2873 detail: { 2874 data: neighborhoods.map(function (item) { 2875 return { 2876 value: item.id, 2877 label: item.name 2878 }; 2879 }) 2880 } 2881 })); 2882 })); 2883 } 2884 if (options.fetchPostCategories) { 2885 promises.push(fetchPostCategories(function (categories) { 2886 searchContainer.dispatchEvent(new CustomEvent('post-categories-data', { 2887 detail: { 2888 data: categories 2889 } 2890 })); 2891 })); 2892 } 2893 if (options.fetchOffices) { 2894 promises.push(fetchOffices(function (offices) { 2895 searchContainer.dispatchEvent(new CustomEvent('offices-data', { 2896 detail: { 2897 data: offices 2898 } 2899 })); 2900 })); 2901 } 2902 if (options.fetchRentalRates) { 2903 promises.push(fetchAllRentalRates(function (rentalRates) { 2904 searchContainer.dispatchEvent(new CustomEvent('rental-rates-data', { 2905 detail: { 2906 data: rentalRates 2907 } 2908 })); 2909 })); 2910 } 2911 if (promises.length > 0) { 2912 Promise.all(promises).then(function () { 2913 done(); 2914 }); 2915 } else { 2916 // element's custom code is not executed yet, so we're scheduling callback to after element's code 2917 setTimeout(done); 2918 } 2919 } 2920 function fetchAllNeighborhoods(done) { 2921 var useRouter = auxUsesRouter('neighborhoods'); 2922 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Same 2923 // args on both APIs (the federated neighborhoods field accepts 2924 // withProperties/withBlogPosts); only the selection set differs. 2925 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') + '}}'; 2926 var payload = {}; 2927 payload.offset = 0; 2928 payload.limit = 100; 2929 payload.companyId = variables.companyId; 2930 if (options.resource === 'properties') { 2931 payload.withProperties = { 2932 active: true 2933 }; 2934 ['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) { 2935 if (variables[field] !== undefined && variables[field] !== null) { 2936 payload.withProperties[field] = variables[field]; 2937 } 2938 }); 2939 } 2940 if (options.resource === 'posts') { 2941 payload.withBlogPosts = { 2942 active: true 2943 }; 2944 ['search', 'postStatusId', 'featured', 'categoryId', 'categoryIds', 'neighborhoodId', 'slug'].forEach(function (field) { 2945 if (variables[field] !== undefined && variables[field] !== null) { 2946 payload.withBlogPosts[field] = variables[field]; 2947 } 2948 }); 2949 } 2950 2951 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2952 if (useRouter) { 2953 payload = window.luxuryPresence.routerApi.transformVariables('neighborhoods', payload); 2954 } 2955 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2956 query: gqlQuery, 2957 variables: payload 2958 }).then(function (res) { 2959 var value = res.body.data && res.body.data.neighborhoods || {}; 2960 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2961 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2962 done(items, items.length); 2963 }); 2964 } 2965 function fetchPostCategories(done) { 2966 var featured = options.resource === 'posts' && !!variables.featured; 2967 var useRouter = auxUsesRouter('postCategories'); 2968 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 2969 // selection set differs ({ items {...} } on the router). 2970 var selection = 'id, name, publishedCount, featuredPublishedCount'; 2971 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) + '}}'; 2972 var payload = {}; 2973 payload.offset = 0; 2974 payload.limit = 100; 2975 payload.companyId = variables.companyId; 2976 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 2977 query: gqlQuery, 2978 variables: payload 2979 }).then(function (res) { 2980 var value = res.body.data && res.body.data.postCategories || {}; 2981 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 2982 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 2983 done(items.map(function (item) { 2984 item.count = featured ? item.featuredPublishedCount : item.publishedCount; 2985 return item; 2986 }), items.length); 2987 }); 2988 } 2989 function fetchOffices(done) { 2990 var useRouter = auxUsesRouter('offices'); 2991 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. Only the 2992 // selection set differs ({ items {...} } on the router). 2993 var selection = 'id, name, tags'; 2994 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired. The two 2995 // APIs differ in more than the items wrapper: federated offices takes 2996 // companyId: ID! (legacy gateway: String), so each branch builds its whole doc. 2997 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 + '}}'; 2998 var payload = { 2999 offset: 0, 3000 limit: 100, 3001 companyId: variables.companyId 3002 }; 3003 3004 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3005 if (useRouter) { 3006 payload = window.luxuryPresence.routerApi.transformVariables('office
3006s', payload); 3007 } 3008 superagent.post(apiUrl(useRouter) + '/graphql').withCredentials().send({ 3009 query: gqlQuery, 3010 variables: payload 3011 }).then(function (res) { 3012 var value = res.body.data && res.body.data.offices || {}; 3013 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3014 var items = useRouter ? window.luxuryPresence.routerApi.transformPage(value).items : value || []; 3015 done(items, items.length); 3016 }); 3017 } 3018 3019 // ROUTER-CLEANUP: no rentalRates field on the federated router â legacy only. 3020 function fetchAllRentalRates(done) { 3021 var url = options.url || window.luxuryPresence.defaults.apiGatewayUrl; 3022 var gqlQuery = 'query ($companyId: String, $offset: Int, $limit: Int) {' + 'rentalRates (companyId: $companyId, offset: $offset, limit: $limit) {rentalRateId, label}}'; 3023 var payload = { 3024 offset: 0, 3025 limit: 100, 3026 companyId: variables.companyId 3027 }; 3028 superagent.post(url + '/graphql').withCredentials().send({ 3029 query: gqlQuery, 3030 variables: payload 3031 }).then(function (res) { 3032 var items = res.body.data && res.body.data.rentalRates || []; 3033 done(items, items.length); 3034 }).catch(function (err) { 3035 console.error('Error fetching rental rates:', err); 3036 done([], 0); 3037 }); 3038 } 3039 function fetchData(params, done) { 3040 var resource = options.resource; 3041 var gqlQuery = options.query || window.luxuryPresence.defaults.gql[resource]; 3042 var payload = {}; 3043 try { 3044 payload = JSON.parse(JSON.stringify(variables)); 3045 } catch (e) { 3046 Object.keys(variables).forEach(function (variableName) { 3047 payload[variableName] = variables[variableName]; 3048 }); 3049 } 3050 payload.offset = (params.page - 1) * pageSize + offset; 3051 payload.limit = pageSize; 3052 payload.companyId = options.companyId; 3053 searchFormParams.forEach(function (formParam) { 3054 var val = params[formParam.formKey || formParam.param]; 3055 if (val !== null && val !== undefined) { 3056 objSet(payload, formParam.param, val); 3057 } 3058 }); 3059 3060 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3061 if (options.useRouterApi) { 3062 payload = window.luxuryPresence.routerApi.transformVariables(resource, payload); 3063 } 3064 3065 // TODO: Disabled loading due to jarring effect 3066 // dataContainer.html('Loading...'); 3067 superagent.post(apiUrl(options.useRouterApi) + '/graphql').withCredentials().send({ 3068 query: gqlQuery, 3069 variables: payload 3070 }).then(function (res) { 3071 if (res.body.errors) { 3072 done(res.body.errors); 3073 return; 3074 } 3075 var data = res.body.data || {}; 3076 // ROUTER-CLEANUP: keep router branch, drop legacy when API retired 3077 var resources; 3078 var resourceCount; 3079 if (options.useRouterApi) { 3080 var page = window.luxuryPresence.routerApi.transformPage(data[resource]); 3081 resources = window.luxuryPresence.routerApi.transformResponse(resource, page.items); 3082 resourceCount = page.count; 3083 } else { 3084 resources = data[resource] || []; 3085 resourceCount = data[resource + 'Count'] && data[resource + 'Count'].count ? data[resource + 'Count'].count : 0; 3086 } 3087 const finish = function (items) { 3088 if (resource === 'properties' && propertyPlaceholderImage?.id) { 3089 items = items.map(item => { 3090 if (item.media?.length === 0) { 3091 return Object.assign(item, { 3092 media: [propertyPlaceholderImage] 3093 }); 3094 } 3095 return item; 3096 }); 3097 } 3098 done(null, items, resourceCount); 3099 }; 3100 3101 // ROUTER-CLEANUP: client half of PLAT-4073 â resolve the requested 3102 // disclaimers before rendering; older SDKs skip (keys stay unset). 3103 if (options.useRouterApi && resource === 'properties' && options.routerPropertyDisclaimers && options.routerPropertyDisclaimers.length && window.luxuryPresence.routerApi && typeof window.luxuryPresence.routerApi.applyPropertyDisclaimers === 'function') { 3104 window.luxuryPresence.routerApi.applyPropertyDisclaimers(resources, options.routerPropertyDisclaimers).then(finish); 3105 return; 3106 } 3107 finish(resources); 3108 }); 3109 } 3110 function getTotalPage() { 3111 return Math.ceil(totalNumber / pageSize); 3112 } 3113 function renderPaginationList() { 3114 var totalPages = getTotalPage(); 3115 var rangeStart = searchParams.page - pageRange; 3116 var rangeEnd = searchParams.page + pageRange; 3117 if (rangeEnd > totalPages) { 3118 rangeEnd = totalPages; 3119 rangeStart = totalPages - pageRange * 2; 3120 rangeStart = rangeStart < 1 ? 1 : rangeStart; 3121 } 3122 if (rangeStart <= 1) { 3123 rangeStart = 1; 3124 rangeEnd = Math.min(pageRange * 2 + 1, totalPages); 3125 } 3126 3127 // Making sure that 1 more page button is shown in edge positions 3128 if (pageRange === 0) { 3129 if (searchParams.page === totalPages) { 3130 rangeStart = totalPages <= 1 ? 1 : totalPages - 1; 3131 } 3132 if (searchParams.page === 1) { 3133 rangeEnd = Math.min(2, totalPages); 3134 } 3135 } 3136 3137 // Render pagination list 3138 if (mode === 'NUMBERED_PAGINATION') { 3139 el.innerHTML = generateHTML({ 3140 currentPage: searchParams.page, 3141 pageRange: pageRange, 3142 rangeStart: rangeStart, 3143 rangeEnd: rangeEnd 3144 }); 3145 if (totalPages < 2 && hidePaginationOnFirstPage) { 3146 container.style.display = 'none'; 3147 } else { 3148 container.style.display = ''; 3149 } 3150 } else if (mode === 'LOAD_MORE_BUTTON') { 3151 if (searchParams.page >= totalPages) {
3152 loadMoreButton.style.display = 'none'; 3153 } else { 3154 loadMoreButton.style.display = ''; 3155 } 3156 } 3157 } 3158 function render(data) { 3159 renderPaginationList(); 3160 3161 // Render new content with handlebars 3162 var html = ''; 3163 if (mode === 'LOAD_MORE_BUTTON' && searchParams.page > 1) { 3164 // If using load more, append search results to existing results 3165 html = dataContainer.innerHTML; 3166 } 3167 for (var i = 0; i < data.length; i++) { 3168 var itemData = recursivelyParse(data[i]); 3169 itemData.sectionIndex = options.sectionIndex; 3170 itemData.renderOptions = options.renderOptions; 3171 html += template(itemData); 3172 } 3173 dataContainer.innerHTML = html; 3174 3175 // Scroll Top 3176 if (!firstRender && mode === 'NUMBERED_PAGINATION' && (!renderBySearch || !options.skipScrollOnSearch)) { 3177 // Only animate to the top if we replace dataContainer (numbered pagination) 3178 setTimeout(() => { 3179 const scrollTargetOffsetTop = scrollTarget.getBoundingClientRect().top + window.scrollY - scrollOffset; 3180 window.scrollTo({ 3181 top: scrollTargetOffsetTop, 3182 behavior: 'smooth' 3183 }); 3184 }, 250); 3185 } 3186 return true; 3187 } 3188 function generateHTML(args) { 3189 const totalPages = getTotalPage(); 3190 const { 3191 rangeStart, 3192 rangeEnd 3193 } = args; 3194 const makeLnk = page => window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 3195 ...searchParams, 3196 page 3197 }); 3198 let html = ''; 3199 if (showPrevious || showPageNumbers || showNext) { 3200 html += '<div class="paginationjs-pages"><ul>'; 3201 3202 // Previous button 3203 if (showPrevious) { 3204 if (searchParams.page <= 1) { 3205 html += `<li class="${classPrefix}-prev ${disableClassName}"><a>${prevText}</a></li>`; 3206 } else { 3207 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>`; 3208 } 3209 } 3210 3211 // Pages 3212 if (showPageNumbers) { 3213 if (rangeStart <= 3) { 3214 for (let i = 1; i < rangeStart; i++) { 3215 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>`; 3216 } 3217 } else { 3218 if (showFirstOnEllipsisShow) { 3219 html += `<li class="${classPrefix}-page ${classPrefix}-first J-paginationjs-page" data-num="1"><a href="${makeLnk(1)}">1</a></li>`; 3220 } 3221 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 3222 } 3223 for (let i = rangeStart; i <= rangeEnd; i++) { 3224 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>`; 3225 } 3226 if (rangeEnd < totalPages - 2) { 3227 html += `<li class="${classPrefix}-ellipsis ${disableClassName}"><a>${ellipsisText}</a></li>`; 3228 if (showLastOnEllipsisShow) { 3229 html += `<li class="${classPrefix}-page ${classPrefix}-last J-paginationjs-page" data-num="${totalPages}"><a href="${makeLnk(totalPages)}">${totalPages}</a></li>`; 3230 } 3231 } else { 3232 for (let i = rangeEnd + 1; i <= totalPages; i++) { 3233 html += `<li class="${classPrefix}-page J-paginationjs-page" data-num="${i}"><a href="${makeLnk(i)}">${i}</a></li>`; 3234 } 3235 } 3236 } 3237 3238 // Next button 3239 if (showNext) { 3240 if (searchParams.page >= totalPages) { 3241 html += `<li class="${classPrefix}-next ${disableClassName}"><a>${nextText}</a></li>`; 3242 } else { 3243 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>`; 3244 } 3245 } 3246 html += '</ul></div>'; 3247 } 3248 return html; 3249 } 3250 function go(newSearchParams, callback, restorationVisit) { 3251 if (disabled) return; 3252 var goToPageNumber = newSearchParams.page; 3253 3254 // Page number is out of bounds 3255 if (!goToPageNumber || goToPageNumber < 1) return; 3256 var totalPage = getTotalPage(); 3257 3258 // Page number is out of bounds 3259 if (!restorationVisit && totalNumber > 0) { 3260 if (goToPageNumber > totalPage) return; 3261 } 3262 if (!options.skipSerialization && (mode === 'NUMBERED_PAGINATION' || searchContainer)) {
3263 var newURL = window.luxuryPresence.pagination.serializeParams(searchFormParams, sectionDomId, { 3264 ...newSearchParams, 3265 page: goToPageNumber !== 1 && mode === 'NUMBERED_PAGINATION' ? newSearchParams.page : null 3266 }); 3267 if (!areQueryParamsEqual(newSearchParams, searchParams) && !restorationVisit) { 3268 window.history.pushState({}, '', window.luxuryPresence.getPath(newURL, { 3269 queryString: true 3270 })); 3271 } 3272 } 3273 3274 // Fetch and update page 3275 fetchData(newSearchParams, renderWithData); 3276 disabled = true; 3277 function renderWithData(err, data, count) { 3278 if (err) { 3279 dataContainer.dispatchEvent(new Event('error')); 3280 } else { 3281 searchParams = { 3282 ...newSearchParams 3283 }; 3284 totalNumber = count - offset; 3285 if (data.length === 0) { 3286 dataContainer.dispatchEvent(new Event('no-data')); 3287 } else { 3288 dataContainer.dispatchEvent(new Event('data')); 3289 } 3290 render(data); 3291 firstRender = false; 3292 } 3293 disabled = false; 3294 renderBySearch = false; 3295 } 3296 } 3297 function areQueryParamsEqual(first, second) { 3298 var differ = Object.keys(first).find(function (key) { 3299 return first[key] !== undefined && first[key] !== null && first[key] !== second[key]; 3300 }); 3301 if (differ) { 3302 return false; 3303 } 3304 differ = Object.keys(second).find(function (key) { 3305 return second[key] !== undefined && second[key] !== null && second[key] !== first[key]; 3306 }); 3307 return !differ; 3308 } 3309 function next(callback) { 3310 go({ 3311 ...searchParams, 3312 page: searchParams.page + 1 3313 }, callback); 3314 } 3315 function previous(callback) { 3316 go({ 3317 ...searchParams, 3318 page: searchParams.page - 1 3319 }, callback); 3320 } 3321 function refresh(callback) { 3322 go(searchParams, callback); 3323 } 3324 function update(params, callback) { 3325 renderBySearch = true; 3326 go(params, callback); 3327 } 3328 function observer() { 3329 if (searchContainer) { 3330 searchContainer.addEventListener('search', function (event, newSearchParams) { 3331 newSearchParams = event.detail || newSearchParams; 3332 update({ 3333 ...searchParams, 3334 ...newSearchParams, 3335 page: 1 3336 }); 3337 }); 3338 searchContainer.addEventListener('clear-search', function () { 3339 const defaultSearchParams = { 3340 ...DefaultSearchParams 3341 }; 3342 const isCurrentSearchFormStateDefault = areQueryParamsEqual({ 3343 ...defaultSearchParams, 3344 page: null 3345 }, { 3346 ...searchParams, 3347 page: null 3348 }); 3349 3350 // if mode is LOAD_MORE_BUTTON we should't make anything on clear 3351 // when search form have default state 3352 if (isCurrentSearchFormStateDefault && mode !== 'NUMBERED_PAGINATION') { 3353 return; 3354 } 3355 3356 // if someone initially go to some page and click 'Clear' on search from 3357 // we should't navigate to first page. We should preserve page value 3358 if (isCurrentSearchFormStateDefault) { 3359 defaultSearchParams.page = searchParams.page; 3360 } 3361 syncSearchFormState(defaultSearchParams); 3362 update(defaultSearchParams); 3363 }); 3364 } 3365 if (mode === 'LOAD_MORE_BUTTON') { 3366 loadMoreButton.addEventListener('click', function (event) { 3367 go({ 3368 ...searchParams, 3369 page: searchParams.page + 1 3370 }); 3371 return false; 3372 }); 3373 } 3374 if (mode === 'LOAD_MORE_BUTTON' || mode === 'BUTTONLESS_PAGINATION') { 3375 // Do initial render 3376 go(Object.assign({}, searchParams, { 3377 page: 1 3378 })); 3379 return; 3380 } 3381 if (mode === 'NUMBERED_PAGINATION') { 3382 // Go to specified page number 3383 container.addEventListener(eventPrefix + 'go', function (event) { 3384 let { 3385 pageNumber, 3386 done 3387 } = event.detail || {}; 3388 pageNumber = parseInt(pageNumber, 10); 3389 if (!pageNumber) { 3390 return; 3391 } 3392 go({ 3393 ...searchParams, 3394 page: pageNumber 3395 }, done); 3396 }); 3397 3398 // Page number button click 3399 el.addEventListener('click', function (event) { 3400 let clickTarget = event.target; 3401 let current = clickTarget.closest('.J-paginationjs-page, .J-paginationjs-previous, .J-paginationjs-next'); 3402 let pageNumber = current?.getAttribute('data-num'); 3403 if (!pageNumber || current.classList.contains(disableClassName) || current.classList.contains(activeClassName)) { 3404 return; 3405 } else { 3406 go({ 3407 ...searchParams, 3408 page: parseInt(pageNumber, 10) 3409 }); 3410 } 3411 event.preventDefault(); 3412 }); 3413 3414 // Whether to load the default page 3415 var defaultPageNumber = searchParams.page; 3416 if (triggerPagingOnInit) {
3417 container.dispatchEvent(new CustomEvent(eventPrefix + 'go', { 3418 detail: { 3419 pageNumber: defaultPageNumber 3420 } 3421 })); 3422 } 3423 } 3424 window.addEventListener('popstate', function (event) { 3425 var newParams = Object.assign({}, DefaultSearchParams, window.luxuryPresence.pagination.deserializeParams(searchFormParams, sectionDomId)); 3426 if (!areQueryParamsEqual(newParams, searchParams)) { 3427 go(newParams, null, true); 3428 if (searchContainer) { 3429 syncSearchFormState(newParams); 3430 } 3431 } 3432 }); 3433 } 3434 function replaceVariables(template, variables) { 3435 var formattedString; 3436 for (var key in variables) { 3437 var value = variables[key]; 3438 var regexp = new RegExp('<%=\\s*' + key + '\\s*%>', 'img'); 3439 formattedString = (formattedString || template).replace(regexp, value); 3440 } 3441 return formattedString; 3442 } 3443 function isTextEditorValue(obj) { 3444 return 'raw' in obj || 'gjs' in obj; 3445 } 3446 function getTextEditorValue(obj) { 3447 if (!obj.html) { 3448 return ''; 3449 } 3450 var data = obj.html; 3451 var css = (obj.raw || obj.gjs || {}).css; 3452 if (css) { 3453 data = data + '<style>' + css + '</style>'; 3454 } 3455 return data; 3456 } 3457 3458 /** 3459 * check rendered resources for html and raw properties that could indicate if resource is from an advanced text editor. 3460 * strips out raw proprties and returns only HTML if it exists. 3461 * @param {Object} resources a collection retrieved from the database 3462 * @return {Object} the newly modified object. 3463 */ 3464 function recursivelyParse(resources) { 3465 forEach(resources, function (value, key) { 3466 if (!value) { 3467 return; 3468 } 3469 if (value instanceof Object) { 3470 if (isTextEditorValue(value)) { 3471 resources[key] = getTextEditorValue(value); 3472 return; 3473 } else { 3474 return recursivelyParse(value); 3475 } 3476 } 3477 try { 3478 var parsedData = JSON.parse(value); 3479 if (isTextEditorValue(parsedData)) { 3480 resources[key] = getTextEditorValue(parsedData); 3481 } 3482 } catch (e) { 3483 // do nothing if we failed to parse value as JSON 3484 } 3485 }); 3486 return resources; 3487 } 3488 function forEach(collection, iteratee) { 3489 var func = Array.isArray(collection) ? arrayEach : baseFor; 3490 return func(collection, iteratee); 3491 } 3492 function baseFor(object, iteratee) { 3493 if (!object) { 3494 return; 3495 } 3496 var iterable = Object(object); 3497 var props = Object.keys(object); 3498 var length = props.length; 3499 var index = -1; 3500 while (length--) { 3501 var key = props[++index]; 3502 if (iteratee(iterable[key], key, iterable) === false) { 3503 break; 3504 } 3505 } 3506 return object; 3507 } 3508 function objSet(obj, path, value) { 3509 const pathArray = Array.isArray(path) ? path : path.match(/([^[.\]])+/g); 3510 pathArray.reduce((acc, key, i) => { 3511 if (acc[key] === undefined) acc[key] = {}; 3512 if (i === pathArray.length - 1) acc[key] = value; 3513 return acc[key]; 3514 }, obj); 3515 } 3516 function arrayEach(array, iteratee) { 3517 var index = -1; 3518 var length = array.length; 3519 while (++index < length) { 3520 if (iteratee(array[index], index, array) === false) { 3521 break; 3522 } 3523 } 3524 return array; 3525 } 3526 function selectPageRangeMode(e) { 3527 pageRange = e.matches ? mobilePageRange : desktopPageRange; 3528 renderPaginationList(); 3529 } 3530 paginationMql.addEventListener('change', selectPageRangeMode); 3531})('section-4abb62b6-c414-4e20-8208-1eb09941e43b', JSON.parse("{\"pageSize\":\"10\",\"resource\":\"properties\",\"pageRange\":0,\"variables\":{\"limit\":10,\"order\":\"salesPrice\",\"offset\":0,\"sortDir\":\"DESC\",\"statusId\":\"{{variables.statusId}}\",\"companyId\":\"a2ac92a2-c8ef-4bed-917e-1ed69140fa8a\",\"categoryId\":\"{{pageElement.categoryId}}\",\"sort\":\"salesPrice\",\"statusIds\":[\"b0e88b38-7437-438d-a6fd-b13f135e1683\"],\"websiteId\":\"6c769009-9c3a-4f12-85ed-938263bb2536\"},\"hidePaginationOnFirstPage\":true,\"companyId\":\"a2ac92a2-c8ef-4bed-917e-1ed69140fa8a\",\"usePageResource\":false,\"sectionIndex\":2,\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}")); 3532} catch(e) { 3533console.log(e); 3534} 3535 try { 3536(function init(sectionDomId) { 3537 $(document).on("click", "#" + sectionDomId + " .property-list__share .btn", function () { 3538 if ($(this).parent().hasClass("property-list__share--opened")) { 3539 $(this).parent().removeClass("property-list__share--opened"); 3540 } else { 3541 $("#" + sectionDomId + " .property-list__share").removeClass("property-list__share--opened"); 3542 $(this).parent().addClass("property-list__share--opened"); 3543 } 3544 }); 3545 const emptyResultElement = $("#" + sectionDomId + " .empty-result"); 3546 const searchContainer = $("#" + sectionDomId + " .search-container"); 3547 const dataContainer = $("#" + sectionDomId + " .data-container"); 3548 const paginationContainer = $(`#${sectionDomId} .pagination-container`); 3549 const priceSlider = searchContainer.find('input[name="price-slider"]');
3550 const areaSlider = searchContainer.find('input[name="area-slider"]'); 3551 const neighborhoodSelect = searchContainer.find('select[name="neighborhood-select"]'); 3552 const searchInput = searchContainer.find('input[name="search-input"]'); 3553 const clearBtn = searchContainer.find(".clear"); 3554 const priceMin = parseInt(priceSlider.attr("data-min")); 3555 const priceMax = parseInt(priceSlider.attr("data-max")); 3556 const areaMin = parseInt(areaSlider.attr("data-min")); 3557 const areaMax = parseInt(areaSlider.attr("data-max")); 3558 const rangeSliderInitialized = $(`#${sectionDomId} .search-item .irs`).length >= 1; 3559 function onSearch() { 3560 const params = window.luxuryPresence.getSearchFormValues({ 3561 queryElement: searchInput[0], 3562 priceSliderElement: priceSlider[0], 3563 areaSliderElement: areaSlider[0], 3564 neighborhoodSelect: neighborhoodSelect[0] 3565 }); 3566 searchContainer[0]?.dispatchEvent(new CustomEvent('search', { 3567 detail: params 3568 })); 3569 } 3570 searchContainer.on("neighborhoods-data", function (ev, neighborhoods) { 3571 neighborhoods = ev.detail || neighborhoods; 3572 neighborhoodSelect.append(neighborhoods.data.map(item => `<option value="${item.value}">${item.label}</option>`).join("\n")); 3573 }); 3574 searchContainer.on("sync", function (ev, params) { 3575 params = ev.detail || params; 3576 searchInput.val(params.search); 3577 neighborhoodSelect.val(params.neighborhoodId); 3578 priceSlider.data("ionRangeSlider").update({ 3579 from: params.priceMin, 3580 to: params.priceMax 3581 }); 3582 areaSlider.data("ionRangeSlider").update({ 3583 from: params.areaMin, 3584 to: params.areaMax 3585 }); 3586 }); 3587 dataContainer.on("no-data", function () { 3588 emptyResultElement.show(); 3589 }); 3590 dataContainer.on("data", function () { 3591 emptyResultElement.hide(); 3592 }); 3593 clearBtn.click(function () { 3594 searchContainer[0]?.dispatchEvent(new Event('clear-search')); 3595 }); 3596 searchInput.on("input", window.luxuryPresence.debounce(onSearch, 1000)); 3597 neighborhoodSelect.change(onSearch); 3598 if (rangeSliderInitialized) { 3599 if (!priceSlider.destroy) { 3600 $(`#${sectionDomId} .search-item.price >.irs`).remove(); 3601 initPriceSlider(); 3602 } 3603 if (!areaSlider.destroy) { 3604 $(`#${sectionDomId} .search-item.area >.irs`).remove(); 3605 initAreaSlider(); 3606 } 3607 } else { 3608 initPriceSlider(); 3609 initAreaSlider(); 3610 } 3611 function initPriceSlider() { 3612 priceSlider.ionRangeSlider({ 3613 type: "double", 3614 skin: "round", 3615 grid: false, 3616 force_edges: false, 3617 hide_min_max: false, 3618 hide_from_to: false, 3619 block: false, 3620 prettify: function (val) { 3621 return window.luxuryPresence.formatSliderPriceRange(val, { 3622 min: priceMin, 3623 max: priceMax 3624 }, "$", { 3625 lowPrefix: "<", 3626 highSuffix: "+" 3627 }); 3628 }, 3629 onFinish: onSearch 3630 }); 3631 } 3632 function initAreaSlider() { 3633 areaSlider.ionRangeSlider({ 3634 type: "double", 3635 skin: "round", 3636 grid: false, 3637 force_edges: false, 3638 hide_min_max: false, 3639 hide_from_to: false, 3640 block: false, 3641 prettify: function (val) { 3642 return window.luxuryPresence.formatSliderAreaRange(val, { 3643 min: areaMin, 3644 max: areaMax 3645 }, "sqft", { 3646 lowPrefix: "<", 3647 highSuffix: "+" 3648 }); 3649 }, 3650 onFinish: onSearch 3651 }); 3652 } 3653})('section-4abb62b6-c414-4e20-8208-1eb09941e43b', JSON.parse("{\"resource\":\"properties\",\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true},\"companyId\":\"a2ac92a2-c8ef-4bed-917e-1ed69140fa8a\",\"usePageResource\":false,\"sectionIndex\":2}")); 3654} catch(e) { 3655console.log(e); 3656} 3657 try { 3658(function init(sectionDomId, options) { 3659 let section = null; 3660 switch (sectionDomId) { 3661 case 'NAVBAR': 3662 section = document.querySelector('body > nav, #global-navbar'); 3663 break; 3664 case 'FOOTER': 3665 section = document.querySelector('body > footer, #global-footer'); 3666 break; 3667 case 'SIDEMENU': 3668 section = document.querySelector('body > div.sidemenu, #global-sidemenu'); 3669 break; 3670 case 'CONTACT':
3671 section = document.querySelector('#modal-global-contact-us'); 3672 break; 3673 case 'MOBILE_CONTACT': 3674 section = document.querySelector('body > div.mobile-contact-wrapper, #global-mobile-contact'); 3675 break; 3676 case 'SUBSCRIBE': 3677 // Subscribe Not Implemented 3678 section = null; 3679 break; 3680 case 'ACCOUNT': 3681 // Account Not Implemented 3682 section = null; 3683 break; 3684 default: 3685 section = document.querySelector('#' + sectionDomId); 3686 } 3687 if (!section) { 3688 return; 3689 } 3690 var url = window.luxuryPresence.defaults.routerUrl; 3691 var companyId = window.luxuryPresence.defaults.companyId; 3692 var limit = options.limit || 8; 3693 if (typeof limit === 'string') { 3694 limit = parseInt(limit, 10) || 8; // this NaN protection also filters out 0 - this is expected 3695 } 3696 var templateSelector = options.templateSelector || '.jsIGTemplate'; 3697 var containerSelector = options.containerSelector || '.jsIGContainer'; 3698 var hasDataClass = options.hasDataClass || 'has-data'; 3699 var hideActivateMessage = options.hasDataClass || false; 3700 var payload = { 3701 companyId: companyId, 3702 limit: limit 3703 }; 3704 if (options.resourceId && typeof options.resourceId === 'string' && !options.resourceId.match(/^{{.*}}$/)) { 3705 payload.resourceId = options.resourceId; 3706 // Federated enum values are uppercase (AGENT/TEAM); element configs carry lowercase 3707 payload.resource = String(options.resource || 'agent').toUpperCase(); 3708 payload.fallbackToNoResource = options.fallbackToNoResource === 'true' || options.fallbackToNoResource === true; 3709 } 3710 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'; 3711 var templateHTML = section.querySelector(templateSelector)?.innerHTML || ''; 3712 var template = Handlebars.compile(templateHTML); 3713 var container = section.querySelector(containerSelector); 3714 if (options.variables) { 3715 Object.keys(options.variables).forEach(function (key) { 3716 if (options.variables.hasOwnProperty(key) && (typeof options.variables[key] !== 'string' || !options.variables[key].match(/^{{.*}}$/))) { 3717 payload[key] = options.variables[key]; 3718 } 3719 }); 3720 } 3721 function getData() { 3722 var feed = { 3723 error: true 3724 }; 3725 if (payload.companyId == null || payload.companyId === '') { 3726 // instagramContentFeed requires companyId (ID!) â nothing to fetch without it. 3727 // Checked after the options.variables merge, which may override the default. 3728 // Deferred so element listeners (attached after this template runs) still receive it. 3729 setTimeout(function () { 3730 section.dispatchEvent(new CustomEvent('ig-data', { 3731 detail: feed 3732 })); 3733 }, 0); 3734 return; 3735 } 3736 superagent.post(url + '/graphql').send({ 3737 query: query, 3738 variables: payload 3739 }).then(res => { 3740 try { 3741 if (!res.body.errors) { 3742 feed = res.body.data.instagramContentFeed; 3743 if (!feed.active) { 3744 if (!hideActivateMessage && sectionDomId === 'section-temp' && container) { 3745 if (payload.resourceId) { 3746 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>'; 3747 } else { 3748 container.innerHTML = '<div style="text-align: center">Instagram account is not connected.<br /> Connect it on <a href="/profile">Profile page</a></div>'; 3749 } 3750 } 3751 } else { 3752 if (feed.items.length) { 3753 if (hasDataClass) { 3754 section.classList.add(hasDataClass); 3755 } 3756 const feedName = feed.username; 3757 section.querySelectorAll('.jsIGLink').forEach(link => link.setAttribute('href', feed.feedUrl)); 3758 section.querySelectorAll('.jsIGName').forEach(name => { 3759 name.textContent = '@' + feedName; 3760 name.setAttribute('title', '@' + feedName); 3761 }); 3762 if (container && template) { 3763 container.innerHTML = template(feed); 3764 } 3765 } 3766 } 3767 } 3768 } catch (e) {} 3769 section.dispatchEvent(new CustomEvent('ig-data', { 3770 detail: feed 3771 })); 3772 }).catch(e => { 3773 console.log('err', e); 3774 section.dispatchEvent(new CustomEvent('ig-data', { 3775 detail: feed 3776 })); 3777 }); 3778 } 3779 getData(); 3780})('section-7348e5c3-3703-4b3a-9347-40fac50851f0', JSON.parse("{\"companyId\":\"a2ac92a2-c8ef-4bed-917e-1ed69140fa8a\",\"sectionIndex\":3,\"useRouterApi\":false,\"routerApiAux\":{\"testimonials\":true,\"agents\":false,\"neighborhoods\":false,\"developments\":false,\"properties\":false,\"posts\":true,\"pressReleases\":true,\"offices\":true,\"teams\":true,\"pois\":true,\"postCategories\":true}}")); 3781} catch(e) { 3782console.log(e); 3783} 3784 try { 3785(function init(sectionDomId) { 3786 const $section = $('#' + sectionDomId);
3787 var sectionBackground = $section.css('background-image'); 3788 if ($section.find('.ig-feed').length) { 3789 $section.addClass('parallax-enabled'); 3790 $section.css({ 3791 '--sectionBackground': sectionBackground, 3792 'background-image': 'none' 3793 }); 3794 } 3795 var pulseTimer; 3796 var templateHTML = $section.find('.jsIGItem').html(); 3797 var itemTemplate = templateHTML && Handlebars.compile(templateHTML); 3798 const $container = $section.find('.ig-feed-feed'); 3799 let followTitleText = $section.find('.ig-feed').data('follow-title'); 3800 let $follow = null; 3801 let limit = 6; 3802 let igFeed = {}; 3803 let usedWidth = 0; 3804 let slider = null; 3805 let user = ''; 3806 $section.on('ig-data', function (ev, feed) { 3807 feed = ev.detail || feed; 3808 igFeed = feed; 3809 user = feed.username; 3810 limit = feed.items.length; 3811 if (feed.active && feed.items.length) { 3812 buildSlider(); 3813 if (!pulseTimer) { 3814 pulseTimer = setInterval(pulse, 3500, igFeed.items); 3815 } 3816 } else { 3817 $('.ig-feed, .ig-feed-item').hide(); 3818 } 3819 }); 3820 $(window).on('resize.lpui-auto-clean', onResize); 3821 let timer = null; 3822 function onResize() { 3823 clearTimeout(timer); 3824 timer = window.setTimeout(buildSlider, 50); 3825 } 3826 function getLayout(w, n) { 3827 if (w > 1100) { 3828 if (n > 5) { 3829 return { 3830 type: 'type1', 3831 single: n, 3832 multi: 1, 3833 slides: 3 3834 }; 3835 } 3836 return { 3837 type: 'type1', 3838 single: n, 3839 multi: 1, 3840 slides: 3 3841 }; 3842 } else if (w > 767) { 3843 if (n > 4) { 3844 return { 3845 type: 'type3', 3846 single: n - 1, 3847 multi: 1, 3848 slides: 2 3849 }; 3850 } 3851 return { 3852 type: 'type4', 3853 single: n, 3854 multi: n, 3855 slides: 2 3856 }; 3857 } else if (w > 460) { 3858 return { 3859 type: 'type3', 3860 single: n, 3861 multi: 1, 3862 slides: 2 3863 }; 3864 } 3865 return { 3866 type: 'type5', 3867 single: 2, 3868 multi: 1, 3869 slides: 2 3870 }; 3871 } 3872 function ensureClass($el, className) { 3873 if ($el.hasClass(className)) { 3874 return; 3875 } 3876 $el.addClass(className); 3877 } 3878 function makeSquare($el) { 3879 const el = $el[0]; 3880 el.style.width = ''; 3881 el.style.height = ''; 3882 const rect = el.getBoundingClientRect(); 3883 if (rect.width !== rect.height) { 3884 el.style.width = rect.height + 'px'; 3885 } 3886 } 3887 function buildSlider() { 3888 const cWidth = $container[0].getBoundingClientRect().width; 3889 if (cWidth === usedWidth) { 3890 return; 3891 } 3892 $container.empty(); 3893 slider = $('<div class="ig-feed-slider"></div>'); 3894 const items = igFeed.items.slice(0, limit); 3895 const layout = getLayout(cWidth, items.length); 3896 let i = 0; 3897 let idxMulti = 0; 3898 let slide = null; 3899 while (i < layout.multi) { 3900 let first = ''; 3901 if (idxMulti === 0) first = 'show-follow'; 3902 slide = $(`<div class="slide-multi ${layout.type} ${first}"></div>`).appendTo(slider); 3903 let slideContent = $('<div class="slide-multi-content"></div>').appendTo(slide); 3904 const lim = i + 3; 3905 while (i < lim) { 3906 if (i === 0) { 3907 slideContent.append(itemTemplate({ 3908 follow: 'follow-us', 3909 permalink: 'https://www.instagram.com/' + user, 3910 id: i 3911 })); 3912 } else { 3913 items[i].id = i; 3914 slideContent.append(itemTemplate(items[i])); 3915 } 3916 i++; 3917 idxMulti++; 3918 } 3919 } 3920 while (i < layout.single) { 3921 items[i].id = i; 3922 slide = $(`<div class="slide-single ${layout.type}"></div>`).append(itemTemplate(items[i])).appendTo(slider); 3923 i++; 3924 } 3925 $container.append(slider); 3926 $section.find('.follow-title').text(followTitleText); 3927 $section.find('.follow-account').append('<span>@' + user + '</span>'); 3928 } 3929 let itemPosition = 0; 3930 let pulse = itemsInfo => { 3931 for (x = itemPosition; x <= itemPosition + 7; x++) { 3932 let nextData = x >= itemsInfo.length - 1 ? x + 1 - itemsInfo.length : x + 1; 3933 if (itemsInfo[nextData].mediaType == 'VIDEO') { 3934 $section.find('.jsId-' + (x - itemPosition)).find('.ig-feed-item__img').css("background-image", "url('" + itemsInfo[nextData].thumbnailUrl + "')"); 3935 $section.find('.jsId-' + (x - itemPosition)).find('.video-icon').show(); 3936 } else { 3937 $section.find('.jsId-' + (x - itemPosition)).find('.ig-feed-item__img').css("background-image", "url('" + itemsInfo[nextData].mediaUrl + "')"); 3938 $section.find('.jsId-' + (x - itemPosition)).find('.video-icon').hide(); 3939 } 3940 $section.find('.jsId-' + (x - itemPosition)).find('.ig-feed-item__caption').text(itemsInfo[nextData].caption); 3941 if (!$section.find('.jsId-' + (x - itemPosition)).hasClass('follow-us')) $section.find('.jsId-' + (x - itemPosition)).attr("href", itemsInfo[nextData].permalink); 3942 } 3943 itemPosition++; 3944 if (itemPosition == itemsInfo.length) itemPosition = 0; 3945 }; 3946})('section-7348e5c3-3703-4b3a-9347-40fac50851f0', 'undefined'); 3947} catch(e) { 3948console.log(e); 3949} 3950 try { 3951(function init(sectionDomId) { 3952 const form = $("#" + sectionDomId).find("form"); 3953 const redirectLink = $('#' + sectionDomId + ' .redirect-link'); 3954 form.on("reset", function () { 3955 redirectPage(redirectLink); 3956 }); 3957 function redirectPage(link) { 3958 if (link.length) { 3959 const rawHref = link.attr('href'); 3960 link.attr('href', setHttp(rawHref)); 3961 link[0].click(); 3962 } 3963 } 3964 function setHttp(link) { 3965 if (link.search(/^http[s]?\:\/\/|\//) == -1) { 3966 link = 'http://' + link; 3967 } 3968 return link; 3969 } 3970})('section-3bfaf491-9b8b-4880-ae2b-ec79934e71f3', 'undefined'); 3971} catch(e) { 3972console.log(e); 3973} 3974 3975 var { body } = document; 3976 var globalNav = body.querySelector(':scope > nav'); 3977 var globalSideMenu = body.querySelector(':scope > div.sidemenu'); 3978 3979 document.querySelectorAll('body > .modal .close').forEach(modalCloseBtn => { 3980 modalCloseBtn.addEventListener('click', function() { 3981 window.lpUI.hideClosestModal(modalCloseBtn); 3982 }); 3983 }); 3984 3985 window.addEventListener('click', function() { 3986 document.querySelectorAll('.share-popup').forEach(sharedPopup => { 3987 sharedPopup.style.display = 'none' ; 3988 }); 3989 }); 3990 3991 /* Misc Partials / Addons */ 3992 function initWOW() { 3993 if (wow) { 3994 wow.init(); 3995 wow.scrollHandler(); 3996 setTimeout(function () { 3997 const wowHideStyle = document.getElementById('wow-hide-elements'); 3998 if(wowHideStyle) { 3999 wowHideStyle.disabled = true; 4000 } 4001 }, 1); 4002 } 4003 } 4004 4005 const wowHideElements = document.getElementById('wow-hide-elements'); 4006 if (wowHideElements) { 4007 wowHideElements.disabled = false;
4008 } 4009 4010 initWOW(); 4011 4012 /* Generic Navbar Handling */ 4013 globalNav?.querySelectorAll('.hamburger-component').forEach(hamburgerComponent => { 4014 hamburgerComponent.addEventListener('click', function() { 4015 window.lpUI.sideMenuToggle(); 4016 }); 4017 }); 4018 globalSideMenu?.querySelectorAll('.toggle').forEach(toggleEl => { 4019 toggleEl.addEventListener('click', function() { 4020 window.lpUI.sideMenuToggle(); 4021 }); 4022 }); 4023 4024 document.querySelectorAll('body > nav .sub-nav-container > a, body > div.sidemenu .sub-nav-container > a').forEach(linkEl => { 4025 linkEl.addEventListener('click', function(e) { 4026 e.preventDefault(); 4027 e.stopPropagation(); 4028 var subNav = linkEl.parentElement.querySelector(':scope > .sub-nav'); 4029 if (subNav && subNav.classList.contains('visible')){ 4030 subNav.classList.remove('visible'); 4031 } else { 4032 globalNav?.querySelectorAll('.sub-nav-container .sub-nav').forEach(globalSubNav => { 4033 globalSubNav.classList.remove('visible'); 4034 }); 4035 globalSideMenu?.querySelectorAll('.sub-nav').forEach(sideMenuSubNav => { 4036 sideMenuSubNav.classList.remove('visible'); 4037 }); 4038 subNav?.classList.add('visible'); 4039 } 4040 }); 4041 }); 4042 window.addEventListener('click', function() { 4043 document.querySelectorAll('nav .sub-nav.visible, .sidemenu .sub-nav.visible').forEach(subNavEl => { 4044 subNavEl.classList.remove('visible'); 4045 }); 4046 }); 4047 4048 } 4049 4050 document.addEventListener('DOMContentLoaded', lpGlobalInit); 4051 4052 </script>
4052 4053 4054
4054<script type="module"> 4055 function selectorExists(selector) { 4056 return document.querySelector(selector) !== null; 4057 } 4058 4059 // Function to initialize the third-party library 4060 function initParoller(selector = '.my-paroller') { 4061 var $parollerElements = $(selector); 4062 if ($parollerElements.length > 0 && typeof $parollerElements.paroller === 'function') { 4063 $parollerElements.paroller(); 4064 } 4065 } 4066 4067 const parollerSelector = '.my-paroller'; 4068 4069 if (selectorExists(parollerSelector)) { 4070 window.luxuryPresence.libs.loadJs(window.luxuryPresence.libs.jsLibsMap.paroller.jsSrc, function() { 4071 initParoller(parollerSelector); 4072 window.luxuryPresence.libs.jsLibsMap.paroller.isLoaded = true; 4073 }); 4074 } 4075 </script>
4075 4076 4077 <!-- Google Tag Manager (noscript) -->
vendor: 80 bytes, lines 4077-4078
4077 4078 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
4078GTM-T9SFQGHZ
vendor: 107 bytes, lines 4078-4080
4078" 4079 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 4080
4080<!-- End Google Tag Manager --> 4081 <!-- Start of HubSpot Embed Code --> 4082
4082<script type="text/javascript" id="hs-script-loader" async defer src="//js-na1.hs-scripts.com/23773802.js"></script>
4082 4083<!-- End of HubSpot Embed Code --> 4084 4085<!--
4085<script type="text/javascript" id="zsiqchat">var $zoho=$zoho || {};$zoho.salesiq = $zoho.salesiq || {widgetcode: "c326584a399b064b7f4de018d1bf4b04bf6f6d62ccec8f2890d4016096e60bea79551002e7b41f6a477df3c1916be75f", values:{},ready:function(){}};var d=document;s=d.createElement("script");s.type="text/javascript";s.id="zsiqscript";s.defer=true;s.src="https://salesiq.zoho.com/widget";t=d.getElementsByTagName("script")[0];t.parentNode.insertBefore(s,t);</script>
4085-->
4086<script> (function(){ 4087 var s = document.createElement('script'); 4088 var h = document.querySelector('head') || document.body; 4089 s.src = 'https://acsbapp.com/apps/app/dist/js/app.js'; 4090 s.async = true; 4091 s.onload = function(){ 4092 acsbJS.init({ 4093 statementLink : '', 4094 footerHtml : '', 4095 hideMobile : true, 4096 hideTrigger : false, 4097 disableBgProcess : false, 4098 language : 'en', 4099 position : 'left', 4100 leadColor : '#919191', 4101 triggerColor : '#919191', 4102 triggerRadius : '50%', 4103 triggerPositionX : 'right', 4104 triggerPositionY : 'bottom', 4105 triggerIcon : 'people', 4106 triggerSize : 'small', 4107 triggerOffsetX : 7, 4108 triggerOffsetY : 10, 4109 mobile : { 4110 triggerSize : 'small', 4111 triggerPositionX : 'right', 4112 triggerPositionY : 'bottom', 4113 triggerOffsetX : 10, 4114 triggerOffsetY : 10, 4115 triggerRadius : '50%' 4116 } 4117 }); 4118 }; 4119 h.appendChild(s); 4120})(); 4121</script>
4121 4122 4123 4124<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 4124-4125
4124 4125<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
4125GTM-TXMZ2W9K
vendor: 85 bytes, lines 4125-4126
4125" 4126height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
4127<!-- End Google Tag Manager (noscript) --> 4128
4128<script 4129 src="https://cdn.luxurypresence.com/scripts/a11y-widget/latest/widget.js" 4130 data-website-id="6c769009-9c3a-4f12-85ed-938263bb2536" 4131 4132 defer></script>
vendor: 1 bytes, line 4132
4132
4133<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 4133
4133
4134<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:'a4746eb22badeaf4',t:'MTc5MTQ1NTAzMA=='};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>
4134</body> 4135</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.