1<!doctype html> 2<html lang="en-US"> 3 4<head> 5 <!-- Google Tag Manager -->
6<script>
vendor: 331 bytes, lines 6-10
6(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 7new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 8j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 9'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 10})(window,document,'script','dataLayer','
10GTM-P42KHDW
vendor: 3 bytes, line 10
10');
10</script>
10 11<!-- End Google Tag Manager --> <meta charset="UTF-8" /> 12 <meta name="viewport" content="width=device-width, initial-scale=1" /> 13 <meta name="developer" content="Office/Bureau"> 14 <title>Market Updates – Royal LePage Leading Edge Blog</title> 15<meta name='robots' content='max-image-preview:large' /> 16<link rel='dns-prefetch' href='//platform-api.sharethis.com' /> 17<link rel='dns-prefetch' href='//officebureau.ca' /> 18<link rel='dns-prefetch' href='//use.typekit.net' /> 19<link rel="alternate" type="application/rss+xml" title="Royal LePage Leading Edge Blog » Market Updates Category Feed" href="https://royallepageleadingedge.ca/category/market-updates/feed/" /> 20<style id="wp-img-auto-sizes-contain-inline-css"> 21img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 22/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 23</style> 24<style id="wp-emoji-styles-inline-css"> 25 26 img.wp-smiley, img.emoji { 27 display: inline !important; 28 border: none !important; 29 box-shadow: none !important; 30 height: 1em !important; 31 width: 1em !important; 32 margin: 0 0.07em !important; 33 vertical-align: -0.1em !important; 34 background: none !important; 35 padding: 0 !important; 36 } 37/*# sourceURL=wp-emoji-styles-inline-css */ 38</style> 39<style id="wp-block-library-inline-css"> 40:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
40--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 41 42/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 43</style> 44<style id="wp-block-heading-inline-css"> 45h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} 46/*# sourceURL=https://royallepageleadingedge.ca/wp-includes/blocks/heading/style.min.css */ 47</style> 48<style id="wp-block-paragraph-inline-css"> 49.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} 50/*# sourceURL=https://royallepageleadingedge.ca/wp-includes/blocks/paragraph/style.min.css */ 51</style> 52<style id="wp-block-search-inline-css"> 53.wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){-webkit-appearance:initial;-moz-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right} 54/*# sourceURL=https://royallepageleadingedge.ca/wp-includes/blocks/search/style.min.css */ 55</style> 56<style id="wp-block-social-links-inline-css"> 57.wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block}@media not (prefers-reduced-motion){.wp-block-social-link{transition:transform .1s ease}}.wp-block-social-link{height:auto}.wp-block-social-link a{align-items:center;display:flex;line-height:0}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link{background-color:#f0f0f0;color:#444}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon{background-color:#f90;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance{background-color:#0757fe;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky{background-color:#0a7aff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord{background-color:#5865f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy{background-color:#f45800;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook{background-color:#0866ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr{background-color:#0461dd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare{background-color:#e65678;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github{background-color:#24292d;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google{background-color:#ea4434;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram{background-color:#f00075;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup{background-color:#f6405f;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest{background-color:#e60122;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket{background-color:#ef4155;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit{background-color:#ff4500;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype{background-color:#0478d7;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify{background-color:#1bd760;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram{background-color:#2aabee;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr{background-color:#011835;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch{background-color:#6440a4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk{background-color:#4680c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp{background-color:#d32422;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube{background-color:red;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link{background:none}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg{height:1.25em;width:1.25em}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon{color:#f90}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp{color:#1ea0c3}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance{color:#0757fe}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky{color:#0a7aff}
57:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen{color:#1e1f26}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart{color:#02e49b}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord{color:#5865f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble{color:#e94c89}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox{color:#4280ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy{color:#f45800}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook{color:#0866ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr{color:#0461dd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare{color:#e65678}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github{color:#24292d}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads{color:#382110}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google{color:#ea4434}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar{color:#1d4fc4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram{color:#f00075}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm{color:#e21b24}
57:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin{color:#0d66c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon{color:#3288d4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup{color:#f6405f}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest{color:#e60122}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket{color:#ef4155}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit{color:#ff4500}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype{color:#0478d7}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud{color:#ff5600}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify{color:#1bd760}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram{color:#2aabee}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr{color:#011835}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch{color:#6440a4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter{color:#1da1f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo{color:#1eb7ea}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk{color:#4680c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp{color:#25d366}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress{color:#3499cd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp{color:#d32422}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}:root :where(.wp-block-social-links .wp-social-link a){padding:.25em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a){padding:0}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a){padding-left:.6666666667em;padding-right:.6666666667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} 58/*# sourceURL=https://royallepageleadingedge.ca/wp-includes/blocks/social-links/style.min.css */ 59</style> 60 61 62<style id="nua-container-style-inline-css"> 63.wp-block-nua-container{background-repeat:no-repeat;position:relative}.wp-block-nua-container.has-min-height{align-items:stretch;display:flex;flex-direction:column}.wp-block-nua-container__background,.wp-block-nua-container__background img{bottom:0;display:block;height:100%;left:0;position:absolute;right:0;top:0;width:100%}@media screen and (max-width:900px){.wp-block-nua-container__background.stacked-on-mobile,.wp-block-nua-container__background.stacked-on-mobile img{position:relative;width:100%}}.wp-block-nua-container__background img{object-fit:contain}.wp-block-nua-container__inner-container.alignwide{margin-left:auto;margin-right:auto;max-width:1440px;padding-left:80px;padding-right:80px;width:100%}@media screen and (max-width:1280px){.wp-block-nua-container__inner-container.alignwide{padding-left:12px;padding-right:12px}}.wp-block-nua-container__inner-container>:last-child{margin-bottom:0}.wp-block-nua-container__svg-element{bottom:0;display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.wp-block-nua-container__svg-element svg{position:absolute}.wp-block-nua-container__svg-element.has-color svg{display:inline-block;fill:currentColor}.wp-block-nua-container.has-z-index .wp-block-nua-container__inner-container{position:relative}.wp-block-nua-container.has-padding-top-small>.wp-block-nua-container__inner-container{padding-top:var(--wp--custom--spacing--small)}.wp-block-nua-container.has-margin-top-small{margin-top:var(--wp--custom--spacing--small)}.wp-block-nua-container.has-margin-top-small-negative{margin-top:calc(var(--wp--custom--spacing--small)*-1)}.wp-block-nua-container.has-padding-top-medium>.wp-block-nua-container__inner-container{padding-top:var(--wp--custom--spacing--regular)}.wp-block-nua-container.has-margin-top-medium{margin-top:var(--wp--custom--spacing--regular)}.wp-block-nua-container.has-margin-top-medium-negative{margin-top:calc(var(--wp--custom--spacing--regular)*-1)}.wp-block-nua-container.has-padding-top-large>.wp-block-nua-container__inner-container{padding-top:var(--wp--custom--spacing--large)}.wp-block-nua-container.has-margin-top-large{margin-top:var(--wp--custom--spacing--large)}.wp-block-nua-container.has-margin-top-large-negative{margin-top:calc(var(--wp--custom--spacing--large)*-1)}.wp-block-nua-container.has-padding-top-x-large>.wp-block-nua-container__inner-container{padding-top:var(--wp--custom--spacing--x-large)}.wp-block-nua-container.has-margin-top-x-large{margin-top:var(--wp--custom--spacing--x-large)}.wp-block-nua-container.has-margin-top-x-large-negative{margin-top:calc(var(--wp--custom--spacing--x-large)*-1)}.wp-block-nua-container.has-padding-top-none>.wp-block-nua-container__inner-container{padding-top:var(--wp--custom--spacing--none)}.wp-block-nua-container.has-margin-top-none{margin-top:var(--wp--custom--spacing--none)}.wp-block-nua-container.has-margin-top-none-negative{margin-top:calc(var(--wp--custom--spacing--none)*-1)}.wp-block-nua-container.has-padding-top-auto>.wp-block-nua-container__inner-container{padding-top:var(--wp--custom--spacing--auto)}.wp-block-nua-container.has-margin-top-auto{margin-top:var(--wp--custom--spacing--auto)}.wp-block-nua-container.has-margin-top-auto-negative{margin-top:calc(var(--wp--custom--spacing--auto)*-1)}.wp-block-nua-container.has-padding-right-small>.wp-block-nua-container__inner-container{padding-right:var(--wp--custom--spacing--small)}.wp-block-nua-container.has-margin-right-small{margin-right:var(--wp--custom--spacing--small)}.wp-block-nua-container.has-margin-right-small-negative{margin-right:calc(var(--wp--custom--spacing--small)*-1)}.wp-block-nua-container.has-padding-right-medium>.wp-block-nua-container__inner-container{padding-right:var(--wp--custom--spacing--regular)}.wp-block-nua-container.has-margin-right-medium{margin-right:var(--wp--custom--spacing--regular)}.wp-block-nua-container.has-margin-right-medium-negative{margin-right:calc(var(--wp--custom--spacing--regular)*-1)}.wp-block-nua-container.has-padding-right-large>.wp-block-nua-container__inner-container{padding-right:var(--wp--custom--spacing--large)}.wp-block-nua-container.has-margin-right-large{margin-right:var(--wp--custom--spacing--large)}.wp-block-nua-container.has-margin-right-large-negative{margin-right:calc(var(--wp--custom--spacing--large)*-1)}.wp-block-nua-container.has-padding-right-x-large>.wp-block-nua-container__inner-container{padding-right:var(--wp--custom--spacing--x-large)}.wp-block-nua-container.has-margin-right-x-large{margin-right:var(--wp--custom--spacing--x-large)}.wp-block-nua-container.has-margin-right-x-large-negative{margin-right:calc(var(--wp--custom--spacing--x-large)*-1)}.wp-block-nua-container.has-padding-right-none>.wp-block-nua-container__inner-container{padding-right:var(--wp--custom--spacing--none)}.wp-block-nua-container.has-margin-right-none{margin-right:var(--wp--custom--spacing--none)}.wp-block-nua-container.has-margin-right-none-negative{margin-right:calc(var(--wp--custom--spacing--none)*-1)}.wp-block-nua-container.has-padding-right-auto>.wp-block-nua-container__inner-container{padding-right:var(--wp--custom--spacing--auto)}.wp-block-nua-container.has-margin-right-auto{margin-right:var(--wp--custom--spacing--auto)}.wp-block-nua-container.has-margin-right-auto-negative{margin-right:calc(var(--wp--custom--spacing--auto)*-1)}.wp-block-nua-container.has-padding-bottom-small>.wp-block-nua-container__inner-container{padding-bottom:var(--wp--custom--spacing--small)}.wp-block-nua-container.has-margin-bottom-small{margin-bottom:var(--wp--custom--spacing--small)}.wp-block-nua-container.has-margin-bottom-small-negative{margin-bottom:calc(var(--wp--custom--spacing--small)*-1)}.wp-block-nua-container.has-padding-bottom-medium>.wp-block-nua-container__inner-container{padding-bottom:var(--wp--custom--spacing--regular)}.wp-block-nua-container.has-margin-bottom-medium{margin-bottom:var(--wp--custom--spacing--regular)}.wp-block-nua-container.has-margin-bottom-medium-negative{margin-bottom:calc(var(--wp--custom--spacing--regular)*-1)}.wp-block-nua-container.has-padding-bottom-large>.wp-block-nua-container__inner-container{padding-bottom:var(--wp--custom--spacing--large)}.wp-block-nua-container.has-margin-bottom-large{margin-bottom:var(--wp--custom--spacing--large)}.wp-block-nua-container.has-margin-bottom-large-negative{margin-bottom:calc(var(--wp--custom--spacing--large)*-1)}.wp-block-nua-container.has-padding-bottom-x-large>.wp-block-nua-container__inner-container{padding-bottom:var(--wp--custom--spacing--x-large)}.wp-block-nua-container.has-margin-bottom-x-large{margin-bottom:var(--wp--custom--spacing--x-large)}.wp-block-nua-container.has-margin-bottom-x-large-negative{margin-bottom:calc(var(--wp--custom--spacing--x-large)*-1)}.wp-block-nua-container.has-padding-bottom-none>.wp-block-nua-container__inner-container{padding-bottom:var(--wp--custom--spacing--none)}.wp-block-nua-container.has-margin-bottom-none{margin-bottom:var(--wp--custom--spacing--none)}.wp-block-nua-container.has-margin-bottom-none-negative{margin-bottom:calc(var(--wp--custom--spacing--none)*-1)}.wp-block-nua-container.has-padding-bottom-auto>.wp-block-nua-container__inner-container{padding-bottom:var(--wp--custom--spacing--auto)}.wp-block-nua-container.has-margin-bottom-auto{margin-bottom:var(--wp--custom--spacing--auto)}.wp-block-nua-container.has-margin-bottom-auto-negative{margin-bottom:calc(var(--wp--custom--spacing--auto)*-1)}.wp-block-nua-container.has-padding-left-small>.wp-block-nua-container__inner-container{padding-left:var(--wp--custom--spacing--small)}.wp-block-nua-container.has-margin-left-small{margin-left:var(--wp--custom--spacing--small)}.wp-block-nua-container.has-margin-left-small-negative{margin-left:calc(var(--wp--custom--spacing--small)*-1)}.wp-block-nua-container.has-padding-left-medium>.wp-block-nua-container__inner-container{padding-left:var(--wp--custom--spacing--regular)}.wp-block-nua-container.has-margin-left-medium{margin-left:var(--wp--custom--spacing--regular)}.wp-block-nua-container.has-margin-left-medium-negative{margin-left:calc(var(--wp--custom--spacing--regular)*-1)}.wp-block-nua-container.has-padding-left-large>.wp-block-nua-container__inner-container{padding-left:var(--wp--custom--spacing--large)}.wp-block-nua-container.has-margin-left-large{margin-left:var(--wp--custom--spacing--large)}.wp-block-nua-container.has-margin-left-large-negative{margin-left:calc(var(--wp--custom--spacing--large)*-1)}.wp-block-nua-container.has-padding-left-x-large>.wp-block-nua-container__inner-container{padding-left:var(--wp--custom--spacing--x-large)}.wp-block-nua-container.has-margin-left-x-large{margin-left:var(--wp--custom--spacing--x-large)}.wp-block-nua-container.has-margin-left-x-large-negative{margin-left:calc(var(--wp--custom--spacing--x-large)*-1)}.wp-block-nua-container.has-padding-left-none>.wp-block-nua-container__inner-container{padding-left:var(--wp--custom--spacing--none)}.wp-block-nua-container.has-margin-left-none{margin-left:var(--wp--custom--spacing--none)}.wp-block-nua-container.has-margin-left-none-negative{margin-left:calc(var(--wp--custom--spacing--none)*-1)}.wp-block-nua-container.has-padding-left-auto>.wp-block-nua-container__inner-container{padding-left:var(--wp--custom--spacing--auto)}.wp-block-nua-container.has-margin-left-auto{margin-left:var(--wp--custom--spacing--auto)}.wp-block-nua-container.has-margin-left-auto-negative{margin-left:calc(var(--wp--custom--spacing--auto)*-1)} 64 65/*# sourceURL=https://royallepageleadingedge.ca/wp-content/plugins/royallepageleadingedge/blocks/container/build/style-index.css */ 66</style> 67 68<style id="global-styles-inline-css"> 69:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--red: #E00034;--wp--preset--color--dark-red: #B4002A;--wp--preset--color--nua-black: #000000;--wp--preset--color--nua-white: #FFFFFF;--wp--preset--color--dark-grey: #333333;--wp--preset--color--grey: #979797;--wp--preset--color--light-grey: #ECECEC;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
690) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 12px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 25px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--medium-small: 14px;--wp--preset--font-size--normal: 18px;--wp--preset--font-size--medium-large: 21px;--wp--preset--font-size--extra-large: 30px;--wp--preset--font-size--huge: clamp(40px, 3.5vw, 50px);--wp--preset--font-size--gigantic: clamp(48px, 7vw, 100px);--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);--wp--custom--spacing--small: 18px;--wp--custom--spacing--regular: 36px;--wp--custom--spacing--large: 60px;--wp--custom--spacing--x-large: 72px;--wp--custom--spacing--none: 0;--wp--custom--spacing--auto: auto;}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 800px;--wp--style--global--wide-size: 1480px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-red-color{color: var(--wp--preset--color--red) !important;}.has-dark-red-color{color: var(--wp--preset--color--dark-red) !important;}.has-nua-black-color{color: var(--wp--preset--color--nua-black) !important;}.has-nua-white-color{color: var(--wp--preset--color--nua-white) !important;}.has-dark-grey-color{color: var(--wp--preset--color--dark-grey) !important;}.has-grey-color{color: var(--wp--preset--color--grey) !important;}.has-light-grey-color{color: var(--wp--preset--color--light-grey) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-red-background-color{background-color: var(--wp--preset--color--red) !important;}.has-dark-red-background-color{background-color: var(--wp--preset--color--dark-red) !important;}.has-nua-black-background-color{background-color: var(--wp--preset--color--nua-black) !important;}.has-nua-white-background-color{background-color: var(--wp--preset--color--nua-white) !important;}.has-dark-grey-background-color{background-color: var(--wp--preset--color--dark-grey) !important;}.has-grey-background-color{background-color: var(--wp--preset--color--grey) !important;}.has-light-grey-background-color{background-color: var(--wp--preset--color--light-grey) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-red-border-color{border-color: var(--wp--preset--color--red) !important;}.has-dark-red-border-color{border-color: var(--wp--preset--color--dark-red) !important;}.has-nua-black-border-color{border-color: var(--wp--preset--color--nua-black) !important;}.has-nua-white-border-color{border-color: var(--wp--preset--color--nua-white) !important;}.has-dark-grey-border-color{border-color: var(--wp--preset--color--dark-grey) !important;}.has-grey-border-color{border-color: var(--wp--preset--color--grey) !important;}.has-light-grey-border-color{border-color: var(--wp--preset--color--light-grey) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
69.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-medium-small-font-size{font-size: var(--wp--preset--font-size--medium-small) !important;}.has-normal-font-size{font-size: var(--wp--preset--font-size--normal) !important;}.has-medium-large-font-size{font-size: var(--wp--preset--font-size--medium-large) !important;}.has-extra-large-font-size{font-size: var(--wp--preset--font-size--extra-large) !important;}.has-huge-font-size{font-size: var(--wp--preset--font-size--huge) !important;}.has-gigantic-font-size{font-size: var(--wp--preset--font-size--gigantic) !important;} 70/*# sourceURL=global-styles-inline-css */ 71</style> 72 73<link rel='stylesheet' id='share-this-share-buttons-sticky-css' href='https://royallepageleadingedge.ca/wp-content/plugins/sharethis-share-buttons/css/mu-style.css?ver=1780604385' media='all' /> 74<link rel='stylesheet' id='font-proxima-nova-css' href='//use.typekit.net/njb0zbq.css?ver=7.1.2' media='all' /> 75<link rel='stylesheet' id='nua-styles-css' href='https://royallepageleadingedge.ca/wp-content/themes/royallepageleadingedge/styles/style.css?ver=1.2.3' media='all' />
76<script id="share-this-share-buttons-mu-js" src="//platform-api.sharethis.com/js/sharethis.js?ver=2.3.10#property=6204194df0a9c1001a91d390&product=gdpr-buttons&source=sharethis-share-buttons-wordpress"></script>
76 77<link rel="https://api.w.org/" href="https://royallepageleadingedge.ca/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://royallepageleadingedge.ca/wp-json/wp/v2/categories/66" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://royallepageleadingedge.ca/xmlrpc.php?rsd" /> 78<meta name="generator" content="WordPress 7.1.2" /> 79<link rel="icon" href="https://royallepageleadingedge.ca/wp-content/uploads/2022/01/cropped-rlpN_favicon-32x32.png" sizes="32x32" /> 80<link rel="icon" href="https://royallepageleadingedge.ca/wp-content/uploads/2022/01/cropped-rlpN_favicon-192x192.png" sizes="192x192" /> 81<link rel="apple-touch-icon" href="https://royallepageleadingedge.ca/wp-content/uploads/2022/01/cropped-rlpN_favicon-180x180.png" /> 82<meta name="msapplication-TileImage" content="https://royallepageleadingedge.ca/wp-content/uploads/2022/01/cropped-rlpN_favicon-270x270.png" /> 83<style id="wp-custom-css"> 84.otgs-development-site-front-end{display:none!important;} 85</style> 86 <!-- SOCIAL META TAGS --> 87 <meta property="og:url" content="https://royallepageleadingedge.ca/category/market-updates" /> 88 <meta property="og:title" content="Royal LePage Leading Edge Blog | Market Updates" /> 89 <meta property="og:description" content="Insights and news for real estate professionals" /> 90 <meta name="twitter:card" content="summary_large_image"> 91 <meta name="twitter:title" content="Royal LePage Leading Edge Blog | Market Updates" /> 92 <meta name="twitter:description" content="Insights and news for real estate professionals" /> 93 <meta name="twitter:image" content="https://royallepageleadingedge.ca/wp-content/uploads/2026/09/CBlogPost-2026-Canada-Newcomers-EN-1024x576-1.jpg" /> 94 <meta property="og:image" content="https://royallepageleadingedge.ca/wp-content/uploads/2026/09/CBlogPost-2026-Canada-Newcomers-EN-1024x576-1.jpg" /> 95 <!-- END SOCIAL META TAGS --> 96<style id="container_block_css-inline-css"> 97 .wp-block-nua-container.container-8ae66c56-7e70-4edc-bc98-0f174d2a4a80 > .wp-block-nua-container__inner-container { z-index: 1; } .wp-block-nua-container.container-8ae66c56-7e70-4edc-bc98-0f174d2a4a80 > .wp-block-nua-container__background img { object-position: 50% 50%; object-fit: cover; } .wp-block-nua-container.container-8ae66c56-7e70-4edc-bc98-0f174d2a4a80 > .wp-block-nua-container__background { width: 100%; height: 100%; } @media only screen and (max-width: 900px) { .wp-block-nua-container.container-8ae66c56-7e70-4edc-bc98-0f174d2a4a80 > .wp-block-nua-container__background img { } .wp-block-nua-container.container-8ae66c56-7e70-4edc-bc98-0f174d2a4a80 > .wp-block-nua-container__background { } } @media only screen and (max-width: 480px) { .wp-block-nua-container.container-8ae66c56-7e70-4edc-bc98-0f174d2a4a80 > .wp-block-nua-container__background img { } .wp-block-nua-container.container-8ae66c56-7e70-4edc-bc98-0f174d2a4a80 > .wp-block-nua-container__background { } } 98/*# sourceURL=container_block_css-inline-css */ 99</style> 100 101</head> 102 103<body class="archive category category-market-updates category-66 wp-custom-logo wp-theme-royallepageleadingedge"> 104 <!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 104-105
104 105<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
105GTM-P42KHDW
vendor: 85 bytes, lines 105-106
105" 106height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
107<!-- End Google Tag Manager (noscript) --> <a class="skip-link screen-reader-text" href="#content">Skip to content</a> 108 <div hidden="hidden" class="visuallyhidden"> 109 <span id="new-window">Opens in a new window</span> 110 <span id="external-site">Opens an external site</span> 111 <span id="new-window-external-site">Opens an external site in a new window</span> 112 </div> 113 <header id="nua-site-header" class="site-header"> 114 <div id="nua-nav-bar" class="nav-bar container"> 115 <a class="site-logo" href="https://royallepageleadingedge.ca"><img src="https://royallepageleadingedge.ca/wp-content/uploads/2024/02/RLP-R-logo-reverse-no-box-RGB-600px.png" /></a> 116 117 <div class="header-tagline"> 118 The Voice of Canadian Real Estate⢠</div> 119 120 121 <div id="nua-nav-container" class="nav-bar__menus"> 122 <div class="nav-bar__language-switcher"> 123 </div> 124 <button id="nua-nav-toggle" class="nav-toggle" aria-expanded="false" aria-controls="nua-nav-drawer"> 125 <span class="visuallyhidden">Toggle Menu</span> 126 <span class="hamburger"><span class="hamburger__patty"></span></span> 127 </button> 128 <div id="nua-nav-drawer" class="nav-drawer" hidden> 129 <div class="nav-drawer__inner"> 130 <div class="nav-drawer__section nav-drawer__section--bottom"> 131 <div class="nav-menu nav-menu--primary"> 132 <nav class="nav-menu__menu site-nav"><ul id="menu-main-nav" class="menu"><li id="menu-item-15881" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15881"><a target="_blank" href="https://www.royallepage.ca/joinus">Join Royal LePage</a></li> 133<li id="menu-item-15880" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15880"><a target="_blank" href="https://blog.royallepage.ca/">Consumer Blog</a></li> 134<li id="menu-item-15882" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15882"><a target="_blank" href="mailto:[email protected]">Contact Us</a></li> 135</ul></nav> </div> 136 <div id="social-icons" class="widget widget-social-icons"> 137<ul class="wp-block-social-links has-icon-color has-icon-background-color is-layout-flex wp-block-social-links-is-layout-flex"><li style="color:#FFFFFF;background-color:#E00034" class="wp-social-link wp-social-link-instagram has-white-color has-red-background-color wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.instagram.com/royal_lepage/#" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Instagram</span></a></li> 138 139<li style="color:#FFFFFF;background-color:#E00034" class="wp-social-link wp-social-link-linkedin has-white-color has-red-background-color wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/royal-lepage" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
139<path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li> 140 141<li style="color:#FFFFFF;background-color:#E00034" class="wp-social-link wp-social-link-youtube has-white-color has-red-background-color wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/user/RoyalLePageCanada" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li> 142 143<li style="color:#FFFFFF;background-color:#E00034" class="wp-social-link wp-social-link-facebook has-white-color has-red-background-color wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/royallepage" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li></ul> 144</div> </div> 145 <div class="nav-drawer__section nav-menu"> 146 <div class="nav-drawer__search-bar"> 147 <div id="site-sidebar" class="widget widget-site-sidebar"><form role="search" method="get" action="https://royallepageleadingedge.ca/" class="wp-block-search__button-inside wp-block-search__icon-button wp-block-search" ><label class="wp-block-search__label screen-reader-text" for="wp-block-search__input-1" >Search</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-1" placeholder="Search" value="" type="search" name="s" required /><button aria-label="" class="wp-block-search__button has-icon wp-element-button" type="submit" ><svg class="search-icon" viewBox="0 0 24 24" width="24" height="24"> 148 <path d="M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path> 149 </svg></button></div></form></div> </div> 150 <div class="nav-menu__heading">Browse by Topic</div> 151 <nav class="nav-menu__menu utility-nav"><ul id="menu-browse-by-topic" class="menu"><li id="menu-item-15886" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15886"><a href="https://royallepageleadingedge.ca/category/success-stories/">Success Stories</a></li> 152<li id="menu-item-17997" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-17997"><a href="https://royallepageleadingedge.ca/category/coachs-inbox/">Coach’s Inbox</a></li> 153<li id="menu-item-15887" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-15887"><a href="https://royallepageleadingedge.ca/category/market-updates/" aria-current="page">Market Updates</a></li> 154<li id="menu-item-15883" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15883"><a href="https://royallepageleadingedge.ca/category/innovative-tech/">Innovative Tech</a></li> 155<li id="menu-item-24208" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-24208"><a href="https://royallepageleadingedge.ca/category/next-chapter/">Next Chapter</a></li> 156<li id="menu-item-24011" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-24011"><a href="https://royallepageleadingedge.ca/category/franchise-support/">Franchise Support</a></li> 157<li id="menu-item-15884" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15884"><a href="https://royallepageleadingedge.ca/category/giving-back/">Giving Back</a></li> 158<li id="menu-item-15885" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15885"><a href="https://royallepageleadingedge.ca/category/trusted-partners/">Trusted Partners</a></li> 159</ul></nav> </div> 160 <div class="nav-drawer__section nav-drawer__section--mobile"> 161 <h2 class="nav-menu__heading nav-menu__heading--center">Subscribe to get the latest updates</h2> 162 <div class="subscribe-form__container gr-subscribe-form"> 163 <form method="POST" action="https://royallepage40684.activehosted.com/proc.php" id="_form_17_" class="_form _form_17 _inl
163ine-form _dark" novalidate data-styles-version="5"> 164 <input type="hidden" name="u" value="17" /> 165 <input type="hidden" name="f" value="17" /> 166 <input type="hidden" name="s" /> 167 <input type="hidden" name="c" value="0" /> 168 <input type="hidden" name="m" value="0" /> 169 <input type="hidden" name="act" value="sub" /> 170 <input type="hidden" name="v" value="2" /> 171 <input type="hidden" name="or" value="a85fa627653dc1ba80d017d1a29ed0f6" /> 172 <div class="_form-content"> 173 <div class="_form_element _x46335747 _full_width " > 174 <label for="email" class="_form-label"> 175 </label> 176 <div class="_field-wrapper"> 177 <input type="text" id="email" name="email" placeholder="EMAIL" required/> 178 </div> 179 </div> 180 <div class="_form_element _x92886507 _full_width " > 181 <label for="ls" class="_form-label"> 182 Please verify your request.* 183 </label> 184 <div class="g-recaptcha" data-sitekey="6LcwIw8TAAAAACP1ysM08EhCgzd6q5JAOUR1a0Go"> 185 </div> 186 </div> 187 <div class="_button-wrapper _full_width"> 188 <button id="_form_17_submit" class="_submit" type="submit"> 189 Subscribe 190 </button> 191 </div> 192 <div class="_clear-element"> 193 </div> 194 </div> 195 <div class="_form-thank-you" style="display:none;"> 196 </div> 197</form>
197<script> 198window.cfields = []; 199window._show_thank_you = function(id, message, trackcmp_url, email) { 200 var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you'); 201 form.querySelector('._form-content').style.display = 'none'; 202 thank_you.innerHTML = message; 203 thank_you.style.display = 'block'; 204 const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; 205 var visitorObject = window[vgoAlias]; 206 if (email && typeof visitorObject !== 'undefined') { 207 visitorObject('setEmail', email); 208 visitorObject('update'); 209 } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { 210 // Site tracking URL to use after inline form submission. 211 _load_script(trackcmp_url); 212 } 213 if (typeof window._form_callback !== 'undefined') window._form_callback(id); 214}; 215window._show_unsubscribe = function(id, message, trackcmp_url, email) { 216 var form = document.getElementById('_form_' + id + '_'), unsub = form.querySelector('._form-thank-you'); 217 var branding = form.querySelector('._form-branding'); 218 if (branding) { 219 branding.style.display = 'none'; 220 } 221 form.querySelector('._form-content').style.display = 'none'; 222 unsub.style.display = 'block'; 223 form.insertAdjacentHTML('afterend', message) 224 const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; 225 var visitorObject = window[vgoAlias]; 226 if (email && typeof visitorObject !== 'undefined') { 227 visitorObject('setEmail', email); 228 visitorObject('update'); 229 } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { 230 // Site tracking URL to use after inline form submission. 231 _load_script(trackcmp_url); 232 } 233 if (typeof window._form_callback !== 'undefined') window._form_callback(id); 234}; 235window._show_error = function(id, message, html) { 236 var form = document.getElementById('_form_' + id + '_'), 237 err = document.createElement('div'), 238 button = form.querySelector('button'), 239 old_error = form.querySelector('._form_error'); 240 if (old_error) old_error.parentNode.removeChild(old_error); 241 err.innerHTML = message; 242 err.className = '_error-inner _form_error _no_arrow'; 243 var wrapper = document.createElement('div'); 244 wrapper.className = '_form-inner'; 245 wrapper.appendChild(err); 246 button.parentNode.insertBefore(wrapper, button); 247 var submitButton = form.querySelector('[id^="_form"][id$="_submit"]'); 248 submitButton.disabled = false; 249 submitButton.classList.remove('processing'); 250 if (html) { 251 var div = document.createElement('div'); 252 div.className = '_error-html'; 253 div.innerHTML = html; 254 err.appendChild(div); 255 } 256}; 257window._show_pc_confirmation = function(id, header, detail, show, email) { 258 var form = document.getElementById('_form_' + id + '_'), pc_confirmation = form.querySelector('._form-pc-confirmation'); 259 if (pc_confirmation.style.display === 'none') { 260 form.querySelector('._form-content').style.display = 'none'; 261 pc_confirmation.innerHTML = "<div class='_form-title'>" + header + "</div>" + "<p>" + detail + "</p>" + 262 "<button class='_submit' id='hideButton'>Manage preferences</button>"; 263 pc_confirmation.style.display = 'block'; 264 var mp = document.querySelector('input[name="mp"]'); 265 mp.value = '0'; 266 } else { 267 form.querySelector('._form-content').style.display = 'inline'; 268 pc_confirmation.style.display = 'none'; 269 } 270 271 var hideButton = document.getElementById('hideButton'); 272 // Add event listener to the button 273 hideButton.addEventListener('click', function() { 274 var submitButton = document.querySelector('#_form_17_submit'); 275 submitButton.disabled = false; 276 submitButton.classList.remove('processing'); 277 var mp = document.querySelector('input[name="mp"]'); 278 mp.value = '1'; 279 const cacheBuster = new URL(window.location.href); 280 cacheBuster.searchParams.set('v', new Date().getTime()); 281 window.location.href = cacheBuster.toString(); 282 }); 283 284 const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; 285 var visitorObject = window[vgoAlias]; 286 if (email && typeof visitorObject !== 'undefined') { 287 visitorObject('setEmail', email); 288 visitorObject('update'); 289 } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { 290 // Site tracking URL to use after inline form submission. 291 _load_script(trackcmp_url); 292 } 293 if (typeof window._form_callback !== 'undefined') window._form_callback(id); 294}; 295window._load_script = function(url, callback, isSubmit) { 296 var head = document.querySelector('head'), script = document.createElement('script'), r = false;
297 var submitButton = document.querySelector('#_form_17_submit'); 298 script.charset = 'utf-8'; 299 script.src = url; 300 if (callback) { 301 script.onload = script.onreadystatechange = function() { 302 if (!r && (!this.readyState || this.readyState == 'complete')) { 303 r = true; 304 callback(); 305 } 306 }; 307 } 308 script.onerror = function() { 309 if (isSubmit) { 310 if (script.src.length > 10000) { 311 _show_error("17", "Sorry, your submission failed. Please shorten your responses and try again."); 312 } else { 313 _show_error("17", "Sorry, your submission failed. Please try again."); 314 } 315 submitButton.disabled = false; 316 submitButton.classList.remove('processing'); 317 } 318 } 319 320 head.appendChild(script); 321}; 322(function() { 323 if (window.location.search.search("excludeform") !== -1) return false; 324 var getCookie = function(name) { 325 var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)')); 326 return match ? match[2] : null; 327 } 328 var setCookie = function(name, value) { 329 var now = new Date(); 330 var time = now.getTime(); 331 var expireTime = time + 1000 * 60 * 60 * 24 * 365; 332 now.setTime(expireTime); 333 document.cookie = name + '=' + value + '; expires=' + now + ';path=/; Secure; SameSite=Lax;'; 334 } 335 var addEvent = function(element, event, func) { 336 if (element.addEventListener) { 337 element.addEventListener(event, func); 338 } else { 339 var oldFunc = element['on' + event]; 340 element['on' + event] = function() { 341 oldFunc.apply(this, arguments); 342 func.apply(this, arguments); 343 }; 344 } 345 } 346 var _removed = false; 347 var form_to_submit = document.getElementById('_form_17_'); 348 var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false; 349 350 var getUrlParam = function(name) { 351 if (name.toLowerCase() !== 'email') { 352 var params = new URLSearchParams(window.location.search); 353 return params.get(name) || false; 354 } 355 // email is a special case because a plus is valid in the email address 356 var qString = window.location.search; 357 if (!qString) { 358 return false; 359 } 360 var parameters = qString.substr(1).split('&'); 361 for (var i = 0; i < parameters.length; i++) { 362 var parameter = parameters[i].split('='); 363 if (parameter[0].toLowerCase() === 'email') { 364 return parameter[1] === undefined ? true : decodeURIComponent(parameter[1]); 365 } 366 } 367 return false; 368 }; 369 370 var acctDateFormat = "%m/%d/%Y"; 371 var getNormalizedDate = function(date, acctFormat) { 372 var decodedDate = decodeURIComponent(date); 373 if (acctFormat && acctFormat.match(/(%d|%e).*%m/gi) !== null) { 374 return decodedDate.replace(/(\d{2}).*(\d{2}).*(\d{4})/g, '$3-$2-$1'); 375 } else if (Date.parse(decodedDate)) { 376 var dateObj = new Date(decodedDate); 377 var year = dateObj.getFullYear(); 378 var month = dateObj.getMonth() + 1; 379 var day = dateObj.getDate(); 380 return `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`; 381 } 382 return false; 383 }; 384 385 var getNormalizedTime = function(time) { 386 var hour, minutes; 387 var decodedTime = decodeURIComponent(time); 388 var timeParts = Array.from(decodedTime.matchAll(/(\d{1,2}):(\d{1,2})\W*([AaPp][Mm])?/gm))[0]; 389 if (timeParts[3]) { // 12 hour format 390 var isPM = timeParts[3].toLowerCase() === 'pm'; 391 if (isPM) { 392 hour = parseInt(timeParts[1]) === 12 ? '12' : `${parseInt(timeParts[1]) + 12}`; 393 } else { 394 hour = parseInt(timeParts[1]) === 12 ? '0' : timeParts[1]; 395 } 396 } else { // 24 hour format 397 hour = timeParts[1]; 398 } 399 var normalizedHour = parseInt(hour) < 10 ? `0${parseInt(hour)}` : hour; 400 var minutes = timeParts[2]; 401 return `${normalizedHour}:${minutes}`; 402 }; 403 404 for (var i = 0; i < allInputs.length; i++) { 405 var regexStr = "field\\[(\\d+)\\]"; 406 var results = new RegExp(regexStr).exec(allInputs[i].name); 407 if (results != undefined) { 408 allInputs[i].dataset.name = allInputs[i].name.match(/\[time\]$/) 409 ? `${window.cfields[results[1]]}_time` 410 : window.cfields[results[1]]; 411 } else { 412 allInputs[i].dataset.name = allInputs[i].name; 413 } 414 var fieldVal = getUrlParam(allInputs[i].dataset.name); 415 416 if (fieldVal) {
417 if (allInputs[i].dataset.autofill === "false") { 418 continue; 419 } 420 if (allInputs[i].type == "radio" || allInputs[i].type == "checkbox") { 421 if (allInputs[i].value == fieldVal) { 422 allInputs[i].checked = true; 423 } 424 } else if (allInputs[i].type == "date") { 425 allInputs[i].value = getNormalizedDate(fieldVal, acctDateFormat); 426 } else if (allInputs[i].type == "time") { 427 allInputs[i].value = getNormalizedTime(fieldVal); 428 } else { 429 allInputs[i].value = fieldVal; 430 } 431 } 432 } 433 434 var remove_tooltips = function() { 435 for (var i = 0; i < tooltips.length; i++) { 436 tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); 437 } 438 tooltips = []; 439 }; 440 var remove_tooltip = function(elem) { 441 for (var i = 0; i < tooltips.length; i++) { 442 if (tooltips[i].elem === elem) { 443 tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); 444 tooltips.splice(i, 1); 445 return; 446 } 447 } 448 }; 449 var create_tooltip = function(elem, text) { 450 var tooltip = document.createElement('div'), 451 arrow = document.createElement('div'), 452 inner = document.createElement('div'), new_tooltip = {}; 453 if (elem.type != 'radio' && elem.type != 'checkbox') { 454 tooltip.className = '_error'; 455 arrow.className = '_error-arrow'; 456 inner.className = '_error-inner'; 457 inner.innerHTML = text; 458 tooltip.appendChild(arrow); 459 tooltip.appendChild(inner); 460 elem.parentNode.appendChild(tooltip); 461 } else { 462 tooltip.className = '_error-inner _no_arrow'; 463 tooltip.innerHTML = text; 464 elem.parentNode.insertBefore(tooltip, elem); 465 new_tooltip.no_arrow = true; 466 } 467 new_tooltip.tip = tooltip; 468 new_tooltip.elem = elem; 469 tooltips.push(new_tooltip); 470 return new_tooltip; 471 }; 472 var resize_tooltip = function(tooltip) { 473 var rect = tooltip.elem.getBoundingClientRect(); 474 var doc = document.documentElement, 475 scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)); 476 if (scrollPosition < 40) { 477 tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below'; 478 } else { 479 tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above'; 480 } 481 }; 482 var resize_tooltips = function() { 483 if (_removed) return; 484 for (var i = 0; i < tooltips.length; i++) { 485 if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]); 486 } 487 }; 488 var validate_field = function(elem, remove) { 489 var tooltip = null, value = elem.value, no_error = true; 490 remove ? remove_tooltip(elem) : false; 491 if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, ''); 492 if (elem.getAttribute('required') !== null) { 493 if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) { 494 var elems = form_to_submit.elements[elem.name]; 495 if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) { 496 no_error = elem.checked; 497 } 498 else { 499 no_error = false; 500 for (var i = 0; i < elems.length; i++) { 501 if (elems[i].checked) no_error = true; 502 } 503 } 504 if (!no_error) { 505 tooltip = create_tooltip(elem, "Please select an option."); 506 } 507 } else if (elem.type =='checkbox') { 508 var elems = form_to_submit.elements[elem.name], found = false, err = []; 509 no_error = true; 510 for (var i = 0; i < elems.length; i++) { 511 if (elems[i].getAttribute('required') === null) continue; 512 if (!found && elems[i] !== elem) return true; 513 found = true; 514 elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, ''); 515 if (!elems[i].checked) { 516 no_error = false;
517 elems[i].className = elems[i].className + ' _has_error'; 518 err.push("Checking %s is required".replace("%s", elems[i].value)); 519 } 520 } 521 if (!no_error) { 522 tooltip = create_tooltip(elem, err.join('<br/>')); 523 } 524 } else if (elem.tagName == 'SELECT') { 525 var selected = true; 526 if (elem.multiple) { 527 selected = false; 528 for (var i = 0; i < elem.options.length; i++) { 529 if (elem.options[i].selected) { 530 selected = true; 531 break; 532 } 533 } 534 } else { 535 for (var i = 0; i < elem.options.length; i++) { 536 if (elem.options[i].selected 537 && (!elem.options[i].value 538 || (elem.options[i].value.match(/\n/g))) 539 ) { 540 selected = false; 541 } 542 } 543 } 544 if (!selected) { 545 elem.className = elem.className + ' _has_error'; 546 no_error = false; 547 tooltip = create_tooltip(elem, "Please select an option."); 548 } 549 } else if (value === undefined || value === null || value === '') { 550 elem.className = elem.className + ' _has_error'; 551 no_error = false; 552 tooltip = create_tooltip(elem, "This field is required."); 553 } 554 } 555 if (no_error && (elem.id == 'field[]' || elem.id == 'ca[11][v]')) { 556 if (elem.className.includes('phone-input-error')) { 557 elem.className = elem.className + ' _has_error'; 558 no_error = false; 559 } 560 } 561 if (no_error && elem.name == 'email') { 562 if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) { 563 elem.className = elem.className + ' _has_error'; 564 no_error = false; 565 tooltip = create_tooltip(elem, "Enter a valid email address."); 566 } 567 } 568 if (no_error && /date_field/.test(elem.className)) { 569 if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) { 570 elem.className = elem.className + ' _has_error'; 571 no_error = false; 572 tooltip = create_tooltip(elem, "Enter a valid date."); 573 } 574 } 575 tooltip ? resize_tooltip(tooltip) : false; 576 return no_error; 577 }; 578 var needs_validate = function(el) { 579 if(el.getAttribute('required') !== null){ 580 return true 581 } 582 if(el.name === 'email' && el.value !== ""){ 583 return true 584 } 585 586 if((el.id == 'field[]' || el.id == 'ca[11][v]') && el.className.includes('phone-input-error')){ 587 return true 588 } 589 590 return false 591 }; 592 var validate_form = function(e) { 593 var err = form_to_submit.querySelector('._form_error'), no_error = true; 594 if (!submitted) { 595 submitted = true; 596 for (var i = 0, len = allInputs.length; i < len; i++) { 597 var input = allInputs[i]; 598 if (needs_validate(input)) { 599 if (input.type == 'tel') { 600 addEvent(input, 'blur', function() { 601 this.value = this.value.trim(); 602 validate_field(this, true); 603 }); 604 } 605 if (input.type == 'text' || input.type == 'number' || input.type == 'time') { 606 addEvent(input, 'blur', function() { 607 this.value = this.value.trim(); 608 validate_field(this, true); 609 }); 610 addEvent(input, 'input', function() { 611 validate_field(this, true); 612 }); 613 } else if (input.type == 'radio' || input.type == 'checkbox') { 614 (function(el) { 615 var radios = form_to_submit.elements[el.name]; 616 for (var i = 0; i < radios.length; i++) { 617 addEvent(radios[i], 'click', function() { 618 validate_field(el, true); 619 }); 620 } 621 })(input); 622 } else if (input.tagName == 'SELECT') { 623 addEvent(input, 'change', function() { 624 validate_field(this, true); 625 }); 626 } else if (input.type == 'textarea'){ 627 addEvent(input, 'input', function() { 628 validate_field(this, true); 629 }); 630 } 631 } 632 } 633 } 634 remove_tooltips(); 635 for (var i = 0, len = allInputs.length; i < len; i++) { 636 var elem = allInputs[i]; 637 if (needs_validate(elem)) { 638 if (elem.tagName.toLowerCase() !== "select") { 639 elem.value = elem.value.trim(); 640 } 641 validate_field(elem) ? true : no_error = false;
642 } 643 } 644 if (!no_error && e) { 645 e.preventDefault(); 646 } 647 resize_tooltips(); 648 return no_error; 649 }; 650 addEvent(window, 'resize', resize_tooltips); 651 addEvent(window, 'scroll', resize_tooltips); 652 653 var hidePhoneInputError = function(inputId) { 654 var errorMessage = document.getElementById("error-msg-" + inputId); 655 var input = document.getElementById(inputId); 656 errorMessage.classList.remove("phone-error"); 657 errorMessage.classList.add("phone-error-hidden"); 658 input.classList.remove("phone-input-error"); 659 }; 660 661 var initializePhoneInput = function(input, defaultCountry) { 662 return window.intlTelInput(input, { 663 utilsScript: "https://unpkg.com/[email protected]/build/js/utils.js", 664 autoHideDialCode: false, 665 separateDialCode: true, 666 initialCountry: defaultCountry, 667 preferredCountries: [] 668 }); 669 } 670 671 var setPhoneInputEventListeners = function(inputId, input, iti) { 672 input.addEventListener('blur', function() { 673 var errorMessage = document.getElementById("error-msg-" + inputId); 674 if (input.value.trim()) { 675 if (iti.isValidNumber()) { 676 iti.setNumber(iti.getNumber()); 677 if (errorMessage.classList.contains("phone-error")){ 678 hidePhoneInputError(inputId); 679 } 680 } else { 681 showPhoneInputError(inputId) 682 } 683 } else { 684 if (errorMessage.classList.contains("phone-error")){ 685 hidePhoneInputError(inputId); 686 } 687 } 688 }); 689 690 input.addEventListener("countrychange", function() { 691 iti.setNumber(''); 692 }); 693 694 input.addEventListener("keydown", function(e) { 695 var charCode = (e.which) ? e.which : e.keyCode; 696 if (charCode > 31 && (charCode < 48 || charCode >
696 57) && charCode !== 8) { 697 e.preventDefault(); 698 } 699 }); 700 }; 701 702 var showPhoneInputError = function(inputId) { 703 var errorMessage = document.getElementById("error-msg-" + inputId); 704 var input = document.getElementById(inputId); 705 errorMessage.classList.add("phone-error"); 706 errorMessage.classList.remove("phone-error-hidden"); 707 input.classList.add("phone-input-error"); 708 }; 709 710 711 window['recaptcha_callback'] = function() { 712 // Get all recaptchas in the DOM (there may be more than one form on the page). 713 var recaptchas = document.getElementsByClassName("g-recaptcha"); 714 for (var i in recaptchas) { 715 // Set the recaptcha element ID, so the recaptcha can be applied to each element. 716 var recaptcha_id = "recaptcha_" + i; 717 recaptchas[i].id = recaptcha_id; 718 var el = document.getElementById(recaptcha_id); 719 if (el != null) { 720 var sitekey = el.getAttribute("data-sitekey"); 721 var stoken = el.getAttribute("data-stoken"); 722 grecaptcha.render(recaptcha_id, {"sitekey":sitekey,"stoken":stoken}); 723 } 724 } 725}; _load_script( 726 "https://www.google.com/recaptcha/api.js?onload=recaptcha_callback&render=explicit" 727 ); 728 var _form_serialize = function(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"tel":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(" ")+encodeURIComponent(form.elements[i].value));break;case"text":case"number":case"date":case"time":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")}; 729 730 const formSupportsPost = false; 731 var form_submit = function(e) { 732 733 e.preventDefault(); 734 if (validate_form()) { 735 // use this trick to get the submit button & disable it using plain
735javascript 736 var submitButton = e.target.querySelector('#_form_17_submit'); 737 submitButton.disabled = true; 738 submitButton.classList.add('processing'); 739 var serialized = _form_serialize( 740 document.getElementById('_form_17_') 741 ).replace(/%0A/g, '\\n'); 742 var err = form_to_submit.querySelector('._form_error'); 743 err ? err.parentNode.removeChild(err) : false; 744 async function submitForm() { 745 var formData = new FormData(); 746 const searchParams = new URLSearchParams(serialized); 747 searchParams.forEach((value, key) => { 748 if (key !== 'hideButton') { 749 formData.append(key, value); 750 } 751 //formData.append(key, value); 752 }); 753 let request = { 754 headers: { 755 "Accept": "application/json" 756 }, 757 body: formData, 758 method: "POST" 759 }; 760 761 let pageUrlParams = new URLSearchParams(window.location.search); 762 if (pageUrlParams.has('t')) { 763 request.headers.Authorization = 'Bearer ' + pageUrlParams.get('t'); 764 } 765 const response = await fetch('https://royallepage40684.activehosted.com/proc.php?jsonp=true', request); 766 return response.json(); 767 } 768 if (formSupportsPost) { 769 submitForm().then((data) => { 770 eval(data.js); 771 }); 772 } else { 773 _load_script('https://royallepage40684.activehosted.com/proc.php?' + serialized + '&jsonp=true', null, true); 774 } 775 } 776 return false; 777 }; 778 addEvent(form_to_submit, 'submit', form_submit); 779})(); 780 781</script>
781 </div> 782 </div> 783 </div> 784 </div> 785 </div> 786 </div> 787 </header> 788 <div id="content" class="site-content"> 789 <div class="subscribe-flyout"> 790 <div class="subscribe-flyout__banner"> 791 <button class="subscribe-flyout__toggle" aria-controls="subscribe-form-flyout" aria-expanded="false"> 792 Subscribe to get the latest updates <svg aria-hidden="true" role="icon" class="subscribe-flyout__toggle-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20.5 12.4" xml:space="preserve"> 793 <path d="m10.3 4.3 8.1 8.1 2.1-2.1L10.3 0 0 10.3l2.2 2.1z" /> 794 </svg> 795 </button> 796 <button class="subscribe-flyout__button"><span class="visuallyhidden">Close</span></button> 797 </div> 798 <div class="subscribe-flyout__form-container gr-subscribe-form" id="subscribe-form-flyout"> 799 <div class="subscribe-flyout__form"> 800 <form method="POST" action="https://royallepage40684.activehosted.com/proc.php" id="_form_17_" class="_form _form_17 _inline-form _dark" novalidate data-styles-version="5"> 801 <input type="hidden" name="u" value="17" /> 802 <input type="hidden" name="f" value="17" /> 803 <input type="hidden" name="s" /> 804 <input type="hidden" name="c" value="0" /> 805 <input type="hidden" name="m" value="0" /> 806 <input type="hidden" name="act" value="sub" /> 807 <input type="hidden" name="v" value="2" /> 808 <input type="hidden" name="or" value="a85fa627653dc1ba80d017d1a29ed0f6" /> 809 <div class="_form-content"> 810 <div class="_form_element _x46335747 _full_width " > 811 <label for="email" class="_form-label"> 812 </label> 813 <div class="_field-wrapper"> 814 <input type="text" id="email" name="email" placeholder="EMAIL" required/> 815 </div> 816 </div> 817 <div class="_form_element _x92886507 _full_width " > 818 <label for="ls" class="_form-label"> 819 Please verify your request.* 820 </label> 821 <div class="g-recaptcha" data-sitekey="6LcwIw8TAAAAACP1ysM08EhCgzd6q5JAOUR1a0Go"> 822 </div> 823 </div> 824 <div class="_button-wrapper _full_width"> 825 <button id="_form_17_submit" class="_submit" type="submit"> 826 Subscribe 827 </button> 828 </div> 829 <div class="_clear-element"> 830 </div> 831 </div> 832 <div class="_form-thank-you" style="display:none;"> 833 </div> 834</form>
834<script> 835window.cfields = []; 836window._show_thank_you = function(id, message, trackcmp_url, email) { 837 var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you'); 838 form.querySelector('._form-content').style.display = 'none'; 839 thank_you.innerHTML = message; 840 thank_you.style.display = 'block'; 841 const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; 842 var visitorObject = window[vgoAlias]; 843 if (email && typeof visitorObject !== 'undefined') { 844 visitorObject('setEmail', email); 845 visitorObject('update'); 846 } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { 847 // Site tracking URL to use after inline form submission. 848 _load_script(trackcmp_url); 849 } 850 if (typeof window._form_callback !== 'undefined') window._form_callback(id); 851}; 852window._show_unsubscribe = function(id, message, trackcmp_url, email) { 853 var form = document.getElementById('_form_' + id + '_'), unsub = form.querySelector('._form-thank-you'); 854 var branding = form.querySelector('._form-branding'); 855 if (branding) { 856 branding.style.display = 'none'; 857 } 858 form.querySelector('._form-content').style.display = 'none'; 859 unsub.style.display = 'block'; 860 form.insertAdjacentHTML('afterend', message) 861 const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; 862 var visitorObject = window[vgoAlias]; 863 if (email && typeof visitorObject !== 'undefined') { 864 visitorObject('setEmail', email); 865 visitorObject('update'); 866 } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { 867 // Site tracking URL to use after inline form submission. 868 _load_script(trackcmp_url); 869 } 870 if (typeof window._form_callback !== 'undefined') window._form_callback(id); 871}; 872window._show_error = function(id, message, html) { 873 var form = document.getElementById('_form_' + id + '_'), 874 err = document.createElement('div'), 875 button = form.querySelector('button'), 876 old_error = form.querySelector('._form_error'); 877 if (old_error) old_error.parentNode.removeChild(old_error); 878 err.innerHTML = message; 879 err.className = '_error-inner _form_error _no_arrow'; 880 var wrapper = document.createElement('div'); 881 wrapper.className = '_form-inner'; 882 wrapper.appendChild(err); 883 button.parentNode.insertBefore(wrapper, button); 884 var submitButton = form.querySelector('[id^="_form"][id$="_submit"]'); 885 submitButton.disabled = false; 886 submitButton.classList.remove('processing'); 887 if (html) { 888 var div = document.createElement('div'); 889 div.className = '_error-html'; 890 div.innerHTML = html; 891 err.appendChild(div); 892 } 893}; 894window._show_pc_confirmation = function(id, header, detail, show, email) { 895 var form = document.getElementById('_form_' + id + '_'), pc_confirmation = form.querySelector('._form-pc-confirmation'); 896 if (pc_confirmation.style.display === 'none') { 897 form.querySelector('._form-content').style.display = 'none'; 898 pc_confirmation.innerHTML = "<div class='_form-title'>" + header + "</div>" + "<p>" + detail + "</p>" + 899 "<button class='_submit' id='hideButton'>Manage preferences</button>"; 900 pc_confirmation.style.display = 'block'; 901 var mp = document.querySelector('input[name="mp"]'); 902 mp.value = '0'; 903 } else { 904 form.querySelector('._form-content').style.display = 'inline'; 905 pc_confirmation.style.display = 'none'; 906 } 907 908 var hideButton = document.getElementById('hideButton'); 909 // Add event listener to the button 910 hideButton.addEventListener('click', function() { 911 var submitButton = document.querySelector('#_form_17_submit'); 912 submitButton.disabled = false; 913 submitButton.classList.remove('processing'); 914 var mp = document.querySelector('input[name="mp"]'); 915 mp.value = '1'; 916 const cacheBuster = new URL(window.location.href); 917 cacheBuster.searchParams.set('v', new Date().getTime()); 918 window.location.href = cacheBuster.toString(); 919 }); 920 921 const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; 922 var visitorObject = window[vgoAlias]; 923 if (email && typeof visitorObject !== 'undefined') { 924 visitorObject('setEmail', email); 925 visitorObject('update'); 926 } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { 927 // Site tracking URL to use after inline form submission. 928 _load_script(trackcmp_url); 929 } 930 if (typeof window._form_callback !== 'undefined') window._form_callback(id); 931}; 932window._load_script = function(url, callback, isSubmit) { 933 var head = document.querySelector('head'), script = document.createElement('script'), r = false;
934 var submitButton = document.querySelector('#_form_17_submit'); 935 script.charset = 'utf-8'; 936 script.src = url; 937 if (callback) { 938 script.onload = script.onreadystatechange = function() { 939 if (!r && (!this.readyState || this.readyState == 'complete')) { 940 r = true; 941 callback(); 942 } 943 }; 944 } 945 script.onerror = function() { 946 if (isSubmit) { 947 if (script.src.length > 10000) { 948 _show_error("17", "Sorry, your submission failed. Please shorten your responses and try again."); 949 } else { 950 _show_error("17", "Sorry, your submission failed. Please try again."); 951 } 952 submitButton.disabled = false; 953 submitButton.classList.remove('processing'); 954 } 955 } 956 957 head.appendChild(script); 958}; 959(function() { 960 if (window.location.search.search("excludeform") !== -1) return false; 961 var getCookie = function(name) { 962 var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)')); 963 return match ? match[2] : null; 964 } 965 var setCookie = function(name, value) { 966 var now = new Date(); 967 var time = now.getTime(); 968 var expireTime = time + 1000 * 60 * 60 * 24 * 365; 969 now.setTime(expireTime); 970 document.cookie = name + '=' + value + '; expires=' + now + ';path=/; Secure; SameSite=Lax;'; 971 } 972 var addEvent = function(element, event, func) { 973 if (element.addEventListener) { 974 element.addEventListener(event, func); 975 } else { 976 var oldFunc = element['on' + event]; 977 element['on' + event] = function() { 978 oldFunc.apply(this, arguments); 979 func.apply(this, arguments); 980 }; 981 } 982 } 983 var _removed = false; 984 var form_to_submit = document.getElementById('_form_17_'); 985 var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false; 986 987 var getUrlParam = function(name) { 988 if (name.toLowerCase() !== 'email') { 989 var params = new URLSearchParams(window.location.search); 990 return params.get(name) || false; 991 } 992 // email is a special case because a plus is valid in the email address 993 var qString = window.location.search; 994 if (!qString) { 995 return false; 996 } 997 var parameters = qString.substr(1).split('&'); 998 for (var i = 0; i < parameters.length; i++) { 999 var parameter = parameters[i].split('='); 1000 if (parameter[0].toLowerCase() === 'email') { 1001 return parameter[1] === undefined ? true : decodeURIComponent(parameter[1]); 1002 } 1003 } 1004 return false; 1005 }; 1006 1007 var acctDateFormat = "%m/%d/%Y"; 1008 var getNormalizedDate = function(date, acctFormat) { 1009 var decodedDate = decodeURIComponent(date); 1010 if (acctFormat && acctFormat.match(/(%d|%e).*%m/gi) !== null) { 1011 return decodedDate.replace(/(\d{2}).*(\d{2}).*(\d{4})/g, '$3-$2-$1'); 1012 } else if (Date.parse(decodedDate)) { 1013 var dateObj = new Date(decodedDate); 1014 var year = dateObj.getFullYear(); 1015 var month = dateObj.getMonth() + 1; 1016 var day = dateObj.getDate(); 1017 return `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`; 1018 } 1019 return false; 1020 }; 1021 1022 var getNormalizedTime = function(time) { 1023 var hour, minutes; 1024 var decodedTime = decodeURIComponent(time); 1025 var timeParts = Array.from(decodedTime.matchAll(/(\d{1,2}):(\d{1,2})\W*([AaPp][Mm])?/gm))[0]; 1026 if (timeParts[3]) { // 12 hour format 1027 var isPM = timeParts[3].toLowerCase() === 'pm'; 1028 if (isPM) { 1029 hour = parseInt(timeParts[1]) === 12 ? '12' : `${parseInt(timeParts[1]) + 12}`; 1030 } else { 1031 hour = parseInt(timeParts[1]) === 12 ? '0' : timeParts[1]; 1032 } 1033 } else { // 24 hour format 1034 hour = timeParts[1]; 1035 } 1036 var normalizedHour = parseInt(hour) < 10 ? `0${parseInt(hour)}` : hour; 1037 var minutes = timeParts[2]; 1038 return `${normalizedHour}:${minutes}`; 1039 }; 1040 1041 for (var i = 0; i < allInputs.length; i++) { 1042 var regexStr = "field\\[(\\d+)\\]"; 1043 var results = new RegExp(regexStr).exec(allInputs[i].name); 1044 if (results != undefined) { 1045 allInputs[i].dataset.name = allInputs[i].name.match(/\[time\]$/) 1046 ? `${window.cfields[results[1]]}_time` 1047 : window.cfields[results[1]]; 1048 } else { 1049 allInputs[i].dataset.name = allInputs[i].name; 1050 } 1051 var fieldVal = getUrlParam(allInputs[i].dataset.name); 1052 1053 if (fieldVal) {
1054 if (allInputs[i].dataset.autofill === "false") { 1055 continue; 1056 } 1057 if (allInputs[i].type == "radio" || allInputs[i].type == "checkbox") { 1058 if (allInputs[i].value == fieldVal) { 1059 allInputs[i].checked = true; 1060 } 1061 } else if (allInputs[i].type == "date") { 1062 allInputs[i].value = getNormalizedDate(fieldVal, acctDateFormat); 1063 } else if (allInputs[i].type == "time") { 1064 allInputs[i].value = getNormalizedTime(fieldVal); 1065 } else { 1066 allInputs[i].value = fieldVal; 1067 } 1068 } 1069 } 1070 1071 var remove_tooltips = function() { 1072 for (var i = 0; i < tooltips.length; i++) { 1073 tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); 1074 } 1075 tooltips = []; 1076 }; 1077 var remove_tooltip = function(elem) { 1078 for (var i = 0; i < tooltips.length; i++) { 1079 if (tooltips[i].elem === elem) { 1080 tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); 1081 tooltips.splice(i, 1); 1082 return; 1083 } 1084 } 1085 }; 1086 var create_tooltip = function(elem, text) { 1087 var tooltip = document.createElement('div'), 1088 arrow = document.createElement('div'), 1089 inner = document.createElement('div'), new_tooltip = {}; 1090 if (elem.type != 'radio' && elem.type != 'checkbox') { 1091 tooltip.className = '_error'; 1092 arrow.className = '_error-arrow'; 1093 inner.className = '_error-inner'; 1094 inner.innerHTML = text; 1095 tooltip.appendChild(arrow); 1096 tooltip.appendChild(inner); 1097 elem.parentNode.appendChild(tooltip); 1098 } else { 1099 tooltip.className = '_error-inner _no_arrow'; 1100 tooltip.innerHTML = text; 1101 elem.parentNode.insertBefore(tooltip, elem); 1102 new_tooltip.no_arrow = true; 1103 } 1104 new_tooltip.tip = tooltip; 1105 new_tooltip.elem = elem; 1106 tooltips.push(new_tooltip); 1107 return new_tooltip; 1108 }; 1109 var resize_tooltip = function(tooltip) { 1110 var rect = tooltip.elem.getBoundingClientRect(); 1111 var doc = document.documentElement, 1112 scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)); 1113 if (scrollPosition < 40) { 1114 tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below'; 1115 } else { 1116 tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above'; 1117 } 1118 }; 1119 var resize_tooltips = function() { 1120 if (_removed) return; 1121 for (var i = 0; i < tooltips.length; i++) { 1122 if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]); 1123 } 1124 }; 1125 var validate_field = function(elem, remove) { 1126 var tooltip = null, value = elem.value, no_error = true; 1127 remove ? remove_tooltip(elem) : false; 1128 if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, ''); 1129 if (elem.getAttribute('required') !== null) { 1130 if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) { 1131 var elems = form_to_submit.elements[elem.name]; 1132 if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) { 1133 no_error = elem.checked; 1134 } 1135 else { 1136 no_error = false; 1137 for (var i = 0; i < elems.length; i++) { 1138 if (elems[i].checked) no_error = true; 1139 } 1140 } 1141 if (!no_error) { 1142 tooltip = create_tooltip(elem, "Please select an option."); 1143 } 1144 } else if (elem.type =='checkbox') { 1145 var elems = form_to_submit.elements[elem.name], found = false, err = []; 1146 no_error = true; 1147 for (var i = 0; i < elems.length; i++) { 1148 if (elems[i].getAttribute('required') === null) continue; 1149 if (!found && elems[i] !== elem) return true; 1150 found = true; 1151 elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, ''); 1152 if (!elems[i].checked) { 1153 no_error = false;
1154 elems[i].className = elems[i].className + ' _has_error'; 1155 err.push("Checking %s is required".replace("%s", elems[i].value)); 1156 } 1157 } 1158 if (!no_error) { 1159 tooltip = create_tooltip(elem, err.join('<br/>')); 1160 } 1161 } else if (elem.tagName == 'SELECT') { 1162 var selected = true; 1163 if (elem.multiple) { 1164 selected = false; 1165 for (var i = 0; i < elem.options.length; i++) { 1166 if (elem.options[i].selected) { 1167 selected = true; 1168 break; 1169 } 1170 } 1171 } else { 1172 for (var i = 0; i < elem.options.length; i++) { 1173 if (elem.options[i].selected 1174 && (!elem.options[i].value 1175 || (elem.options[i].value.match(/\n/g))) 1176 ) { 1177 selected = false; 1178 } 1179 } 1180 } 1181 if (!selected) { 1182 elem.className = elem.className + ' _has_error'; 1183 no_error = false; 1184 tooltip = create_tooltip(elem, "Please select an option."); 1185 } 1186 } else if (value === undefined || value === null || value === '') { 1187 elem.className = elem.className + ' _has_error'; 1188 no_error = false; 1189 tooltip = create_tooltip(elem, "This field is required."); 1190 } 1191 } 1192 if (no_error && (elem.id == 'field[]' || elem.id == 'ca[11][v]')) { 1193 if (elem.className.includes('phone-input-error')) { 1194 elem.className = elem.className + ' _has_error'; 1195 no_error = false; 1196 } 1197 } 1198 if (no_error && elem.name == 'email') { 1199 if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) { 1200 elem.className = elem.className + ' _has_error'; 1201 no_error = false; 1202 tooltip = create_tooltip(elem, "Enter a valid email address."); 1203 } 1204 } 1205 if (no_error && /date_field/.test(elem.className)) { 1206 if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) { 1207 elem.className = elem.className + ' _has_error'; 1208 no_error = false; 1209 tooltip = create_tooltip(elem, "Enter a valid date."); 1210 } 1211 } 1212 tooltip ? resize_tooltip(tooltip) : false; 1213 return no_error; 1214 }; 1215 var needs_validate = function(el) { 1216 if(el.getAttribute('required') !== null){ 1217 return true 1218 } 1219 if(el.name === 'email' && el.value !== ""){ 1220 return true 1221 } 1222 1223 if((el.id == 'field[]' || el.id == 'ca[11][v]') && el.className.includes('phone-input-error')){ 1224 return true 1225 } 1226 1227 return false 1228 }; 1229 var validate_form = function(e) { 1230 var err = form_to_submit.querySelector('._form_error'), no_error = true; 1231 if (!submitted) { 1232 submitted = true; 1233 for (var i = 0, len = allInputs.length; i < len; i++) { 1234 var input = allInputs[i]; 1235 if (needs_validate(input)) { 1236 if (input.type == 'tel') { 1237 addEvent(input, 'blur', function() { 1238 this.value = this.value.trim(); 1239 validate_field(this, true); 1240 }); 1241 } 1242 if (input.type == 'text' || input.type == 'number' || input.type == 'time') { 1243 addEvent(input, 'blur', function() { 1244 this.value = this.value.trim(); 1245 validate_field(this, true); 1246 }); 1247 addEvent(input, 'input', function() { 1248 validate_field(this, true); 1249 }); 1250 } else if (input.type == 'radio' || input.type == 'checkbox') { 1251 (function(el) { 1252 var radios = form_to_submit.elements[el.name]; 1253 for (var i = 0; i < radios.length; i++) { 1254 addEvent(radios[i], 'click', function() { 1255 validate_field(el, true); 1256 }); 1257 } 1258 })(input); 1259 } else if (input.tagName == 'SELECT') { 1260 addEvent(input, 'change', function() { 1261 validate_field(this, true); 1262 }); 1263 } else if (input.type == 'textarea'){ 1264 addEvent(input, 'input', function() { 1265 validate_field(this, true); 1266 }); 1267 } 1268 } 1269 } 1270 } 1271 remove_tooltips(); 1272 for (var i = 0, len = allInputs.length; i < len; i++) { 1273 var elem = allInputs[i]; 1274 if (needs_validate(elem)) { 1275 if (elem.tagName.toLowerCase() !== "select") { 1276 elem.value = elem.value.trim(); 1277 } 1278 validate_field(elem) ? true : no_error = false;
1279 } 1280 } 1281 if (!no_error && e) { 1282 e.preventDefault(); 1283 } 1284 resize_tooltips(); 1285 return no_error; 1286 }; 1287 addEvent(window, 'resize', resize_tooltips); 1288 addEvent(window, 'scroll', resize_tooltips); 1289 1290 var hidePhoneInputError = function(inputId) { 1291 var errorMessage = document.getElementById("error-msg-" + inputId); 1292 var input = document.getElementById(inputId); 1293 errorMessage.classList.remove("phone-error"); 1294 errorMessage.classList.add("phone-error-hidden"); 1295 input.classList.remove("phone-input-error"); 1296 }; 1297 1298 var initializePhoneInput = function(input, defaultCountry) { 1299 return window.intlTelInput(input, { 1300 utilsScript: "https://unpkg.com/[email protected]/build/js/utils.js", 1301 autoHideDialCode: false, 1302 separateDialCode: true, 1303 initialCountry: defaultCountry, 1304 preferredCountries: [] 1305 }); 1306 } 1307 1308 var setPhoneInputEventListeners = function(inputId, input, iti) { 1309 input.addEventListener('blur', function() { 1310 var errorMessage = document.getElementById("error-msg-" + inputId); 1311 if (input.value.trim()) { 1312 if (iti.isValidNumber()) { 1313 iti.setNumber(iti.getNumber()); 1314 if (errorMessage.classList.contains("phone-error")){ 1315 hidePhoneInputError(inputId); 1316 } 1317 } else { 1318 showPhoneInputError(inputId) 1319 } 1320 } else { 1321 if (errorMessage.classList.contains("phone-error")){ 1322 hidePhoneInputError(inputId); 1323 } 1324 } 1325 }); 1326 1327 input.addEventListener("countrychange", function() { 1328 iti.setNumber(''); 1329 }); 1330 1331 input.addEventListener("keydown", function(e) { 1332 var charCode = (e.which) ? e.which : e.keyCode; 1333 if (charCode > 31 && (charCode < 48 || charCode >
1333 57) && charCode !== 8) { 1334 e.preventDefault(); 1335 } 1336 }); 1337 }; 1338 1339 var showPhoneInputError = function(inputId) { 1340 var errorMessage = document.getElementById("error-msg-" + inputId); 1341 var input = document.getElementById(inputId); 1342 errorMessage.classList.add("phone-error"); 1343 errorMessage.classList.remove("phone-error-hidden"); 1344 input.classList.add("phone-input-error"); 1345 }; 1346 1347 1348 window['recaptcha_callback'] = function() { 1349 // Get all recaptchas in the DOM (there may be more than one form on the page). 1350 var recaptchas = document.getElementsByClassName("g-recaptcha"); 1351 for (var i in recaptchas) { 1352 // Set the recaptcha element ID, so the recaptcha can be applied to each element. 1353 var recaptcha_id = "recaptcha_" + i; 1354 recaptchas[i].id = recaptcha_id; 1355 var el = document.getElementById(recaptcha_id); 1356 if (el != null) { 1357 var sitekey = el.getAttribute("data-sitekey"); 1358 var stoken = el.getAttribute("data-stoken"); 1359 grecaptcha.render(recaptcha_id, {"sitekey":sitekey,"stoken":stoken}); 1360 } 1361 } 1362}; _load_script( 1363 "https://www.google.com/recaptcha/api.js?onload=recaptcha_callback&render=explicit" 1364 ); 1365 var _form_serialize = function(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"tel":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(" ")+encodeURIComponent(form.elements[i].value));break;case"text":case"number":case"date":case"time":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")}; 1366 1367 const formSupportsPost = false; 1368 var form_submit = function(e) { 1369 1370 e.preventDefault(); 1371 if (validate_form()) { 1372 // use this trick to get the submit button & disable it using plain
1372javascript 1373 var submitButton = e.target.querySelector('#_form_17_submit'); 1374 submitButton.disabled = true; 1375 submitButton.classList.add('processing'); 1376 var serialized = _form_serialize( 1377 document.getElementById('_form_17_') 1378 ).replace(/%0A/g, '\\n'); 1379 var err = form_to_submit.querySelector('._form_error'); 1380 err ? err.parentNode.removeChild(err) : false; 1381 async function submitForm() { 1382 var formData = new FormData(); 1383 const searchParams = new URLSearchParams(serialized); 1384 searchParams.forEach((value, key) => { 1385 if (key !== 'hideButton') { 1386 formData.append(key, value); 1387 } 1388 //formData.append(key, value); 1389 }); 1390 let request = { 1391 headers: { 1392 "Accept": "application/json" 1393 }, 1394 body: formData, 1395 method: "POST" 1396 }; 1397 1398 let pageUrlParams = new URLSearchParams(window.location.search); 1399 if (pageUrlParams.has('t')) { 1400 request.headers.Authorization = 'Bearer ' + pageUrlParams.get('t'); 1401 } 1402 const response = await fetch('https://royallepage40684.activehosted.com/proc.php?jsonp=true', request); 1403 return response.json(); 1404 } 1405 if (formSupportsPost) { 1406 submitForm().then((data) => { 1407 eval(data.js); 1408 }); 1409 } else { 1410 _load_script('https://royallepage40684.activehosted.com/proc.php?' + serialized + '&jsonp=true', null, true); 1411 } 1412 } 1413 return false; 1414 }; 1415 addEvent(form_to_submit, 'submit', form_submit); 1416})(); 1417 1418</script>
1418 </div> 1419 </div> 1420 </div> 1421 <div class="header-widget"> 1422 <div id="site-header" class="widget widget-site-header"> <div class=" wp-block-nua-container container-8ae66c56-7e70-4edc-bc98-0f174d2a4a80 has-nua-black-background-color has-background has-white-color has-text-color alignfull has-z-index has-padding-top-large has-margin-top-none has-padding-right-small has-margin-right-none has-padding-bottom-large has-padding-bottom-small-tablet has-margin-bottom-none has-padding-left-small has-margin-left-none" > 1423 <div class="wp-block-nua-container__background"> 1424 <img decoding="async" src="https://royallepageleadingedge.ca/wp-content/uploads/2022/03/Header1.svg"/> </div> 1425 <div class="wp-block-nua-container__inner-container alignwide"> 1426 1427 1428<p class="wp-block-paragraph"></p> 1429 1430 1431 1432<h1 class="has-gigantic-font-size wp-block-heading" id="leading-edge" style="font-style:normal;font-weight:100">Leading Edge</h1> 1433 1434 1435 1436<h2 class="has-large-font-size wp-block-heading" id="royal-lepage-s-industry-insights" style="font-style:normal;font-weight:300">Insights and news for real estate professionals</h2> 1437 1438 </div> 1439 </div> 1440</div> </div> 1441 1442 <main id="main" class="site-main" role="main"> 1443 1444<div class="container body-container archive-page"> 1445 <div class="body-container__sidebar "> 1446 1447<div class="sidebar"> 1448 <div class="sidebar__section sidebar__section--subscribe-form"> 1449 <div class="subscribe-form"> 1450 <h2 class="subscribe-form__heading sidebar__heading heading">Subscribe to get the latest updates</h2> 1451 1452 <div class="nav-bar__subscribe"> 1453 <button type="button" class="nav-bar__subscribe-btn btn" aria-expanded="false">Subscribe</button> 1454 <div class="subscribe-form__container gr-subscribe-form"> 1455 1456<form method="POST" action="https://royallepage40684.activehosted.com/proc.php" id="_form_17_" class="_form _form_17 _inl
1456ine-form _dark" novalidate data-styles-version="5"> 1457 <input type="hidden" name="u" value="17" /> 1458 <input type="hidden" name="f" value="17" /> 1459 <input type="hidden" name="s" /> 1460 <input type="hidden" name="c" value="0" /> 1461 <input type="hidden" name="m" value="0" /> 1462 <input type="hidden" name="act" value="sub" /> 1463 <input type="hidden" name="v" value="2" /> 1464 <input type="hidden" name="or" value="a85fa627653dc1ba80d017d1a29ed0f6" /> 1465 <div class="_form-content"> 1466 <div class="_form_element _x46335747 _full_width " > 1467 <label for="email" class="_form-label"> 1468 </label> 1469 <div class="_field-wrapper"> 1470 <input type="text" id="email" name="email" placeholder="EMAIL" required/> 1471 </div> 1472 </div> 1473 <div class="_form_element _x92886507 _full_width " > 1474 <label for="ls" class="_form-label"> 1475 Please verify your request.* 1476 </label> 1477 <div class="g-recaptcha" data-sitekey="6LcwIw8TAAAAACP1ysM08EhCgzd6q5JAOUR1a0Go"> 1478 </div> 1479 </div> 1480 <div class="_button-wrapper _full_width"> 1481 <button id="_form_17_submit" class="_submit" type="submit"> 1482 Subscribe 1483 </button> 1484 </div> 1485 <div class="_clear-element"> 1486 </div> 1487 </div> 1488 <div class="_form-thank-you" style="display:none;"> 1489 </div> 1490</form>
1490<script> 1491window.cfields = []; 1492window._show_thank_you = function(id, message, trackcmp_url, email) { 1493 var form = document.getElementById('_form_' + id + '_'), thank_you = form.querySelector('._form-thank-you'); 1494 form.querySelector('._form-content').style.display = 'none'; 1495 thank_you.innerHTML = message; 1496 thank_you.style.display = 'block'; 1497 const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; 1498 var visitorObject = window[vgoAlias]; 1499 if (email && typeof visitorObject !== 'undefined') { 1500 visitorObject('setEmail', email); 1501 visitorObject('update'); 1502 } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { 1503 // Site tracking URL to use after inline form submission. 1504 _load_script(trackcmp_url); 1505 } 1506 if (typeof window._form_callback !== 'undefined') window._form_callback(id); 1507}; 1508window._show_unsubscribe = function(id, message, trackcmp_url, email) { 1509 var form = document.getElementById('_form_' + id + '_'), unsub = form.querySelector('._form-thank-you'); 1510 var branding = form.querySelector('._form-branding'); 1511 if (branding) { 1512 branding.style.display = 'none'; 1513 } 1514 form.querySelector('._form-content').style.display = 'none'; 1515 unsub.style.display = 'block'; 1516 form.insertAdjacentHTML('afterend', message) 1517 const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; 1518 var visitorObject = window[vgoAlias]; 1519 if (email && typeof visitorObject !== 'undefined') { 1520 visitorObject('setEmail', email); 1521 visitorObject('update'); 1522 } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { 1523 // Site tracking URL to use after inline form submission. 1524 _load_script(trackcmp_url); 1525 } 1526 if (typeof window._form_callback !== 'undefined') window._form_callback(id); 1527}; 1528window._show_error = function(id, message, html) { 1529 var form = document.getElementById('_form_' + id + '_'), 1530 err = document.createElement('div'), 1531 button = form.querySelector('button'), 1532 old_error = form.querySelector('._form_error'); 1533 if (old_error) old_error.parentNode.removeChild(old_error); 1534 err.innerHTML = message; 1535 err.className = '_error-inner _form_error _no_arrow'; 1536 var wrapper = document.createElement('div'); 1537 wrapper.className = '_form-inner'; 1538 wrapper.appendChild(err); 1539 button.parentNode.insertBefore(wrapper, button); 1540 var submitButton = form.querySelector('[id^="_form"][id$="_submit"]'); 1541 submitButton.disabled = false; 1542 submitButton.classList.remove('processing'); 1543 if (html) { 1544 var div = document.createElement('div'); 1545 div.className = '_error-html'; 1546 div.innerHTML = html; 1547 err.appendChild(div); 1548 } 1549}; 1550window._show_pc_confirmation = function(id, header, detail, show, email) { 1551 var form = document.getElementById('_form_' + id + '_'), pc_confirmation = form.querySelector('._form-pc-confirmation'); 1552 if (pc_confirmation.style.display === 'none') { 1553 form.querySelector('._form-content').style.display = 'none'; 1554 pc_confirmation.innerHTML = "<div class='_form-title'>" + header + "</div>" + "<p>" + detail + "</p>" + 1555 "<button class='_submit' id='hideButton'>Manage preferences</button>"; 1556 pc_confirmation.style.display = 'block'; 1557 var mp = document.querySelector('input[name="mp"]'); 1558 mp.value = '0'; 1559 } else { 1560 form.querySelector('._form-content').style.display = 'inline'; 1561 pc_confirmation.style.display = 'none'; 1562 } 1563 1564 var hideButton = document.getElementById('hideButton'); 1565 // Add event listener to the button 1566 hideButton.addEventListener('click', function() { 1567 var submitButton = document.querySelector('#_form_17_submit'); 1568 submitButton.disabled = false; 1569 submitButton.classList.remove('processing'); 1570 var mp = document.querySelector('input[name="mp"]'); 1571 mp.value = '1'; 1572 const cacheBuster = new URL(window.location.href); 1573 cacheBuster.searchParams.set('v', new Date().getTime()); 1574 window.location.href = cacheBuster.toString(); 1575 }); 1576 1577 const vgoAlias = typeof visitorGlobalObjectAlias === 'undefined' ? 'vgo' : visitorGlobalObjectAlias; 1578 var visitorObject = window[vgoAlias]; 1579 if (email && typeof visitorObject !== 'undefined') { 1580 visitorObject('setEmail', email); 1581 visitorObject('update'); 1582 } else if (typeof(trackcmp_url) != 'undefined' && trackcmp_url) { 1583 // Site tracking URL to use after inline form submission. 1584 _load_script(trackcmp_url); 1585 } 1586 if (typeof window._form_callback !== 'undefined') window._form_callback(id); 1587}; 1588window._load_script = function(url, callback, isSubmit) { 1589 var head = document.querySelector('head'), script = document.createElement('script'), r = false;
1590 var submitButton = document.querySelector('#_form_17_submit'); 1591 script.charset = 'utf-8'; 1592 script.src = url; 1593 if (callback) { 1594 script.onload = script.onreadystatechange = function() { 1595 if (!r && (!this.readyState || this.readyState == 'complete')) { 1596 r = true; 1597 callback(); 1598 } 1599 }; 1600 } 1601 script.onerror = function() { 1602 if (isSubmit) { 1603 if (script.src.length > 10000) { 1604 _show_error("17", "Sorry, your submission failed. Please shorten your responses and try again."); 1605 } else { 1606 _show_error("17", "Sorry, your submission failed. Please try again."); 1607 } 1608 submitButton.disabled = false; 1609 submitButton.classList.remove('processing'); 1610 } 1611 } 1612 1613 head.appendChild(script); 1614}; 1615(function() { 1616 if (window.location.search.search("excludeform") !== -1) return false; 1617 var getCookie = function(name) { 1618 var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)')); 1619 return match ? match[2] : null; 1620 } 1621 var setCookie = function(name, value) { 1622 var now = new Date(); 1623 var time = now.getTime(); 1624 var expireTime = time + 1000 * 60 * 60 * 24 * 365; 1625 now.setTime(expireTime); 1626 document.cookie = name + '=' + value + '; expires=' + now + ';path=/; Secure; SameSite=Lax;'; 1627 } 1628 var addEvent = function(element, event, func) { 1629 if (element.addEventListener) { 1630 element.addEventListener(event, func); 1631 } else { 1632 var oldFunc = element['on' + event]; 1633 element['on' + event] = function() { 1634 oldFunc.apply(this, arguments); 1635 func.apply(this, arguments); 1636 }; 1637 } 1638 } 1639 var _removed = false; 1640 var form_to_submit = document.getElementById('_form_17_'); 1641 var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false; 1642 1643 var getUrlParam = function(name) { 1644 if (name.toLowerCase() !== 'email') { 1645 var params = new URLSearchParams(window.location.search); 1646 return params.get(name) || false; 1647 } 1648 // email is a special case because a plus is valid in the email address 1649 var qString = window.location.search; 1650 if (!qString) { 1651 return false; 1652 } 1653 var parameters = qString.substr(1).split('&'); 1654 for (var i = 0; i < parameters.length; i++) { 1655 var parameter = parameters[i].split('='); 1656 if (parameter[0].toLowerCase() === 'email') { 1657 return parameter[1] === undefined ? true : decodeURIComponent(parameter[1]); 1658 } 1659 } 1660 return false; 1661 }; 1662 1663 var acctDateFormat = "%m/%d/%Y"; 1664 var getNormalizedDate = function(date, acctFormat) { 1665 var decodedDate = decodeURIComponent(date); 1666 if (acctFormat && acctFormat.match(/(%d|%e).*%m/gi) !== null) { 1667 return decodedDate.replace(/(\d{2}).*(\d{2}).*(\d{4})/g, '$3-$2-$1'); 1668 } else if (Date.parse(decodedDate)) { 1669 var dateObj = new Date(decodedDate); 1670 var year = dateObj.getFullYear(); 1671 var month = dateObj.getMonth() + 1; 1672 var day = dateObj.getDate(); 1673 return `${year}-${month < 10 ? `0${month}` : month}-${day < 10 ? `0${day}` : day}`; 1674 } 1675 return false; 1676 }; 1677 1678 var getNormalizedTime = function(time) { 1679 var hour, minutes; 1680 var decodedTime = decodeURIComponent(time); 1681 var timeParts = Array.from(decodedTime.matchAll(/(\d{1,2}):(\d{1,2})\W*([AaPp][Mm])?/gm))[0]; 1682 if (timeParts[3]) { // 12 hour format 1683 var isPM = timeParts[3].toLowerCase() === 'pm'; 1684 if (isPM) { 1685 hour = parseInt(timeParts[1]) === 12 ? '12' : `${parseInt(timeParts[1]) + 12}`; 1686 } else { 1687 hour = parseInt(timeParts[1]) === 12 ? '0' : timeParts[1]; 1688 } 1689 } else { // 24 hour format 1690 hour = timeParts[1]; 1691 } 1692 var normalizedHour = parseInt(hour) < 10 ? `0${parseInt(hour)}` : hour; 1693 var minutes = timeParts[2]; 1694 return `${normalizedHour}:${minutes}`; 1695 }; 1696 1697 for (var i = 0; i < allInputs.length; i++) { 1698 var regexStr = "field\\[(\\d+)\\]"; 1699 var results = new RegExp(regexStr).exec(allInputs[i].name); 1700 if (results != undefined) { 1701 allInputs[i].dataset.name = allInputs[i].name.match(/\[time\]$/) 1702 ? `${window.cfields[results[1]]}_time` 1703 : window.cfields[results[1]]; 1704 } else { 1705 allInputs[i].dataset.name = allInputs[i].name; 1706 } 1707 var fieldVal = getUrlParam(allInputs[i].dataset.name); 1708 1709 if (fieldVal) {
1710 if (allInputs[i].dataset.autofill === "false") { 1711 continue; 1712 } 1713 if (allInputs[i].type == "radio" || allInputs[i].type == "checkbox") { 1714 if (allInputs[i].value == fieldVal) { 1715 allInputs[i].checked = true; 1716 } 1717 } else if (allInputs[i].type == "date") { 1718 allInputs[i].value = getNormalizedDate(fieldVal, acctDateFormat); 1719 } else if (allInputs[i].type == "time") { 1720 allInputs[i].value = getNormalizedTime(fieldVal); 1721 } else { 1722 allInputs[i].value = fieldVal; 1723 } 1724 } 1725 } 1726 1727 var remove_tooltips = function() { 1728 for (var i = 0; i < tooltips.length; i++) { 1729 tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); 1730 } 1731 tooltips = []; 1732 }; 1733 var remove_tooltip = function(elem) { 1734 for (var i = 0; i < tooltips.length; i++) { 1735 if (tooltips[i].elem === elem) { 1736 tooltips[i].tip.parentNode.removeChild(tooltips[i].tip); 1737 tooltips.splice(i, 1); 1738 return; 1739 } 1740 } 1741 }; 1742 var create_tooltip = function(elem, text) { 1743 var tooltip = document.createElement('div'), 1744 arrow = document.createElement('div'), 1745 inner = document.createElement('div'), new_tooltip = {}; 1746 if (elem.type != 'radio' && elem.type != 'checkbox') { 1747 tooltip.className = '_error'; 1748 arrow.className = '_error-arrow'; 1749 inner.className = '_error-inner'; 1750 inner.innerHTML = text; 1751 tooltip.appendChild(arrow); 1752 tooltip.appendChild(inner); 1753 elem.parentNode.appendChild(tooltip); 1754 } else { 1755 tooltip.className = '_error-inner _no_arrow'; 1756 tooltip.innerHTML = text; 1757 elem.parentNode.insertBefore(tooltip, elem); 1758 new_tooltip.no_arrow = true; 1759 } 1760 new_tooltip.tip = tooltip; 1761 new_tooltip.elem = elem; 1762 tooltips.push(new_tooltip); 1763 return new_tooltip; 1764 }; 1765 var resize_tooltip = function(tooltip) { 1766 var rect = tooltip.elem.getBoundingClientRect(); 1767 var doc = document.documentElement, 1768 scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)); 1769 if (scrollPosition < 40) { 1770 tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below'; 1771 } else { 1772 tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above'; 1773 } 1774 }; 1775 var resize_tooltips = function() { 1776 if (_removed) return; 1777 for (var i = 0; i < tooltips.length; i++) { 1778 if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]); 1779 } 1780 }; 1781 var validate_field = function(elem, remove) { 1782 var tooltip = null, value = elem.value, no_error = true; 1783 remove ? remove_tooltip(elem) : false; 1784 if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, ''); 1785 if (elem.getAttribute('required') !== null) { 1786 if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) { 1787 var elems = form_to_submit.elements[elem.name]; 1788 if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) { 1789 no_error = elem.checked; 1790 } 1791 else { 1792 no_error = false; 1793 for (var i = 0; i < elems.length; i++) { 1794 if (elems[i].checked) no_error = true; 1795 } 1796 } 1797 if (!no_error) { 1798 tooltip = create_tooltip(elem, "Please select an option."); 1799 } 1800 } else if (elem.type =='checkbox') { 1801 var elems = form_to_submit.elements[elem.name], found = false, err = []; 1802 no_error = true; 1803 for (var i = 0; i < elems.length; i++) { 1804 if (elems[i].getAttribute('required') === null) continue; 1805 if (!found && elems[i] !== elem) return true; 1806 found = true; 1807 elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, ''); 1808 if (!elems[i].checked) { 1809 no_error = false;
1810 elems[i].className = elems[i].className + ' _has_error'; 1811 err.push("Checking %s is required".replace("%s", elems[i].value)); 1812 } 1813 } 1814 if (!no_error) { 1815 tooltip = create_tooltip(elem, err.join('<br/>')); 1816 } 1817 } else if (elem.tagName == 'SELECT') { 1818 var selected = true; 1819 if (elem.multiple) { 1820 selected = false; 1821 for (var i = 0; i < elem.options.length; i++) { 1822 if (elem.options[i].selected) { 1823 selected = true; 1824 break; 1825 } 1826 } 1827 } else { 1828 for (var i = 0; i < elem.options.length; i++) { 1829 if (elem.options[i].selected 1830 && (!elem.options[i].value 1831 || (elem.options[i].value.match(/\n/g))) 1832 ) { 1833 selected = false; 1834 } 1835 } 1836 } 1837 if (!selected) { 1838 elem.className = elem.className + ' _has_error'; 1839 no_error = false; 1840 tooltip = create_tooltip(elem, "Please select an option."); 1841 } 1842 } else if (value === undefined || value === null || value === '') { 1843 elem.className = elem.className + ' _has_error'; 1844 no_error = false; 1845 tooltip = create_tooltip(elem, "This field is required."); 1846 } 1847 } 1848 if (no_error && (elem.id == 'field[]' || elem.id == 'ca[11][v]')) { 1849 if (elem.className.includes('phone-input-error')) { 1850 elem.className = elem.className + ' _has_error'; 1851 no_error = false; 1852 } 1853 } 1854 if (no_error && elem.name == 'email') { 1855 if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) { 1856 elem.className = elem.className + ' _has_error'; 1857 no_error = false; 1858 tooltip = create_tooltip(elem, "Enter a valid email address."); 1859 } 1860 } 1861 if (no_error && /date_field/.test(elem.className)) { 1862 if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) { 1863 elem.className = elem.className + ' _has_error'; 1864 no_error = false; 1865 tooltip = create_tooltip(elem, "Enter a valid date."); 1866 } 1867 } 1868 tooltip ? resize_tooltip(tooltip) : false; 1869 return no_error; 1870 }; 1871 var needs_validate = function(el) { 1872 if(el.getAttribute('required') !== null){ 1873 return true 1874 } 1875 if(el.name === 'email' && el.value !== ""){ 1876 return true 1877 } 1878 1879 if((el.id == 'field[]' || el.id == 'ca[11][v]') && el.className.includes('phone-input-error')){ 1880 return true 1881 } 1882 1883 return false 1884 }; 1885 var validate_form = function(e) { 1886 var err = form_to_submit.querySelector('._form_error'), no_error = true; 1887 if (!submitted) { 1888 submitted = true; 1889 for (var i = 0, len = allInputs.length; i < len; i++) { 1890 var input = allInputs[i]; 1891 if (needs_validate(input)) { 1892 if (input.type == 'tel') { 1893 addEvent(input, 'blur', function() { 1894 this.value = this.value.trim(); 1895 validate_field(this, true); 1896 }); 1897 } 1898 if (input.type == 'text' || input.type == 'number' || input.type == 'time') { 1899 addEvent(input, 'blur', function() { 1900 this.value = this.value.trim(); 1901 validate_field(this, true); 1902 }); 1903 addEvent(input, 'input', function() { 1904 validate_field(this, true); 1905 }); 1906 } else if (input.type == 'radio' || input.type == 'checkbox') { 1907 (function(el) { 1908 var radios = form_to_submit.elements[el.name]; 1909 for (var i = 0; i < radios.length; i++) { 1910 addEvent(radios[i], 'click', function() { 1911 validate_field(el, true); 1912 }); 1913 } 1914 })(input); 1915 } else if (input.tagName == 'SELECT') { 1916 addEvent(input, 'change', function() { 1917 validate_field(this, true); 1918 }); 1919 } else if (input.type == 'textarea'){ 1920 addEvent(input, 'input', function() { 1921 validate_field(this, true); 1922 }); 1923 } 1924 } 1925 } 1926 } 1927 remove_tooltips(); 1928 for (var i = 0, len = allInputs.length; i < len; i++) { 1929 var elem = allInputs[i]; 1930 if (needs_validate(elem)) { 1931 if (elem.tagName.toLowerCase() !== "select") { 1932 elem.value = elem.value.trim(); 1933 } 1934 validate_field(elem) ? true : no_error = false;
1935 } 1936 } 1937 if (!no_error && e) { 1938 e.preventDefault(); 1939 } 1940 resize_tooltips(); 1941 return no_error; 1942 }; 1943 addEvent(window, 'resize', resize_tooltips); 1944 addEvent(window, 'scroll', resize_tooltips); 1945 1946 var hidePhoneInputError = function(inputId) { 1947 var errorMessage = document.getElementById("error-msg-" + inputId); 1948 var input = document.getElementById(inputId); 1949 errorMessage.classList.remove("phone-error"); 1950 errorMessage.classList.add("phone-error-hidden"); 1951 input.classList.remove("phone-input-error"); 1952 }; 1953 1954 var initializePhoneInput = function(input, defaultCountry) { 1955 return window.intlTelInput(input, { 1956 utilsScript: "https://unpkg.com/[email protected]/build/js/utils.js", 1957 autoHideDialCode: false, 1958 separateDialCode: true, 1959 initialCountry: defaultCountry, 1960 preferredCountries: [] 1961 }); 1962 } 1963 1964 var setPhoneInputEventListeners = function(inputId, input, iti) { 1965 input.addEventListener('blur', function() { 1966 var errorMessage = document.getElementById("error-msg-" + inputId); 1967 if (input.value.trim()) { 1968 if (iti.isValidNumber()) { 1969 iti.setNumber(iti.getNumber()); 1970 if (errorMessage.classList.contains("phone-error")){ 1971 hidePhoneInputError(inputId); 1972 } 1973 } else { 1974 showPhoneInputError(inputId) 1975 } 1976 } else { 1977 if (errorMessage.classList.contains("phone-error")){ 1978 hidePhoneInputError(inputId); 1979 } 1980 } 1981 }); 1982 1983 input.addEventListener("countrychange", function() { 1984 iti.setNumber(''); 1985 }); 1986 1987 input.addEventListener("keydown", function(e) { 1988 var charCode = (e.which) ? e.which : e.keyCode; 1989 if (charCode > 31 && (charCode < 48 || charCode >
1989 57) && charCode !== 8) { 1990 e.preventDefault(); 1991 } 1992 }); 1993 }; 1994 1995 var showPhoneInputError = function(inputId) { 1996 var errorMessage = document.getElementById("error-msg-" + inputId); 1997 var input = document.getElementById(inputId); 1998 errorMessage.classList.add("phone-error"); 1999 errorMessage.classList.remove("phone-error-hidden"); 2000 input.classList.add("phone-input-error"); 2001 }; 2002 2003 2004 window['recaptcha_callback'] = function() { 2005 // Get all recaptchas in the DOM (there may be more than one form on the page). 2006 var recaptchas = document.getElementsByClassName("g-recaptcha"); 2007 for (var i in recaptchas) { 2008 // Set the recaptcha element ID, so the recaptcha can be applied to each element. 2009 var recaptcha_id = "recaptcha_" + i; 2010 recaptchas[i].id = recaptcha_id; 2011 var el = document.getElementById(recaptcha_id); 2012 if (el != null) { 2013 var sitekey = el.getAttribute("data-sitekey"); 2014 var stoken = el.getAttribute("data-stoken"); 2015 grecaptcha.render(recaptcha_id, {"sitekey":sitekey,"stoken":stoken}); 2016 } 2017 } 2018}; _load_script( 2019 "https://www.google.com/recaptcha/api.js?onload=recaptcha_callback&render=explicit" 2020 ); 2021 var _form_serialize = function(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"tel":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(" ")+encodeURIComponent(form.elements[i].value));break;case"text":case"number":case"date":case"time":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")}; 2022 2023 const formSupportsPost = false; 2024 var form_submit = function(e) { 2025 2026 e.preventDefault(); 2027 if (validate_form()) { 2028 // use this trick to get the submit button & disable it using plain
2028javascript 2029 var submitButton = e.target.querySelector('#_form_17_submit'); 2030 submitButton.disabled = true; 2031 submitButton.classList.add('processing'); 2032 var serialized = _form_serialize( 2033 document.getElementById('_form_17_') 2034 ).replace(/%0A/g, '\\n'); 2035 var err = form_to_submit.querySelector('._form_error'); 2036 err ? err.parentNode.removeChild(err) : false; 2037 async function submitForm() { 2038 var formData = new FormData(); 2039 const searchParams = new URLSearchParams(serialized); 2040 searchParams.forEach((value, key) => { 2041 if (key !== 'hideButton') { 2042 formData.append(key, value); 2043 } 2044 //formData.append(key, value); 2045 }); 2046 let request = { 2047 headers: { 2048 "Accept": "application/json" 2049 }, 2050 body: formData, 2051 method: "POST" 2052 }; 2053 2054 let pageUrlParams = new URLSearchParams(window.location.search); 2055 if (pageUrlParams.has('t')) { 2056 request.headers.Authorization = 'Bearer ' + pageUrlParams.get('t'); 2057 } 2058 const response = await fetch('https://royallepage40684.activehosted.com/proc.php?jsonp=true', request); 2059 return response.json(); 2060 } 2061 if (formSupportsPost) { 2062 submitForm().then((data) => { 2063 eval(data.js); 2064 }); 2065 } else { 2066 _load_script('https://royallepage40684.activehosted.com/proc.php?' + serialized + '&jsonp=true', null, true); 2067 } 2068 } 2069 return false; 2070 }; 2071 addEvent(form_to_submit, 'submit', form_submit); 2072})(); 2073 2074</script>
2074 </div> 2075 </div> 2076 2077 2078 </div> 2079 </div> 2080 <div class="sidebar__section"> 2081 <div id="site-sidebar" class="widget widget-site-sidebar"><form role="search" method="get" action="https://royallepageleadingedge.ca/" class="wp-block-search__button-inside wp-block-search__icon-button wp-block-search" ><label class="wp-block-search__label screen-reader-text" for="wp-block-search__input-2" >Search</label><div class="wp-block-search__inside-wrapper" ><input class="wp-block-search__input" id="wp-block-search__input-2" placeholder="Search" value="" type="search" name="s" required /><button aria-label="" class="wp-block-search__button has-icon wp-element-button" type="submit" ><svg class="search-icon" viewBox="0 0 24 24" width="24" height="24"> 2082 <path d="M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path> 2083 </svg></button></div></form></div> </div> 2084 <div class="sidebar__section sidebar__section--sticky"> 2085 <h2 class="sidebar__heading heading">Browse by Topic</h2> 2086 <nav class="sidebar__menu utility-nav"><ul id="menu-browse-by-topic-1" class="menu"><li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15886"><a href="https://royallepageleadingedge.ca/category/success-stories/">Success Stories</a></li> 2087<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-17997"><a href="https://royallepageleadingedge.ca/category/coachs-inbox/">Coach’s Inbox</a></li> 2088<li class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-15887"><a href="https://royallepageleadingedge.ca/category/market-updates/" aria-current="page">Market Updates</a></li> 2089<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15883"><a href="https://royallepageleadingedge.ca/category/innovative-tech/">Innovative Tech</a></li> 2090<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-24208"><a href="https://royallepageleadingedge.ca/category/next-chapter/">Next Chapter</a></li> 2091<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-24011"><a href="https://royallepageleadingedge.ca/category/franchise-support/">Franchise Support</a></li> 2092<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15884"><a href="https://royallepageleadingedge.ca/category/giving-back/">Giving Back</a></li> 2093<li class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-15885"><a href="https://royallepageleadingedge.ca/category/trusted-partners/">Trusted Partners</a></li> 2094</ul></nav> </div> 2095</div> 2096 </div> 2097 2098 <div class="body-container__content"> 2099 <h1 class="heading has-extra-large-font-size"><span class="visuallyhidden">Category: </span><span>Market Updates</span></h1> 2100 <div class="post-tiles"> 2101 <div class="post-list"> 2102 <div class="post-tile"> 2103 <a href="https://royallepageleadingedge.ca/newcomers-say-owning-a-home-strengthens-their-sense-of-belonging-in-canada-but-saving-for-one-remains-a-barrier/" class="post-tile__title-link has-large-font-size">Newcomers say owning a home strengthens their sense of belonging in Canada, but saving for one remains a barrier</a> 2104 <div class="post-tile__featured-image"> 2105 <a href="https://royallepageleadingedge.ca/newcomers-say-owning-a-home-strengthens-their-sense-of-belonging-in-canada-but-saving-for-one-remains-a-barrier/" class="post-tile__featured-image-link"><img width="300" height="169" src="https://royallepageleadingedge.ca/wp-content/uploads/2026/09/CBlogPost-2026-Canada-Newcomers-EN-300x169.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://royallepageleadingedge.ca/wp-content/uploads/2026/09/CBlogPost-2026-Canada-Newcomers-EN-300x169.jpg 300w, https://royallepageleadingedge.ca/wp-content/uploads/2026/09/CBlogPost-2026-Canada-Newcomers-EN-768x432.jpg 768w, https://royallepageleadingedge.ca/wp-content/uploads/2026/09/CBlogPost-2026-Canada-Newcomers-EN-1024x576-1.jpg 1024w, https://royallepageleadingedge.ca/wp-content/uploads/2026/09/CBlogPost-2026-Canada-Newcomers-EN-622x350.jpg 622w, https://royallepageleadingedge.ca/wp-content/uploads/2026/09/CBlogPost-2026-Canada-Newcomers-EN.jpg 1200w" sizes="(max-width: 300px) 100v
2105w, 300px" /></a> 2106 </div> 2107 <div class="post-tile__excerpt has-normal-font-size">The Royal LePage 2026 Canadian Newcomers Survey explores newcomersâ paths to home ownership in Canada.</div> 2108 <div class="post-tile__categories"> 2109 <div class="post-tile__category"> 2110 <a href="https://royallepageleadingedge.ca/category/market-updates/" class="post-tile__category-link">Market Updates</a> 2111 </div> 2112 </div> 2113 <div class="post-tile__footer"> 2114 <div class="post-tile__author-image"> 2115 <img width="150" height="150" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/01/rlp-Anne-Elise-Cugliari-Allegritti-profilepic-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" /> </div> 2116 <div class="post-tile__details has-medium-small-font-size"> 2117 <div class="post-tile__author-name">Anne-Elise Cugliari Allegritti</div> 2118 <span class="post-tile__date">September 24, 2026</span> 2119 <span class="post-tile__divider">â¢</span> 2120 <span class="post-tile__word-count">3 min. read</span> 2121 </div> 2122 </div> 2123 </div> 2124 <div class="post-tile"> 2125 <a href="https://royallepageleadingedge.ca/as-pandemic-era-mortgages-renew-one-third-of-canadian-borrowers-are-anxious-about-new-payments/" class="post-tile__title-link has-large-font-size">As pandemic-era mortgages renew, one third of Canadian borrowers are anxious about new payments</a> 2126 <div class="post-tile__featured-image"> 2127 <a href="https://royallepageleadingedge.ca/as-pandemic-era-mortgages-renew-one-third-of-canadian-borrowers-are-anxious-about-new-payments/" class="post-tile__featured-image-link"><img width="300" height="169" src="https://royallepageleadingedge.ca/wp-content/uploads/2026/08/LEBlog-Jason-2026-Mortgage-Renewals-EN-300x169.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" srcset="https://royallepageleadingedge.ca/wp-content/uploads/2026/08/LEBlog-Jason-2026-Mortgage-Renewals-EN-300x169.jpg 300w, https://royallepageleadingedge.ca/wp-content/uploads/2026/08/LEBlog-Jason-2026-Mortgage-Renewals-EN-1024x576.jpg 1024w, https://royallepageleadingedge.ca/wp-content/uploads/2026/08/LEBlog-Jason-2026-Mortgage-Renewals-EN-768x432.jpg 768w, https://royallepageleadingedge.ca/wp-content/uploads/2026/08/LEBlog-Jason-2026-Mortgage-Renewals-EN.jpg 1200w" sizes="(max-width: 300px) 100vw, 300px" /></a> 2128 </div> 2129 <div class="post-tile__excerpt has-normal-font-size">The Royal LePage 2026 Mortgage Renewal Survey explores Canadian mortgage holders' plans for their upcoming renewals. </div> 2130 <div class="post-tile__categories"> 2131 <div class="post-tile__category"> 2132 <a href="https://royallepageleadingedge.ca/category/market-updates/" class="post-tile__category-link">Market Updates</a> 2133 </div> 2134 </div> 2135 <div class="post-tile__footer"> 2136 <div class="post-tile__author-image"> 2137 <img width="150" height="150" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/01/rlp-Anne-Elise-Cugliari-Allegritti-profilepic-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" /> </div> 2138 <div class="post-tile__details has-medium-small-font-size"> 2139 <div class="post-tile__author-name">Anne-Elise Cugliari Allegritti</div> 2140 <span class="post-tile__date">August 19, 2026</span> 2141 <span class="post-tile__divider">â¢</span> 2142 <span class="post-tile__word-count">2 min. read</span> 2143 </div> 2144 </div> 2145 </div> 2146 <div class="post-tile"> 2147 <a href="https://royallepageleadingedge.ca/better-late-than-never-canadas-delayed-spring-housing-market-could-set-the-stage-for-a-more-active-second-half-of-the-year/" class="post-tile__title-link has-large-font-size">Better late than never: Canadaâs delayed spring housing market could set the stage for a more active second half of the year</a> 2148 <div class="post-tile__featured-image"> 2149 <a href="https://royallepageleadingedge.ca/better-late-than-never-canadas-delayed-spring-housing-market-could-set-the-stage-for-a-more-active-second-half-of-the-year/" class="post-tile__featured-image-link"><img width="300" height="169" src="https://royallepageleadingedge.ca/wp-content/uploads/2026/07/LEBlog-Jason-2026-HPS-Q2-Nat-EN-300x169.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://royallepageleadingedge.ca/wp-content/uploads/2026/07/LEBlog-Jason-2026-HPS-Q2-Nat-EN-300x169.jpg 300w, https://royallepageleadingedge.ca/wp-content/uploads/2026/07/LEBlog-Jason-2026-HPS-Q2-Nat-EN-1024x576.jpg 1024w, https://royallepageleadingedge.ca/wp-content/uploads/2026/07/LEBlog-Jason-2026-HPS-Q2-Nat-EN-768x432.jpg 768w, https://royallepageleadingedge.ca/wp-content/uploads/2026/07/LEBlog-Jason-2026-HPS-Q2-Nat-EN.jpg 1200w" sizes="auto, (max-width: 300px) 100v
2149w, 300px" /></a> 2150 </div> 2151 <div class="post-tile__categories"> 2152 <div class="post-tile__category"> 2153 <a href="https://royallepageleadingedge.ca/category/market-updates/" class="post-tile__category-link">Market Updates</a> 2154 </div> 2155 </div> 2156 <div class="post-tile__footer"> 2157 <div class="post-tile__author-image"> 2158 <img width="150" height="150" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/01/rlp-Anne-Elise-Cugliari-Allegritti-profilepic-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" /> </div> 2159 <div class="post-tile__details has-medium-small-font-size"> 2160 <div class="post-tile__author-name">Anne-Elise Cugliari Allegritti</div> 2161 <span class="post-tile__date">July 14, 2026</span> 2162 <span class="post-tile__divider">â¢</span> 2163 <span class="post-tile__word-count">2 min. read</span> 2164 </div> 2165 </div> 2166 </div> 2167 <div class="post-tile"> 2168 <a href="https://royallepageleadingedge.ca/despite-improved-housing-affordability-in-canadas-most-expensive-markets-half-of-big-city-dwellers-are-still-considering-relocation/" class="post-tile__title-link has-large-font-size">Despite improved housing affordability in Canadaâs most expensive markets, half of big-city dwellers are still considering relocation</a> 2169 <div class="post-tile__featured-image"> 2170 <a href="https://royallepageleadingedge.ca/despite-improved-housing-affordability-in-canadas-most-expensive-markets-half-of-big-city-dwellers-are-still-considering-relocation/" class="post-tile__featured-image-link"><img width="300" height="169" src="https://royallepageleadingedge.ca/wp-content/uploads/2026/06/LEBlog-Jason-2026-Affordable-Cities-300x169.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://royallepageleadingedge.ca/wp-content/uploads/2026/06/LEBlog-Jason-2026-Affordable-Cities-300x169.jpg 300w, https://royallepageleadingedge.ca/wp-content/uploads/2026/06/LEBlog-Jason-2026-Affordable-Cities-1024x576.jpg 1024w, https://royallepageleadingedge.ca/wp-content/uploads/2026/06/LEBlog-Jason-2026-Affordable-Cities-768x432.jpg 768w, https://royallepageleadingedge.ca/wp-content/uploads/2026/06/LEBlog-Jason-2026-Affordable-Cities.jpg 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> 2171 </div> 2172 <div class="post-tile__excerpt has-normal-font-size">The Royal LePage 2026 Most Affordable Canadian Cities Report examines how housing affordability is shaping Canadiansâ decisions about relocation and where they would consider living.</div> 2173 <div class="post-tile__categories"> 2174 <div class="post-tile__category"> 2175 <a href="https://royallepageleadingedge.ca/category/market-updates/" class="post-tile__category-link">Market Updates</a> 2176 </div> 2177 </div> 2178 <div class="post-tile__footer"> 2179 <div class="post-tile__author-image"> 2180 <img width="150" height="150" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/01/rlp-Anne-Elise-Cugliari-Allegritti-profilepic-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" /> </div> 2181 <div class="post-tile__details has-medium-small-font-size"> 2182 <div class="post-tile__author-name">Anne-Elise Cugliari Allegritti</div> 2183 <span class="post-tile__date">June 23, 2026</span> 2184 <span class="post-tile__divider">â¢</span> 2185 <span class="post-tile__word-count">3 min. read</span> 2186 </div> 2187 </div> 2188 </div> 2189 <div class="post-tile"> 2190 <a href="https://royallepageleadingedge.ca/rings-versus-real-estate-canadians-are-downsizing-their-wedding-dreams-to-get-on-the-property-ladder/" class="post-tile__title-link has-large-font-size">Rings versus Real Estate: Canadians are downsizing their wedding dreams to get on the property ladder</a> 2191 <div class="post-tile__featured-image"> 2192 <a href="https://royallepageleadingedge.ca/rings-versus-real-estate-canadians-are-downsizing-their-wedding-dreams-to-get-on-the-property-ladder/" class="post-tile__featured-image-link"><img width="300" height="169" src="https://royallepageleadingedge.ca/wp-content/uploads/2026/05/LEBlog-2026-Wedding-Survey-300x169.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://royallepageleadingedge.ca/wp-content/uploads/2026/05/LEBlog-2026-Wedding-Survey-300x169.jpg 300w, https://royallepageleadingedge.ca/wp-content/uploads/2026/05/LEBlog-2026-Wedding-Survey-1024x576.jpg 1024w, https://royallepageleadingedge.ca/wp-content/uploads/2026/05/LEBlog-2026-Wedding-Survey-768x432.jpg 768w, https://royallepageleadingedge.ca/wp-content/uploads/2026/05/LEBlog-2026-Wedding-Survey.jpg 1200w" sizes="auto, (max-width: 300px) 100v
2192w, 300px" /></a> 2193 </div> 2194 <div class="post-tile__excerpt has-normal-font-size">The Royal LePage 2026 Survey: Rings vs Real Estate includes insights into how housing affordability is influencing wedding and home-buying decisions for couples across Canada.</div> 2195 <div class="post-tile__categories"> 2196 <div class="post-tile__category"> 2197 <a href="https://royallepageleadingedge.ca/category/market-updates/" class="post-tile__category-link">Market Updates</a> 2198 </div> 2199 </div> 2200 <div class="post-tile__footer"> 2201 <div class="post-tile__author-image"> 2202 <img width="150" height="150" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/01/rlp-Anne-Elise-Cugliari-Allegritti-profilepic-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" /> </div> 2203 <div class="post-tile__details has-medium-small-font-size"> 2204 <div class="post-tile__author-name">Anne-Elise Cugliari Allegritti</div> 2205 <span class="post-tile__date">May 21, 2026</span> 2206 <span class="post-tile__divider">â¢</span> 2207 <span class="post-tile__word-count">3 min. read</span> 2208 </div> 2209 </div> 2210 </div> 2211 <div class="post-tile"> 2212 <a href="https://royallepageleadingedge.ca/long-winter-and-economic-uncertainty-delay-canadas-spring-housing-market/" class="post-tile__title-link has-large-font-size">Long winter and economic uncertainty delay Canadaâs spring housing market</a> 2213 <div class="post-tile__featured-image"> 2214 <a href="https://royallepageleadingedge.ca/long-winter-and-economic-uncertainty-delay-canadas-spring-housing-market/" class="post-tile__featured-image-link"><img width="300" height="169" src="https://royallepageleadingedge.ca/wp-content/uploads/2026/04/LEBlog-HPS-Q1-2026-EN-300x169.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://royallepageleadingedge.ca/wp-content/uploads/2026/04/LEBlog-HPS-Q1-2026-EN-300x169.jpg 300w, https://royallepageleadingedge.ca/wp-content/uploads/2026/04/LEBlog-HPS-Q1-2026-EN-1024x576.jpg 1024w, https://royallepageleadingedge.ca/wp-content/uploads/2026/04/LEBlog-HPS-Q1-2026-EN-768x432.jpg 768w, https://royallepageleadingedge.ca/wp-content/uploads/2026/04/LEBlog-HPS-Q1-2026-EN.jpg 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> 2215 </div> 2216 <div class="post-tile__excerpt has-normal-font-size">The Royal LePage Home Price Update and Market Forecast includes price data and insights for 65 real estate markets across the country.</div> 2217 <div class="post-tile__categories"> 2218 <div class="post-tile__category"> 2219 <a href="https://royallepageleadingedge.ca/category/market-updates/" class="post-tile__category-link">Market Updates</a> 2220 </div> 2221 </div> 2222 <div class="post-tile__footer"> 2223 <div class="post-tile__author-image"> 2224 <img width="150" height="150" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/01/rlp-Anne-Elise-Cugliari-Allegritti-profilepic-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" /> </div> 2225 <div class="post-tile__details has-medium-small-font-size"> 2226 <div class="post-tile__author-name">Anne-Elise Cugliari Allegritti</div> 2227 <span class="post-tile__date">April 16, 2026</span> 2228 <span class="post-tile__divider">â¢</span> 2229 <span class="post-tile__word-count">2 min. read</span> 2230 </div> 2231 </div> 2232 </div> 2233 <div class="post-tile"> 2234 <a href="https://royallepageleadingedge.ca/canadians-appetite-for-recreational-real-estate-remains-strong-despite-economic-uncertainty-and-return-to-office-mandates/" class="post-tile__title-link has-large-font-size">Canadiansâ appetite for recreational real estate remains strong, despite economic uncertainty and return-to-office mandates</a> 2235 <div class="post-tile__featured-image"> 2236 <a href="https://royallepageleadingedge.ca/canadians-appetite-for-recreational-real-estate-remains-strong-despite-economic-uncertainty-and-return-to-office-mandates/" class="post-tile__featured-image-link"><img width="300" height="169" src="https://royallepageleadingedge.ca/wp-content/uploads/2026/03/LEBlog-2026-Spring-Rec-EN-300x169.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://royallepageleadingedge.ca/wp-content/uploads/2026/03/LEBlog-2026-Spring-Rec-EN-300x169.jpg 300w, https://royallepageleadingedge.ca/wp-content/uploads/2026/03/LEBlog-2026-Spring-Rec-EN-1024x576.jpg 1024w, https://royallepageleadingedge.ca/wp-content/uploads/2026/03/LEBlog-2026-Spring-Rec-EN-768x432.jpg 768w, https://royallepageleadingedge.ca/wp-content/uploads/2026/03/LEBlog-2026-Spring-Rec-EN.jpg 1200w" sizes="auto, (max-width: 300px) 100v
2236w, 300px" /></a> 2237 </div> 2238 <div class="post-tile__excerpt has-normal-font-size">The Royal LePage 2026 Spring Recreational Property Report includes national and regional price data and insights from experts in 50 recreational real estate markets across the country.</div> 2239 <div class="post-tile__categories"> 2240 <div class="post-tile__category"> 2241 <a href="https://royallepageleadingedge.ca/category/market-updates/" class="post-tile__category-link">Market Updates</a> 2242 </div> 2243 </div> 2244 <div class="post-tile__footer"> 2245 <div class="post-tile__author-image"> 2246 <img width="150" height="150" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/01/rlp-Anne-Elise-Cugliari-Allegritti-profilepic-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" /> </div> 2247 <div class="post-tile__details has-medium-small-font-size"> 2248 <div class="post-tile__author-name">Anne-Elise Cugliari Allegritti</div> 2249 <span class="post-tile__date">March 26, 2026</span> 2250 <span class="post-tile__divider">â¢</span> 2251 <span class="post-tile__word-count">2 min. read</span> 2252 </div> 2253 </div> 2254 </div> 2255 <div class="post-tile"> 2256 <a href="https://royallepageleadingedge.ca/widespread-return-to-office-mandates-expected-to-spur-tight-commercial-market-conditions-in-major-canadian-cities/" class="post-tile__title-link has-large-font-size">Widespread return-to-office mandates expected to spur tight commercial market conditions in major Canadian cities</a> 2257 <div class="post-tile__featured-image"> 2258 <a href="https://royallepageleadingedge.ca/widespread-return-to-office-mandates-expected-to-spur-tight-commercial-market-conditions-in-major-canadian-cities/" class="post-tile__featured-image-link"><img width="300" height="169" src="https://royallepageleadingedge.ca/wp-content/uploads/2026/02/LEBlog-Commercial-Report-2026-300x169.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://royallepageleadingedge.ca/wp-content/uploads/2026/02/LEBlog-Commercial-Report-2026-300x169.jpg 300w, https://royallepageleadingedge.ca/wp-content/uploads/2026/02/LEBlog-Commercial-Report-2026-1024x576.jpg 1024w, https://royallepageleadingedge.ca/wp-content/uploads/2026/02/LEBlog-Commercial-Report-2026-768x432.jpg 768w, https://royallepageleadingedge.ca/wp-content/uploads/2026/02/LEBlog-Commercial-Report-2026.jpg 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> 2259 </div> 2260 <div class="post-tile__excerpt has-normal-font-size">The 2026 Royal LePage Commercial Real Estate Report includes insights into the industrial and office commercial real estate sectors in major urban centres within Canada. </div> 2261 <div class="post-tile__categories"> 2262 <div class="post-tile__category"> 2263 <a href="https://royallepageleadingedge.ca/category/commercial/" class="post-tile__category-link">Commercial</a> 2264 </div> 2265 <div class="post-tile__category"> 2266 <a href="https://royallepageleadingedge.ca/category/market-updates/" class="post-tile__category-link">Market Updates</a> 2267 </div> 2268 </div> 2269 <div class="post-tile__footer"> 2270 <div class="post-tile__author-image"> 2271 <img width="150" height="150" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/01/rlp-Anne-Elise-Cugliari-Allegritti-profilepic-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" /> </div> 2272 <div class="post-tile__details has-medium-small-font-size"> 2273 <div class="post-tile__author-name">Anne-Elise Cugliari Allegritti</div> 2274 <span class="post-tile__date">February 26, 2026</span> 2275 <span class="post-tile__divider">â¢</span> 2276 <span class="post-tile__word-count">2 min. read</span> 2277 </div> 2278 </div> 2279 </div> 2280 <div class="post-tile"> 2281 <a href="https://royallepageleadingedge.ca/momentum-expected-to-return-to-canadas-housing-market-this-spring-tempered-by-economic-anxiety-and-cautious-buyers/" class="post-tile__title-link has-large-font-size">Momentum expected to return to Canadaâs housing market this spring, tempered by economic anxiety and cautious buyers</a> 2282 <div class="post-tile__featured-image">
2283 <a href="https://royallepageleadingedge.ca/momentum-expected-to-return-to-canadas-housing-market-this-spring-tempered-by-economic-anxiety-and-cautious-buyers/" class="post-tile__featured-image-link"><img width="300" height="169" src="https://royallepageleadingedge.ca/wp-content/uploads/2026/01/LEBlog-Q4-2025-EN-300x169.jpg" class="attachment-medium size-medium wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://royallepageleadingedge.ca/wp-content/uploads/2026/01/LEBlog-Q4-2025-EN-300x169.jpg 300w, https://royallepageleadingedge.ca/wp-content/uploads/2026/01/LEBlog-Q4-2025-EN-1024x576.jpg 1024w, https://royallepageleadingedge.ca/wp-content/uploads/2026/01/LEBlog-Q4-2025-EN-768x432.jpg 768w, https://royallepageleadingedge.ca/wp-content/uploads/2026/01/LEBlog-Q4-2025-EN.jpg 1200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a> 2284 </div> 2285 <div class="post-tile__excerpt has-normal-font-size">The Canadian real estate market closed out 2025 with a modest decline in housing prices, reflecting lingering consumer hesitation amid ongoing economic uncertainty.</div> 2286 <div class="post-tile__categories"> 2287 <div class="post-tile__category"> 2288 <a href="https://royallepageleadingedge.ca/category/market-updates/" class="post-tile__category-link">Market Updates</a> 2289 </div> 2290 </div> 2291 <div class="post-tile__footer"> 2292 <div class="post-tile__author-image"> 2293 <img width="150" height="150" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/01/rlp-Anne-Elise-Cugliari-Allegritti-profilepic-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" decoding="async" loading="lazy" /> </div> 2294 <div class="post-tile__details has-medium-small-font-size"> 2295 <div class="post-tile__author-name">Anne-Elise Cugliari Allegritti</div> 2296 <span class="post-tile__date">January 19, 2026</span> 2297 <span class="post-tile__divider">â¢</span> 2298 <span class="post-tile__word-count">3 min. read</span> 2299 </div> 2300 </div> 2301 </div> 2302 </div> 2303 </div><!-- .post-tiles --> 2304 <div class="paginate-links"> 2305 <span aria-current="page" class="page-numbers current">1</span> 2306<a class="page-numbers" href="https://royallepageleadingedge.ca/category/market-updates/page/2/">2</a> 2307<a class="page-numbers" href="https://royallepageleadingedge.ca/category/market-updates/page/3/">3</a> 2308<span class="page-numbers dots">…</span> 2309<a class="page-numbers" href="https://royallepageleadingedge.ca/category/market-updates/page/9/">9</a> 2310<a class="next page-numbers" href="https://royallepageleadingedge.ca/category/market-updates/page/2/"><span class="visuallyhidden">Next</span><svg width="12" height="14" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7.42 13.44"><path fill="none" stroke="#000" stroke-miterlimit="10" d="m.35 13.08 6.36-6.36L.35.35"/></svg></a> </div><!-- .paginate-links --> 2311 </div> 2312</div> 2313 2314 2315</main><!-- #main --> 2316</div><!-- #content --> 2317<footer class="site-footer" role="contentinfo" style="background-image: url(https://royallepageleadingedge.ca/wp-content/uploads/2022/01/footer-bg.svg);"> 2318 <div class="site-footer__container alignwide"> 2319 <div class="site-footer__row"> 2320 <div class="site-footer__logo"><a href="https://royallepageleadingedge.ca/" class="custom-logo-link" rel="home"><img width="300" height="110" src="https://royallepageleadingedge.ca/wp-content/uploads/2024/02/RLP-R-logo-full-colour-box-RGB-300px.png" class="custom-logo" alt="Royal LePage Leading Edge Blog" decoding="async" /></a></div> 2321 <nav class="site-footer__menu footer-nav"><ul id="menu-footer-menu" class="menu"><li id="menu-item-17995" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17995"><a target="_blank" href="https://www.royallepage.ca/joinus">Join Royal LePage</a></li> 2322<li id="menu-item-17996" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-17996"><a target="_blank" href="https://blog.royallepage.ca/">Consumer Blog</a></li> 2323<li id="menu-item-18346" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-18346"><a target="_blank" href="https://royallepage.ca">royallepage.ca</a></li> 2324</ul></nav>
2324 <div class="site-footer__column"> 2325 <div id="social-icons" class="widget widget-social-icons"> 2326<ul class="wp-block-social-links has-icon-color has-icon-background-color is-layout-flex wp-block-social-links-is-layout-flex"><li style="color:#FFFFFF;background-color:#E00034" class="wp-social-link wp-social-link-instagram has-white-color has-red-background-color wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.instagram.com/royal_lepage/#" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Instagram</span></a></li> 2327 2328<li style="color:#FFFFFF;background-color:#E00034" class="wp-social-link wp-social-link-linkedin has-white-color has-red-background-color wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/royal-lepage" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li> 2329 2330<li style="color:#FFFFFF;background-color:#E00034" class="wp-social-link wp-social-link-youtube has-white-color has-red-background-color wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/user/RoyalLePageCanada" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
2330<path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li> 2331 2332<li style="color:#FFFFFF;background-color:#E00034" class="wp-social-link wp-social-link-facebook has-white-color has-red-background-color wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/royallepage" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li></ul> 2333</div> </div> 2334 </div> 2335 <div class="site-footer__row"> 2336 <div class="site-footer__utility-nav"> 2337 <div class="site-footer__heading-container"> 2338 <h2 class="site-footer__heading">Browse by Topic</h2> 2339 </div> 2340 <nav class="site-footer__menu utility-nav"><ul id="menu-footer-browse-by-topic" class="menu"><li id="menu-item-18338" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18338"><a href="https://royallepageleadingedge.ca/category/innovative-tech/">Innovative Tech</a></li> 2341<li id="menu-item-18340" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-18340"><a href="https://royallepageleadingedge.ca/category/market-updates/" aria-current="page">Market Updates</a></li> 2342<li id="menu-item-18339" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18339"><a href="https://royallepageleadingedge.ca/category/success-stories/">Success Stories</a></li> 2343<li id="menu-item-18341" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18341"><a href="https://royallepageleadingedge.ca/category/giving-back/">Giving Back</a></li> 2344<li id="menu-item-24209" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-24209"><a href="https://royallepageleadingedge.ca/category/next-chapter/">Next Chapter</a></li> 2345<li id="menu-item-18345" class="menu-item menu-item-type-post_type menu-item-object-page current_page_parent menu-item-18345"><a href="https://royallepageleadingedge.ca/archive/">View All Articles</a></li> 2346<li id="menu-item-18344" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18344"><a href="https://royallepageleadingedge.ca/category/coachs-inbox/">Coach’s Inbox</a></li> 2347<li id="menu-item-18343" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-18343"><a href="https://royallepageleadingedge.ca/category/trusted-partners/">Trusted Partners</a></li> 2348</ul></nav> </div> 2349 <div class="site-footer__column"> 2350 <div class="site-footer__heading-container"> 2351 <h2 class="site-footer__heading">Contact Us</h2> 2352 </div> 2353 <a class="site-footer__link" href="mailto:[email protected]">[email protected]</a> 2354 </div> 2355 </div> 2356 <div class="site-footer__copyright"> 2357 <div id="site-footer" class="widget widget-site-footer"> 2358<p class="has-text-align-center has-small-font-size wp-block-paragraph">Royal LePage® is a registered trademark of Royal Bank of Canada and is used under licence by <a href="https://www.bridgemarq.com/">Bridgemarq Real Estate Services®</a>. Any copying, reproduction, distribution, or other use of these materials is prohibited. View important disclosures and notices about trademarks at <a href="http://rlp.ca/notices" target="_blank" rel="noreferrer noopener">rlp.ca/notices</a>.</p> 2359</div><div id="site-footer" class="widget widget-site-footer"> 2360<p class="has-text-align-center has-small-font-size wp-block-paragraph">©2026 Bridgemarq Real Estate Services®. All rights reserved.</p> 2361</div><div id="site-footer" class="widget widget-site-footer"> 2362<p class="wp-block-paragraph"></p> 2363</div><div id="site-footer" class="widget widget-site-footer"> 2364<p class="has-text-align-center has-small-font-size wp-block-paragraph"><a href="https://www.royallepage.ca/en/realestate/legal-notice/" target="_blank" rel="noreferrer noopener">Terms of Use</a> | <a href="https://www.royallepage.ca/en/realestate/privacy-policy/" target="_blank" rel="noreferrer noopener">Privacy Policy</a> | <a href="https://www.royallepage.ca/en/realestate/cookie-policy/" target="_blank" rel="noreferrer noopener">Cookie Policy</a></p> 2365</div> </div> 2366 </div> 2367</footer>
2368<script type="speculationrules"> 2369{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/royallepageleadingedge/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 2370</script>
vendor: 1 bytes, line 2370
2370
2371<script id="nua-scripts-js-before"> 2372const nua_env = {"rest_url":"https:\/\/royallepageleadingedge.ca\/wp-json\/","base_url":"https:\/\/royallepageleadingedge.ca","base_path":"\/","nonce":"47e4bef1b7","site_name":"Royal LePage Leading Edge Blog","site_url":"https:\/\/royallepageleadingedge.ca","current_user":{"data":{},"ID":0,"caps":[],"cap_key":null,"roles":[],"allcaps":[],"filter":null}} 2373//# sourceURL=nua-scripts-js-before 2374</script>
vendor: 1 bytes, line 2374
2374
2375<script id="nua-scripts-js" src="https://royallepageleadingedge.ca/wp-content/themes/royallepageleadingedge/scripts/build/main.js?ver=7.1.2"></script>
vendor: 1 bytes, line 2375
2375
2376<script id="ob-signature-js" src="//officebureau.ca/ob.signature.min.js?ver=1.0.0"></script>
vendor: 1 bytes, line 2376
2376
2377<script id="wp-emoji-settings" type="application/json"> 2378{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://royallepageleadingedge.ca/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 2379</script>
vendor: 1 bytes, line 2379
2379
2380<script type="module"> 2381/*! This file is auto-generated */ 2382var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 2383//# sourceURL=https://royallepageleadingedge.ca/wp-includes/js/wp-emoji-loader.min.js 2384</script>
2384 2385</body> 2386 2387</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.