{"id":2552,"date":"2026-09-24T16:56:54","date_gmt":"2026-09-24T20:56:54","guid":{"rendered":"https:\/\/raissian.ca\/?page_id=2552"},"modified":"2026-10-22T16:32:23","modified_gmt":"2026-10-22T20:32:23","slug":"home","status":"publish","type":"page","link":"https:\/\/raissian.ca\/fr\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2552\" class=\"elementor elementor-2552\">\n\t\t\t\t<div class=\"elementor-element elementor-element-138e816 e-con e-atomic-element e-flexbox-base e-default-div e-102680b \" data-id=\"138e816\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"138e816\">\n    \t\t<div class=\"elementor-element elementor-element-f7bb1c4 elementor-widget elementor-widget-html\" data-id=\"f7bb1c4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"raissian-intro\">\r\n\r\n    <div class=\"raissian-intro-logo\">\r\n        <img decoding=\"async\" \r\n            src=\"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/08\/cropped-Raissian-LOGO-text-white-1.png\"\r\n            alt=\"Raissian\"\r\n        >\r\n    <\/div>\r\n\r\n    <div class=\"raissian-intro-line\"><\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<style>\r\n\r\n#raissian-intro {\r\n\r\n    position: fixed;\r\n    inset: 0;\r\n\r\n    width: 100%;\r\n    height: 100vh;\r\n    height: 100dvh;\r\n\r\n    \/* LIGHT WEBSITE BACKGROUND *\/\r\n    background: #F7F5F0;\r\n\r\n    z-index: 999999;\r\n\r\n    overflow: hidden;\r\n\r\n    pointer-events: all;\r\n\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   LOGO\r\n   ========================================== *\/\r\n\r\n.raissian-intro-logo {\r\n\r\n    position: absolute;\r\n\r\n    left: 50%;\r\n    top: 50%;\r\n\r\n    width: 300px;\r\n\r\n    transform:\r\n        translate(-50%, -50%)\r\n        scale(0.92);\r\n\r\n    opacity: 0;\r\n\r\n    animation:\r\n        raissian-logo-appear 0.6s ease forwards,\r\n        raissian-logo-move 1s cubic-bezier(0.65, 0, 0.35, 1) forwards;\r\n\r\n    animation-delay:\r\n        0.2s,\r\n        1s;\r\n\r\n    z-index: 3;\r\n\r\n}\r\n\r\n\r\n.raissian-intro-logo img {\r\n\r\n    display: block;\r\n\r\n    width: 100%;\r\n\r\n    height: auto;\r\n\r\n    \/*\r\n     * Converts the WHITE logo into\r\n     * Raissian's warm orange.\r\n     *\/\r\n    filter:\r\n        brightness(0)\r\n        saturate(100%)\r\n        invert(48%)\r\n        sepia(42%)\r\n        saturate(1050%)\r\n        hue-rotate(347deg)\r\n        brightness(91%)\r\n        contrast(89%);\r\n\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   LINE\r\n   ========================================== *\/\r\n\r\n.raissian-intro-line {\r\n\r\n    position: absolute;\r\n\r\n    left: 50%;\r\n\r\n    top: calc(50% + 78px);\r\n\r\n    width: 0;\r\n\r\n    height: 1px;\r\n\r\n    \/* RAISSIAN ORANGE *\/\r\n    background: #C96A32;\r\n\r\n    opacity: 0;\r\n\r\n    transform: translateX(-50%);\r\n\r\n    z-index: 2;\r\n\r\n    animation:\r\n        raissian-line-appear 0.4s ease forwards,\r\n        raissian-line-expand 0.9s cubic-bezier(0.65, 0, 0.35, 1) forwards;\r\n\r\n    animation-delay:\r\n        0.5s,\r\n        0.8s;\r\n\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   LOGO APPEAR\r\n   ========================================== *\/\r\n\r\n@keyframes raissian-logo-appear {\r\n\r\n    0% {\r\n\r\n        opacity: 0;\r\n\r\n        transform:\r\n            translate(-50%, -50%)\r\n            scale(0.92);\r\n\r\n    }\r\n\r\n    100% {\r\n\r\n        opacity: 1;\r\n\r\n        transform:\r\n            translate(-50%, -50%)\r\n            scale(1);\r\n\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   LOGO \u2192 HEADER\r\n   ========================================== *\/\r\n\r\n@keyframes raissian-logo-move {\r\n\r\n    0% {\r\n\r\n        left: 50%;\r\n        top: 50%;\r\n\r\n        opacity: 1;\r\n\r\n        transform:\r\n            translate(-50%, -50%)\r\n            scale(1);\r\n\r\n    }\r\n\r\n    75% {\r\n\r\n        opacity: 1;\r\n\r\n    }\r\n\r\n    100% {\r\n\r\n        left: 150px;\r\n        top: -20px;\r\n\r\n        opacity: 0;\r\n\r\n        transform:\r\n            translate(0, 0)\r\n            scale(0.5);\r\n\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   LINE APPEAR\r\n   ========================================== *\/\r\n\r\n@keyframes raissian-line-appear {\r\n\r\n    0% {\r\n\r\n        width: 0;\r\n        opacity: 0;\r\n\r\n    }\r\n\r\n    100% {\r\n\r\n        width: 220px;\r\n        opacity: 1;\r\n\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   LINE EXPAND\r\n   ========================================== *\/\r\n\r\n@keyframes raissian-line-expand {\r\n\r\n    0% {\r\n\r\n        left: 50%;\r\n\r\n        width: 220px;\r\n\r\n        opacity: 1;\r\n\r\n        transform: translateX(-50%);\r\n\r\n    }\r\n\r\n    100% {\r\n\r\n        left: 0;\r\n\r\n        width: 100vw;\r\n\r\n        opacity: 0;\r\n\r\n        transform: translateX(0);\r\n\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   MOBILE\r\n   ========================================== *\/\r\n\r\n@media (max-width: 767px) {\r\n\r\n    .raissian-intro-logo {\r\n\r\n        width: 190px;\r\n\r\n    }\r\n\r\n    .raissian-intro-line {\r\n\r\n        top: calc(50% + 52px);\r\n\r\n    }\r\n\r\n\r\n    @keyframes raissian-logo-move {\r\n\r\n        0% {\r\n\r\n            left: 50%;\r\n            top: 50%;\r\n\r\n            opacity: 1;\r\n\r\n            transform:\r\n                translate(-50%, -50%)\r\n                scale(1);\r\n\r\n        }\r\n\r\n        75% {\r\n\r\n            opacity: 1;\r\n\r\n        }\r\n\r\n        100% {\r\n\r\n            left: 60px;\r\n            top: -10px;\r\n\r\n            opacity: 0;\r\n\r\n            transform:\r\n                translate(0, 0)\r\n                scale(0.6);\r\n\r\n        }\r\n\r\n    }\r\n\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   REDUCED MOTION\r\n   ========================================== *\/\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n\r\n    #raissian-intro {\r\n\r\n        display: none;\r\n\r\n    }\r\n\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n<script>\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n\r\n    const intro = document.getElementById(\"raissian-intro\");\r\n\r\n    if (!intro) return;\r\n\r\n\r\n    \/*\r\n     * Temporarily prevent scrolling\r\n     *\/\r\n\r\n    document.body.style.overflow = \"hidden\";\r\n\r\n\r\n    \/*\r\n     * Fade out the light intro background\r\n     * before the logo completely finishes.\r\n     *\/\r\n\r\n    setTimeout(function () {\r\n\r\n        intro.style.transition = \"opacity 0.7s ease\";\r\n\r\n        intro.style.opacity = \"0\";\r\n\r\n        intro.style.pointerEvents = \"none\";\r\n\r\n        document.body.style.overflow = \"\";\r\n\r\n    }, 1750);\r\n\r\n\r\n    \/*\r\n     * Completely remove the intro\r\n     *\/\r\n\r\n    setTimeout(function () {\r\n\r\n        intro.remove();\r\n\r\n        document.dispatchEvent(\r\n            new Event(\"raissianIntroFinished\")\r\n        );\r\n\r\n    }, 2850);\r\n\r\n});\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-97ff19d e-con-full e-flex e-con e-parent\" data-id=\"97ff19d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-1f0146f e-con-full e-flex e-con e-child\" data-id=\"1f0146f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-0df2db0 e-con-full e-flex e-con e-child\" data-id=\"0df2db0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7753509 animated-slow elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"7753509\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:3700}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">.<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e738a3b elementor-widget elementor-widget-heading\" data-id=\"e738a3b\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"raissian-name\" data-settings=\"{&quot;_animation&quot;:&quot;none&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Ehsan \nRaissianzadeh<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e03af7c elementor-widget__width-initial elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"e03af7c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_animation_delay&quot;:3700}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Residential Real Estate<br class=\"rm-role-br\" \/>Broker \u00b7 B.Arch<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-dd5855a e-con-full e-flex e-con e-child\" data-id=\"dd5855a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-d93a129 e-con-full e-flex e-con e-child\" data-id=\"d93a129\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9b2c4e1 elementor-widget elementor-widget-html\" data-id=\"9b2c4e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* ---------- skyline stage: full hero on desktop, a centred 75% band on phones ---------- *\/\n.elementor-element-1f0146f > .raissian-sky-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}\n@media (max-width:767px){\n  .elementor-element-1f0146f{min-height:calc(88.9vw + 195px)!important;padding-bottom:68px!important}\n  .elementor-element-1f0146f > .raissian-sky-stage{top:130px;bottom:auto;height:auto;aspect-ratio:9\/8;transform:none}\n  \/* half the gap between the hero and the Buy \/ Sell section *\/\n  .elementor-element-8da3cd0{margin-top:15px!important}\n  \/* name: dark navy with a soft cream halo, readable on sky, clouds and plain background *\/\n  #raissian-name .elementor-heading-title{color:#212D45!important;text-shadow:0 0 16px rgba(247,245,240,.95),0 0 3px rgba(247,245,240,.9)!important}\n  \/* role: navy, medium weight, two lines, soft halo *\/\n  .elementor-element-e03af7c .rm-role-br{display:inline}\n  .elementor-element-e03af7c p{color:#212D45!important;font-weight:500;font-size:15.5px;line-height:1.4;letter-spacing:.03em;text-shadow:0 0 14px rgba(247,245,240,.95),0 0 3px rgba(247,245,240,.85)}\n}\n.rm-role-br{display:none}\n@media (min-width:768px){.elementor-element-8da3cd0{margin-top:-45px}}\n\n\/* ---------- the rest of the page rises in after you start scrolling ---------- *\/\nhtml.rm-below-on .elementor-element-8da3cd0:not(.rm-in),\nhtml.rm-below-on .elementor-element-d9ad84e:not(.rm-in){opacity:0;transform:translate3d(0,90px,0);will-change:opacity,transform}\nhtml.rm-below-on .elementor-element-8da3cd0.rm-in,\nhtml.rm-below-on .elementor-element-d9ad84e.rm-in{opacity:1;transform:none;transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1)}\n\n\/* ---------- hero timing: everything 25% quicker ---------- *\/\n.elementor-element-7753509.animated-slow{animation-duration:1.5s!important}\n.elementor-element-e03af7c.animated{animation-duration:.75s!important}\n\/* ---------- booking button: arrives as the orange circle it later becomes, then opens into the pill ---------- *\/\n.elementor-element-e2682ba a.elementor-button{--rm-r:0px;position:relative;animation:rmBtnOpen 1.5s cubic-bezier(.22,1,.36,1) 4.1s backwards}\n.elementor-element-e2682ba a.elementor-button::before{content:\"\";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;background:url(\"data:image\/svg+xml;utf8,<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23F7F5F0' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='3.5' y='5' width='17' height='15' rx='2'\/><path d='M3.5 10h17M8 3v4M16 3v4'\/><\/svg>\") center\/contain no-repeat;opacity:0;pointer-events:none;animation:rmBtnIcon 1.5s ease 4.1s backwards}\n.elementor-element-e2682ba .elementor-button-text{animation:rmBtnText 1.5s ease 4.1s backwards}\n@keyframes rmBtnOpen{0%{opacity:0;transform:scale(.6);clip-path:inset(0 calc(50% - 22px) 0 calc(50% - 22px) round 999px);background-color:#C96A32}30%,40%{opacity:1;transform:scale(1);clip-path:inset(0 calc(50% - 22px) 0 calc(50% - 22px) round 999px);background-color:#C96A32}100%{opacity:1;transform:scale(1);clip-path:inset(0 0 0 0 round var(--rm-r));background-color:rgba(248,181,38,.77)}}\n@keyframes rmBtnIcon{0%{opacity:0}20%,40%{opacity:1}62%,100%{opacity:0}}\n@keyframes rmBtnText{0%,48%{opacity:0}100%{opacity:1}}\n@media (max-width:767px){.elementor-element-e2682ba a.elementor-button{--rm-r:100px}}\n@media (prefers-reduced-motion:reduce){.elementor-element-e2682ba a.elementor-button,.elementor-element-e2682ba a.elementor-button::before,.elementor-element-e2682ba .elementor-button-text{animation:none}}\n<\/style>\n<script>\n(function(){\n  \/* leave the Elementor editor alone *\/\n  if(document.body&&document.body.classList.contains('elementor-editor-active')){return;}\n\n  \/* 1. skyline stage (the script skyline-bg.js animates it) *\/\n  var s=document.currentScript,c=s&&s.closest('.elementor-element-1f0146f');\n  if(c&&!c.querySelector(':scope > .raissian-sky-stage')){\n    var st=document.createElement('div');\n    st.className='raissian-sky-stage';\n    st.setAttribute('data-skyline-bg','');\n    st.setAttribute('data-src','https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Pastel-Watercolor-Cityscape-with-Bridge-and-Boats.png');\n    c.insertBefore(st,c.firstChild);\n  }\n\n  \/* 2. reveal everything below the hero once you have scrolled ~45% of the hero *\/\n  var root=document.documentElement,done=false;\n  if(window.matchMedia&&matchMedia('(prefers-reduced-motion: reduce)').matches){return;}\n  root.classList.add('rm-below-on');\n  function hero(){return document.querySelector('.elementor-element-97ff19d')||document.querySelector('.elementor-element-1f0146f');}\n  function limit(){var h=hero(),H=h?h.offsetHeight:0;return (H||window.innerHeight)*0.45;}\n  function reveal(){\n    if(done){return;} done=true; window.__rmBelowRevealed=true;\n    window.removeEventListener('scroll',check);window.removeEventListener('resize',check);\n    var list=document.querySelectorAll('.elementor-element-8da3cd0,.elementor-element-d9ad84e');\n    [].forEach.call(list,function(el,i){setTimeout(function(){el.classList.add('rm-in');},i*160);});\n    document.dispatchEvent(new Event('raissianBelowRevealed'));\n  }\n  function check(){if((window.pageYOffset||root.scrollTop)>=limit()){reveal();}}\n  window.addEventListener('scroll',check,{passive:true});\n  window.addEventListener('resize',check);\n  window.addEventListener('hashchange',reveal);\n  document.addEventListener('DOMContentLoaded',function(){\n    if(location.hash){reveal();return;}\n    check();\n  });\n  window.addEventListener('load',function(){\n    \/* a page too short to scroll must never keep its content hidden *\/\n    if(root.scrollHeight<=window.innerHeight+limit()){reveal();} else {check();}\n  });\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8da3cd0 e-flex e-con-boxed e-con e-parent\" data-id=\"8da3cd0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-bdeed5b e-con-full e-flex e-con e-child\" data-id=\"bdeed5b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b790929 elementor-widget elementor-widget-html\" data-id=\"b790929\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n  <title>Category carousel<\/title>\r\n<\/head>\r\n<body>\r\n<div id=\"raissian-carousel\" class=\"raissian-carousel\" tabindex=\"0\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Property categories\">\r\n  <div class=\"rc-title-viewport\">\r\n    <div class=\"rc-title-track\" data-rc-title-track><\/div>\r\n  <\/div>\r\n  <div class=\"rc-content-viewport\">\r\n    <div class=\"rc-content-track\" data-rc-content-track><\/div>\r\n  <\/div>\r\n  <button type=\"button\" class=\"rc-desktop-arrow rc-desktop-arrow-left\" aria-label=\"Previous category\">&lt;<\/button>\r\n  <button type=\"button\" class=\"rc-desktop-arrow rc-desktop-arrow-right\" aria-label=\"Next category\">&gt;<\/button>\r\n<\/div>\r\n\r\n<style>\r\n  #raissian-carousel {\r\n    --rc-slide-w: 74.074%;\r\n    --rc-title-w: 33.333%;\r\n    --rc-ink: #111111;\r\n    --rc-muted: #8a8a8a;\r\n    display: block;\r\n    width: 100%;\r\n    max-width: 100%;\r\n    margin: 0;\r\n    padding: 28px 0 36px;\r\n    overflow: hidden;\r\n    font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n    color: var(--rc-ink);\r\n    -webkit-font-smoothing: antialiased;\r\n    -webkit-tap-highlight-color: transparent;\r\n    outline: none;\r\n    touch-action: pan-y;\r\n    user-select: none;\r\n    position: relative;\r\n  }\r\n\r\n  #raissian-carousel *,\r\n  #raissian-carousel *::before,\r\n  #raissian-carousel *::after {\r\n    box-sizing: border-box;\r\n  }\r\n\r\n  #raissian-carousel .rc-title-viewport,\r\n  #raissian-carousel .rc-content-viewport {\r\n    position: relative;\r\n    width: 100%;\r\n    overflow: hidden;\r\n  }\r\n\r\n  #raissian-carousel .rc-title-viewport {\r\n    margin-bottom: 18px;\r\n    -webkit-mask-image: linear-gradient(\r\n      to right,\r\n      rgba(0, 0, 0, 0.28) 0%,\r\n      #000 28%,\r\n      #000 72%,\r\n      rgba(0, 0, 0, 0.28) 100%\r\n    );\r\n    mask-image: linear-gradient(\r\n      to right,\r\n      rgba(0, 0, 0, 0.28) 0%,\r\n      #000 28%,\r\n      #000 72%,\r\n      rgba(0, 0, 0, 0.28) 100%\r\n    );\r\n  }\r\n\r\n  #raissian-carousel .rc-content-viewport {\r\n    -webkit-mask-image: linear-gradient(\r\n      to right,\r\n      rgba(0, 0, 0, 0.22) 0%,\r\n      #000 12%,\r\n      #000 88%,\r\n      rgba(0, 0, 0, 0.22) 100%\r\n    );\r\n    mask-image: linear-gradient(\r\n      to right,\r\n      rgba(0, 0, 0, 0.22) 0%,\r\n      #000 12%,\r\n      #000 88%,\r\n      rgba(0, 0, 0, 0.22) 100%\r\n    );\r\n  }\r\n\r\n  #raissian-carousel .rc-title-track,\r\n  #raissian-carousel .rc-content-track {\r\n    display: flex;\r\n    flex-wrap: nowrap;\r\n    align-items: stretch;\r\n    gap: 0;\r\n    margin: 0;\r\n    padding: 0;\r\n    width: max-content;\r\n    transform: translate3d(0, 0, 0);\r\n  }\r\n\r\n  #raissian-carousel .rc-title {\r\n    flex: 0 0 var(--rc-title-w);\r\n    width: var(--rc-title-w);\r\n    margin: 0;\r\n    padding: 8px 8px;\r\n    border: 0;\r\n    background: transparent;\r\n    color: var(--rc-muted);\r\n    font-size: clamp(0.95rem, 3.4vw, 1.35rem);\r\n    font-weight: 500;\r\n    letter-spacing: 0.22em;\r\n    line-height: 1.2;\r\n    text-align: center;\r\n    text-transform: uppercase;\r\n    opacity: 0.55;\r\n    cursor: pointer;\r\n    appearance: none;\r\n    -webkit-appearance: none;\r\n  }\r\n\r\n  #raissian-carousel .rc-title.is-active {\r\n    color: var(--rc-ink);\r\n    font-weight: 600;\r\n    opacity: 1;\r\n  }\r\n\r\n  #raissian-carousel .rc-slide {\r\n    flex: 0 0 var(--rc-slide-w);\r\n    width: var(--rc-slide-w);\r\n    margin: 0;\r\n    padding: 0;\r\n    display: flex;\r\n    flex-direction: column;\r\n    align-items: center;\r\n    text-align: center;\r\n  }\r\n\r\n  #raissian-carousel .rc-subtitle {\r\n    margin: 0 18px 16px;\r\n    padding: 0;\r\n    max-width: 28rem;\r\n    color: var(--rc-ink);\r\n    font-size: clamp(0.92rem, 2.4vw, 1.08rem);\r\n    font-weight: 400;\r\n    letter-spacing: 0.01em;\r\n    line-height: 1.45;\r\n  }\r\n\r\n  #raissian-carousel .rc-image-wrap {\r\n    width: 100%;\r\n    aspect-ratio: var(--rc-ar, 3 \/ 4);\r\n    margin: 0;\r\n    padding: 0;\r\n    background: transparent;\r\n    overflow: hidden;\r\n  }\r\n\r\n  #raissian-carousel .carousel-image {\r\n    display: block;\r\n    width: 100%;\r\n    height: 100%;\r\n    object-fit: contain;\r\n    object-position: center;\r\n    background: transparent;\r\n    border: 0;\r\n    pointer-events: none;\r\n  }\r\n#raissian-carousel .rc-option.is-active {\r\n    border-bottom-color: #111111;\r\n    border-bottom-width: 1.2px;\r\n}\r\n  #raissian-carousel .rc-options {\r\n    display: grid;\r\n    grid-template-columns: 1fr 1fr;\r\n    gap: 10px 14px;\r\n    width: calc(100% - 36px);\r\n    max-width: 22rem;\r\n    margin: 18px 18px 14px;\r\n    padding: 0;\r\n  }\r\n\r\n  #raissian-carousel .rc-option {\r\n    margin: 0;\r\n    padding: 8px 4px;\r\n    border: 0;\r\n    border-bottom: 1px solid rgba(17, 17, 17, 0.18);\r\n    background: transparent;\r\n    color: var(--rc-ink);\r\n    font-family: inherit;\r\n    font-size: 0.82rem;\r\n    font-weight: 500;\r\n    letter-spacing: 0.04em;\r\n    line-height: 1.3;\r\n    text-align: center;\r\n    cursor: pointer;\r\n    appearance: none;\r\n    -webkit-appearance: none;\r\n  }\r\n\r\n  #raissian-carousel .rc-option:focus-visible,\r\n  #raissian-carousel .rc-title:focus-visible,\r\n  #raissian-carousel .rc-link:focus-visible {\r\n    outline: 2px solid var(--rc-ink);\r\n    outline-offset: 3px;\r\n  }\r\n\r\n  #raissian-carousel .rc-link {\r\n    margin: 4px 18px 0;\r\n    padding: 8px 0 0;\r\n    color: var(--rc-ink);\r\n    font-size: 0.82rem;\r\n    font-weight: 500;\r\n    letter-spacing: 0.08em;\r\n    text-decoration: none;\r\n    text-transform: none;\r\n  }\r\n\r\n  #raissian-carousel .rc-link:hover {\r\n    text-decoration: underline;\r\n  }\r\n\r\n  #raissian-carousel:focus-visible {\r\n    outline: 2px solid var(--rc-ink);\r\n    outline-offset: 6px;\r\n  }\r\n\r\n  \/* Desktop-only minimal navigation arrows *\/\r\n  #raissian-carousel {\r\n    position: relative;\r\n  }\r\n\r\n  #raissian-carousel .rc-desktop-arrow {\r\n    display: none;\r\n  }\r\n\r\n  @media (min-width: 768px) {\r\n    #raissian-carousel .rc-desktop-arrow {\r\n      display: flex;\r\n      position: absolute;\r\n      top: 50%;\r\n      z-index: 10;\r\n      width: 32px;\r\n      height: 48px;\r\n      margin: 0;\r\n      padding: 0;\r\n      border: 0;\r\n      background: transparent;\r\n      color: var(--rc-ink);\r\n      align-items: center;\r\n      justify-content: center;\r\n      font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n      font-size: 25px;\r\n      font-weight: 200;\r\n      line-height: 1;\r\n      opacity: 0.42;\r\n      cursor: pointer;\r\n      transform: translateY(-50%);\r\n      transition: opacity 0.2s ease;\r\n    }\r\n\r\n    #raissian-carousel .rc-desktop-arrow:hover {\r\n      opacity: 0.9;\r\n    }\r\n\r\n    #raissian-carousel .rc-desktop-arrow-left {\r\n      left: 12px;\r\n    }\r\n\r\n    #raissian-carousel .rc-desktop-arrow-right {\r\n      right: 12px;\r\n    }\r\n  }\r\n\r\n  \/* Desktop-only navigation arrows *\/\r\n  #raissian-carousel .rc-desktop-arrow {\r\n    display: none;\r\n  }\r\n\r\n  @media (min-width: 768px) {\r\n    #raissian-carousel .rc-desktop-arrow {\r\n      display: flex;\r\n      position: absolute;\r\n      top: 50%;\r\n      z-index: 20;\r\n      width: 42px;\r\n      height: 42px;\r\n      margin: 0;\r\n      padding: 0;\r\n      align-items: center;\r\n      justify-content: center;\r\n      border: 1px solid rgba(17, 17, 17, 0.32);\r\n      border-radius: 2px;\r\n      background: rgba(255, 255, 255, 0.72);\r\n      color: #111111;\r\n      font-family: Arial, Helvetica, sans-serif;\r\n      font-size: 25px;\r\n      font-weight: 300;\r\n      line-height: 1;\r\n      opacity: 0.88;\r\n      cursor: pointer;\r\n      transform: translateY(-50%);\r\n      transition: background 0.2s ease, border-color 0.2s ease,\r\n                  opacity 0.2s ease, transform 0.2s ease;\r\n    }\r\n\r\n    #raissian-carousel .rc-desktop-arrow:hover {\r\n      opacity: 1;\r\n      border-color: rgba(17, 17, 17, 0.65);\r\n      background: rgba(255, 255, 255, 0.96);\r\n    }\r\n\r\n    #raissian-carousel .rc-desktop-arrow:active {\r\n      transform: translateY(-50%) scale(0.94);\r\n    }\r\n\r\n    #raissian-carousel .rc-desktop-arrow-left {\r\n      left: 18px;\r\n    }\r\n\r\n    #raissian-carousel .rc-desktop-arrow-right {\r\n      right: 18px;\r\n    }\r\n  }\r\n\r\n\r\n\/* Mobile: remove the carousel's reserved bottom padding while the detail panel is closed.\r\n   Restore the original spacing as soon as the detail panel opens. *\/\r\n@media (max-width: 767px) {\r\n  body:has(#raissian-detail:not(.active)) #raissian-carousel {\r\n    padding-bottom: 0 !important;\r\n  }\r\n\r\n  body:has(#raissian-detail.active) #raissian-carousel {\r\n    padding-bottom: 36px !important;\r\n  }\r\n}\r\n\r\n\/* Panorama: one picture shared by the four slides, shown in full. The titles sit lower on its top; the buttons only slightly overlap its bottom. *\/\r\n#raissian-carousel { --rc-ar: 3 \/ 4; }\r\n#raissian-carousel .rc-pano { display: block; width: 100%; height: 100%; background-color: transparent; background-image: var(--rc-pano-url, none); background-repeat: no-repeat; background-size: 400% auto; background-position: calc(var(--rc-k, 0) * 100% \/ 3) 50%; opacity: 0; transition: opacity 0.9s ease; pointer-events: none; }\r\n#raissian-carousel.rc-pano-on .rc-pano { opacity: 1; }\r\n#raissian-carousel .rc-pano.rc-fb { background-size: contain; background-position: center; }\r\n#raissian-carousel .rc-image-wrap { position: relative; z-index: 1; margin: -22% 0 -24%; }\r\n#raissian-carousel .rc-subtitle { position: relative; z-index: 2; margin-bottom: 0; text-shadow: 0 0 10px rgba(247,245,240,.9), 0 0 3px rgba(247,245,240,.85); }\r\n#raissian-carousel .rc-options, #raissian-carousel .rc-link { position: relative; z-index: 2; text-shadow: 0 0 10px rgba(247,245,240,.9), 0 0 3px rgba(247,245,240,.85); }\r\n@media (min-width: 768px) { #raissian-carousel .rc-image-wrap { margin: -24% 0 -7%; } }\r\n<\/style>\r\n\r\n<script>\r\n(function () {\r\n  var root = document.getElementById(\"raissian-carousel\");\r\n  if (!root) return;\r\n\r\n  \/* ============================================================\r\n     REPLACE THESE FOUR VALUES WITH YOUR TRANSPARENT PNG URLS\r\n     Example: buy: \"https:\/\/your-site.com\/buy.png\"\r\n     Leave IMAGE_URL_* as-is to keep the built-in placeholders.\r\n     ============================================================ *\/\r\n  var IMAGE_URLS = {\r\n    buy: \"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/09\/Raissian-buy-real-estate.png\",\r\n    sell: \"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/09\/Raissian-sell-real-estate.png\",\r\n    invest: \"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/09\/Raissian-Invest-Real-estate.png\",\r\n    explore: \"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/09\/ChatGPT-Image-Sep-29-2026-10_13_24-AM.png\"\r\n  };\r\n\r\n  \/* The panoramic picture shared by the four slides. The first address is the new seamless, sharper version; if it is not uploaded yet, the next one is used. *\/\r\n  var PANORAMAS = [\r\n    \"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-services-panorama-home-page-v5-scaled.webp\",\r\n\r\n  ];\r\n\r\n  var CATEGORIES = [\r\n    {\r\n      key: \"buy\",\r\n      title: \"BUY\",\r\n      subtitle: \"Find a place that fits your life.\",\r\n      alt: \"Buy a home that fits your life\",\r\n      options: [\"Buy a Home\", \"Find What Fits\", \"Upgrade\", \"Downsize\"],\r\n      linkText: \"Explore buy \u2192\",\r\n      linkHref: \"\/contact-us\/?interest=buy#contact\"\r\n    },\r\n    {\r\n      key: \"sell\",\r\n      title: \"SELL\",\r\n      subtitle: \"Understand your options before you sell.\",\r\n      alt: \"Understand your options before you sell\",\r\n      options: [\"Sell My Home\", \"Sell My Condo\", \"Sell & Buy\", \"Home Value\"],\r\n      linkText: \"Explore Selling \u2192\",\r\n      linkHref: \"\/contact-us\/?interest=sell#contact\"\r\n    },\r\n    {\r\n      key: \"invest\",\r\n      title: \"INVEST\",\r\n      subtitle: \"Explore the potential behind a property.\",\r\n      alt: \"Explore the potential behind a property\",\r\n      options: [\"Rental Property\", \"Buy & Hold\", \"Renovate \/ Flip\", \"Evaluate\"],\r\n      linkText: \"Explore Investing \u2192\",\r\n      linkHref: \"\/contact-us\/?interest=invest#contact\"\r\n    },\r\n    {\r\n      key: \"explore\",\r\n      title: \"EXPLORE\",\r\n      subtitle: \"Discover places, ideas and possibilities.\",\r\n      alt: \"Discover places, ideas and possibilities\",\r\n      options: [\"Neighbourhoods\", \"Market\", \"Properties\", \"Insights\"],\r\n      linkText: \"Explore More \u2192\",\r\n      linkHref: \"\/neighbourhoods\/\"\r\n    }\r\n  ];\r\n  \/* Menu order follows the picture, starting at Buy: Buy, Sell, Explore, Invest. *\/\r\n  CATEGORIES = [CATEGORIES[0], CATEGORIES[1], CATEGORIES[3], CATEGORIES[2]];\r\n  var COUNT = CATEGORIES.length;\r\n  var COPIES = 3;\r\n  \/* Which quarter of the panorama each topic shows. 0 = first quarter for Buy. 1 moves the pictures one topic to the left (Explore now shows the first quarter). *\/\r\n  var PANO_QUARTER = { buy: 2, sell: 3, invest: 1, explore: 0 };\r\n  var titleTrack = root.querySelector(\"[data-rc-title-track]\");\r\n  var contentTrack = root.querySelector(\"[data-rc-content-track]\");\r\n  var titleViewport = root.querySelector(\".rc-title-viewport\");\r\n  var contentViewport = root.querySelector(\".rc-content-viewport\");\r\n  var EASE = \"transform 480ms cubic-bezier(0.22, 1, 0.36, 1)\";\r\n\r\n  var index = COUNT;\r\n  var containerWidth = 0;\r\n  var slideWidth = 0;\r\n  var titleWidth = 0;\r\n  var dragging = false;\r\n  var lock = null;\r\n  var startX = 0;\r\n  var startY = 0;\r\n  var lastX = 0;\r\n  var lastT = 0;\r\n  var velocity = 0;\r\n  var originIndex = 0;\r\n  var originContentX = 0;\r\n  var originTitleX = 0;\r\n  var dragOnTitles = false;\r\n  var suppressClick = false;\r\n\r\n  function placeholderSrc(label) {\r\n    var svg =\r\n      '<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"800\" height=\"600\" viewBox=\"0 0 800 600\">' +\r\n      '<text x=\"400\" y=\"308\" text-anchor=\"middle\" font-size=\"22\" fill=\"#b0b0b0\" font-family=\"Helvetica, Arial, sans-serif\" letter-spacing=\"6\">' +\r\n      label +\r\n      \"<\/text><\/svg>\";\r\n    return \"data:image\/svg+xml;charset=utf-8,\" + encodeURIComponent(svg);\r\n  }\r\n\r\n  function resolveImage(key, label) {\r\n    var url = IMAGE_URLS[key];\r\n    if (!url || url.indexOf(\"IMAGE_URL\") === 0) return placeholderSrc(label);\r\n    return url;\r\n  }\r\n\r\n  function build() {\r\n    var titles = [];\r\n    var slides = [];\r\n    var copy;\r\n    var i;\r\n    var cat;\r\n    var slide;\r\n    var opts;\r\n    var n;\r\n\r\n    for (copy = 0; copy < COPIES; copy += 1) {\r\n      for (i = 0; i < COUNT; i += 1) {\r\n        cat = CATEGORIES[i];\r\n        titles.push(\r\n          '<button type=\"button\" class=\"rc-title\" data-rc-i=\"' +\r\n            (copy * COUNT + i) +\r\n            '\" aria-label=\"' +\r\n            cat.title +\r\n            '\">' +\r\n            cat.title +\r\n            \"<\/button>\"\r\n        );\r\n\r\n       opts = \"\";\r\nfor (n = 0; n < cat.options.length; n += 1) {\r\n  opts +=\r\n    '<button type=\"button\" class=\"rc-option\">' +\r\n    cat.options[n] +\r\n    \"<\/button>\";\r\n}\r\n\r\n        slide =\r\n          '<article class=\"rc-slide\" data-rc-i=\"' +\r\n          (copy * COUNT + i) +\r\n          '\" aria-label=\"' +\r\n          cat.title +\r\n          '\">' +\r\n          '<p class=\"rc-subtitle\">' +\r\n          cat.subtitle +\r\n          \"<\/p>\" +\r\n          '<div class=\"rc-image-wrap\">' +\r\n          '<div class=\"rc-pano\" role=\"img\" aria-label=\"' +\r\n          cat.alt +\r\n          '\" style=\"--rc-k:' +\r\n         PANO_QUARTER[cat.key] +\r\n          '\" data-fb=\"' +\r\n          resolveImage(cat.key, cat.title) +\r\n          '\"><\/div>' +\r\n          \"<\/div>\" +\r\n          '<div class=\"rc-options\">' +\r\n          opts +\r\n          \"<\/div>\" +\r\n          '<a class=\"rc-link\" href=\"' +\r\n          cat.linkHref +\r\n          '\">' +\r\n          cat.linkText +\r\n          \"<\/a>\" +\r\n          \"<\/article>\";\r\n        slides.push(slide);\r\n      }\r\n    }\r\n\r\n    titleTrack.innerHTML = titles.join(\"\");\r\n    contentTrack.innerHTML = slides.join(\"\");\r\n  }\r\n\r\n  function contentX(i) {\r\n    return containerWidth \/ 2 - slideWidth \/ 2 - i * slideWidth;\r\n  }\r\n\r\n  function titleX(i) {\r\n    return containerWidth \/ 2 - titleWidth \/ 2 - i * titleWidth;\r\n  }\r\n\r\n  function setTracks(x, tx, animate) {\r\n    var transition = animate ? EASE : \"none\";\r\n    titleTrack.style.transition = transition;\r\n    contentTrack.style.transition = transition;\r\n    titleTrack.style.transform = \"translate3d(\" + tx + \"px,0,0)\";\r\n    contentTrack.style.transform = \"translate3d(\" + x + \"px,0,0)\";\r\n  }\r\n\r\n  function updateActive() {\r\n    var logical = ((index % COUNT) + COUNT) % COUNT;\r\n    var titles = titleTrack.children;\r\n    var slides = contentTrack.children;\r\n    var i;\r\n    var on;\r\n    for (i = 0; i < titles.length; i += 1) {\r\n      on = i % COUNT === logical;\r\n      titles[i].classList.toggle(\"is-active\", on);\r\n      titles[i].setAttribute(\"aria-current\", on ? \"true\" : \"false\");\r\n    }\r\n    for (i = 0; i < slides.length; i += 1) {\r\n      on = i % COUNT === logical;\r\n      slides[i].setAttribute(\"aria-hidden\", on ? \"false\" : \"true\");\r\n    }\r\n  }\r\n\r\n  function snapLoop() {\r\n    if (index >= COUNT && index < COUNT * 2) return;\r\n    index = ((index % COUNT) + COUNT) % COUNT + COUNT;\r\n    setTracks(contentX(index), titleX(index), false);\r\n  }\r\n\r\n  function goTo(next, animate) {\r\n    index = next;\r\n    if (animate) {\r\n      titleTrack.style.willChange = \"transform\";\r\n      contentTrack.style.willChange = \"transform\";\r\n    }\r\n    setTracks(contentX(index), titleX(index), animate);\r\n    updateActive();\r\n    if (!animate) {\r\n      snapLoop();\r\n      titleTrack.style.willChange = \"auto\";\r\n      contentTrack.style.willChange = \"auto\";\r\n    }\r\n  }\r\n\r\n  function measure() {\r\n    containerWidth = root.getBoundingClientRect().width;\r\n    if (containerWidth <= 0) return;\r\n    \/* phones: a slide is 1\/1.35 of the width; larger screens: capped so the whole picture stays a sensible height *\/\r\n    slideWidth = containerWidth \/ 1.35;\r\n    if (window.innerWidth >= 768) slideWidth = Math.min(slideWidth, 460);\r\n    titleWidth = containerWidth \/ 3;\r\n    root.style.setProperty(\"--rc-slide-w\", slideWidth + \"px\");\r\n    root.style.setProperty(\"--rc-title-w\", titleWidth + \"px\");\r\n    setTracks(contentX(index), titleX(index), false);\r\n  }\r\n\r\n  function onPointerDown(event) {\r\n    if (event.isPrimary === false) return;\r\n    if (event.pointerType === \"mouse\" && event.button !== 0) return;\r\n    dragging = true;\r\n    lock = null;\r\n    dragOnTitles = event.currentTarget === titleViewport;\r\n    startX = event.clientX;\r\n    startY = event.clientY;\r\n    lastX = event.clientX;\r\n    lastT = performance.now();\r\n    velocity = 0;\r\n    originIndex = index;\r\n    originContentX = contentX(index);\r\n    originTitleX = titleX(index);\r\n    titleTrack.style.transition = \"none\";\r\n    contentTrack.style.transition = \"none\";\r\n  }\r\n\r\n  function onPointerMove(event) {\r\n    if (!dragging) return;\r\n    var dx = event.clientX - startX;\r\n    var dy = event.clientY - startY;\r\n    var now;\r\n    var dt;\r\n    var contentDelta;\r\n    var titleDelta;\r\n\r\n    if (!lock) {\r\n      if (Math.abs(dx) < 8 && Math.abs(dy) < 8) return;\r\n      if (Math.abs(dy) > Math.abs(dx)) {\r\n        lock = \"v\";\r\n        dragging = false;\r\n        return;\r\n      }\r\n      lock = \"h\";\r\n      titleTrack.style.willChange = \"transform\";\r\n      contentTrack.style.willChange = \"transform\";\r\n      try {\r\n        event.currentTarget.setPointerCapture(event.pointerId);\r\n      } catch (err) {}\r\n    }\r\n\r\n    if (lock !== \"h\") return;\r\n    if (event.cancelable) event.preventDefault();\r\n\r\n    now = performance.now();\r\n    dt = now - lastT;\r\n    if (dt > 0) velocity = (event.clientX - lastX) \/ dt;\r\n    lastX = event.clientX;\r\n    lastT = now;\r\n\r\n    if (dragOnTitles) {\r\n      titleDelta = dx;\r\n      contentDelta = dx * (slideWidth \/ titleWidth);\r\n    } else {\r\n      contentDelta = dx;\r\n      titleDelta = dx * (titleWidth \/ slideWidth);\r\n    }\r\n\r\n    setTracks(originContentX + contentDelta, originTitleX + titleDelta, false);\r\n  }\r\n\r\n  function finishGesture(event) {\r\n    if (!dragging && lock !== \"h\") {\r\n      lock = null;\r\n      return;\r\n    }\r\n    if (lock !== \"h\") {\r\n      dragging = false;\r\n      lock = null;\r\n      return;\r\n    }\r\n\r\n    var dx = event.clientX - startX;\r\n    var threshold = dragOnTitles\r\n      ? Math.min(90, Math.max(36, titleWidth * 0.18))\r\n      : Math.min(140, Math.max(48, slideWidth * 0.18));\r\n    var dest = originIndex;\r\n\r\n    dragging = false;\r\n    lock = null;\r\n    suppressClick = Math.abs(dx) > 10;\r\n\r\n    if (dx <= -threshold || velocity <= -0.35) dest = originIndex + 1;\r\n    else if (dx >= threshold || velocity >= 0.35) dest = originIndex - 1;\r\n\r\n    goTo(dest, true);\r\n    window.setTimeout(function () {\r\n      suppressClick = false;\r\n    }, 320);\r\n  }\r\n\r\n  function onTransitionEnd(event) {\r\n    if (event.target !== contentTrack) return;\r\n    if (event.propertyName !== \"transform\") return;\r\n    snapLoop();\r\n    titleTrack.style.willChange = \"auto\";\r\n    contentTrack.style.willChange = \"auto\";\r\n  }\r\n\r\n  function onKeyDown(event) {\r\n    if (event.key === \"ArrowLeft\") {\r\n      event.preventDefault();\r\n      goTo(index - 1, true);\r\n    } else if (event.key === \"ArrowRight\") {\r\n      event.preventDefault();\r\n      goTo(index + 1, true);\r\n    }\r\n  }\r\n\r\n  function onTitleClick(event) {\r\n    var button = event.target.closest(\".rc-title\");\r\n    var target;\r\n    var currentLogical;\r\n    var clickedLogical;\r\n    var delta;\r\n    if (!button || !titleTrack.contains(button)) return;\r\n    if (suppressClick) return;\r\n    target = parseInt(button.getAttribute(\"data-rc-i\"), 10);\r\n    currentLogical = ((index % COUNT) + COUNT) % COUNT;\r\n    clickedLogical = ((target % COUNT) + COUNT) % COUNT;\r\n    delta = clickedLogical - currentLogical;\r\n    if (delta > COUNT \/ 2) delta -= COUNT;\r\n    if (delta < -COUNT \/ 2) delta += COUNT;\r\n    goTo(index + delta, true);\r\n  }\r\n\r\n  function onClickCapture(event) {\r\n    if (!suppressClick) return;\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n  }\r\n\r\n  build();\r\n  measure();\r\n  updateActive();\r\n\r\n  \/* The panorama loads only after the visitor starts scrolling (see the hero script) *\/\r\n  function loadImages() {\r\n    var n = 0;\r\n    function useFallback() {\r\n      var fb = root.querySelectorAll(\".rc-pano\");\r\n      for (var k = 0; k < fb.length; k += 1) {\r\n        fb[k].classList.add(\"rc-fb\");\r\n        fb[k].style.backgroundImage = 'url(\"' + fb[k].getAttribute(\"data-fb\") + '\")';\r\n      }\r\n      root.classList.add(\"rc-pano-on\");\r\n    }\r\n    function tryNext() {\r\n      if (n >= PANORAMAS.length) { useFallback(); return; }\r\n      var url = PANORAMAS[n];\r\n      n += 1;\r\n      var probe = new Image();\r\n      probe.onload = function () {\r\n        root.style.setProperty(\"--rc-pano-url\", 'url(\"' + url + '\")');\r\n        root.classList.add(\"rc-pano-on\");\r\n      };\r\n      probe.onerror = tryNext;\r\n      probe.src = url;\r\n    }\r\n    tryNext();\r\n  }\r\n  if (!document.documentElement.classList.contains(\"rm-below-on\") || window.__rmBelowRevealed) {\r\n    loadImages();\r\n  } else {\r\n    document.addEventListener(\"raissianBelowRevealed\", loadImages, { once: true });\r\n  }\r\n\r\n  contentViewport.addEventListener(\"pointerdown\", onPointerDown);\r\n  contentViewport.addEventListener(\"pointermove\", onPointerMove);\r\n  contentViewport.addEventListener(\"pointerup\", finishGesture);\r\n  contentViewport.addEventListener(\"pointercancel\", finishGesture);\r\n  titleViewport.addEventListener(\"pointerdown\", onPointerDown);\r\n  titleViewport.addEventListener(\"pointermove\", onPointerMove);\r\n  titleViewport.addEventListener(\"pointerup\", finishGesture);\r\n  titleViewport.addEventListener(\"pointercancel\", finishGesture);\r\n  contentTrack.addEventListener(\"transitionend\", onTransitionEnd);\r\n  root.addEventListener(\"keydown\", onKeyDown);\r\n  titleTrack.addEventListener(\"click\", onTitleClick);\r\n  root.addEventListener(\"click\", onClickCapture, true);\r\n\r\n  var desktopPrev = root.querySelector(\".rc-desktop-arrow-left\");\r\n  var desktopNext = root.querySelector(\".rc-desktop-arrow-right\");\r\n\r\n  desktopPrev.addEventListener(\"click\", function (event) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    goTo(index - 1, true);\r\n  });\r\n\r\n  desktopNext.addEventListener(\"click\", function (event) {\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    goTo(index + 1, true);\r\n  });\r\n\r\n  if (typeof ResizeObserver !== \"undefined\") {\r\n    new ResizeObserver(function () {\r\n      measure();\r\n    }).observe(root);\r\n  } else {\r\n    window.addEventListener(\"resize\", measure);\r\n    window.addEventListener(\"orientationchange\", measure);\r\n  }\r\n  root.addEventListener(\"click\", function (event) {\r\n    var button = event.target.closest(\".rc-option\");\r\n\r\n    if (!button) return;\r\n\r\n    var allButtons = root.querySelectorAll(\".rc-option\");\r\n\r\n    for (var i = 0; i < allButtons.length; i++) {\r\n      allButtons[i].classList.remove(\"is-active\");\r\n    }\r\n\r\n    button.classList.add(\"is-active\");\r\n  });})();\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-781d371 elementor-widget elementor-widget-html\" data-id=\"781d371\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"raissian-detail\"><\/div>\r\n<style>\r\n\/* EDITING: The detail panel starts at zero height and expands to its real content height. *\/\r\n#raissian-detail {\r\n    display: block;\r\n    width: 100%;\r\n    height: 0;\r\n    margin: 0;\r\n    padding: 0 18px 0;\r\n    overflow: hidden;\r\n    box-sizing: border-box;\r\n    color: #111111;\r\n    font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n    -webkit-font-smoothing: antialiased;\r\n    opacity: 1;\r\n    transform: translateX(0);\r\n    transition:\r\n        height 0.42s cubic-bezier(0.22, 1, 0.36, 1),\r\n        padding 0.42s cubic-bezier(0.22, 1, 0.36, 1),\r\n        opacity 0.22s ease,\r\n        transform 0.22s ease;\r\n}\r\n\r\n\/* EDITING: Active state only controls appearance; JS supplies the exact height. *\/\r\n#raissian-detail.active {\r\n    padding-bottom: 30px;\r\n}\r\n\r\n\/* EDITING: Horizontal swipe\/fade when changing carousel topics. *\/\r\n#raissian-detail.rd-swipe-hide {\r\n    opacity: 0;\r\n    transform: translateX(-30px);\r\n    pointer-events: none;\r\n}\r\n\r\n\/* Keep the Elementor widget itself from imposing a minimum height. *\/\r\n.elementor-widget-html:has(#raissian-detail) {\r\n    min-height: 0 !important;\r\n    overflow: visible;\r\n}\r\n\r\n\/* When empty, remove any Elementor widget spacing that could remain around the zero-height panel. *\/\r\n.elementor-widget-html:has(#raissian-detail:not(.active)) {\r\n    min-height: 0 !important;\r\n    margin-top: 0 !important;\r\n    margin-bottom: 0 !important;\r\n    padding-top: 0 !important;\r\n    padding-bottom: 0 !important;\r\n}\r\n\r\n#raissian-detail .rd-inner {\r\n    width: 100%;\r\n    max-width: 850px;\r\n    margin: 0 auto;\r\n    text-align: center;\r\n    overflow: hidden;\r\n}\r\n#raissian-detail .rd-title {\r\n    margin: 0 0 10px;\r\n    padding: 0;\r\n    font-size: clamp(0.95rem, 3.4vw, 1.35rem);\r\n    font-weight: 600;\r\n    letter-spacing: 0.18em;\r\n    line-height: 1.2;\r\n    text-align: center;\r\n    text-transform: uppercase;\r\n}\r\n#raissian-detail .rd-letter {\r\n    display: inline-block;\r\n    opacity: 0;\r\n    transform: translateX(14px);\r\n    animation: rdLetter 0.32s ease-out forwards;\r\n}\r\n@keyframes rdLetter {\r\n    from {\r\n        opacity: 0;\r\n        transform: translateX(14px);\r\n    }\r\n    to {\r\n        opacity: 1;\r\n        transform: translateX(0);\r\n    }\r\n}\r\n#raissian-detail .rd-text {\r\n    max-width: 28rem;\r\n    margin: 0 auto 20px;\r\n    padding: 0;\r\n    color: #111111;\r\n    font-size: clamp(0.92rem, 2.4vw, 1.08rem);\r\n    font-weight: 400;\r\n    letter-spacing: 0.01em;\r\n    line-height: 1.45;\r\n    text-align: center;\r\n    opacity: 0;\r\n    transform: translateX(22px);\r\n    animation:\r\n        rdContentIn 0.55s ease-out 0.35s forwards;\r\n}\r\n#raissian-detail .rd-content {\r\n    width: 100%;\r\n    margin: 0 auto;\r\n}\r\n#raissian-detail .rd-block {\r\n    margin: 0 0 18px;\r\n    padding: 0 0 16px;\r\n    border-bottom:\r\n        1px solid rgba(17, 17, 17, 0.12);\r\n    opacity: 0;\r\n    transform: translateX(28px);\r\n    animation:\r\n        rdContentIn 0.55s ease-out forwards;\r\n}\r\n#raissian-detail .rd-block:last-child {\r\n    border-bottom: 0;\r\n    margin-bottom: 0;\r\n}\r\n#raissian-detail .rd-block-title {\r\n    margin: 0 0 7px;\r\n    font-size: 0.82rem;\r\n    font-weight: 600;\r\n    letter-spacing: 0.08em;\r\n    line-height: 1.3;\r\n    text-transform: uppercase;\r\n}\r\n#raissian-detail .rd-block-text {\r\n    margin: 0;\r\n    font-size: 0.88rem;\r\n    font-weight: 400;\r\n    line-height: 1.55;\r\n}\r\n#raissian-detail .rd-list {\r\n    margin: 8px 0 0;\r\n    padding: 0;\r\n    list-style: none;\r\n}\r\n#raissian-detail .rd-list li {\r\n    margin: 0 0 6px;\r\n    padding-left: 14px;\r\n    position: relative;\r\n    font-size: 0.86rem;\r\n    line-height: 1.45;\r\n    opacity: 0;\r\n    transform: translateX(18px);\r\n    animation:\r\n        rdContentIn 0.4s ease-out forwards;\r\n}\r\n#raissian-detail .rd-list li::before {\r\n    content: \"\u2022\";\r\n    position: absolute;\r\n    left: 0;\r\n}\r\n#raissian-detail .rd-button-wrap {\r\n    margin-top: 18px;\r\n    opacity: 0;\r\n    transform: translateX(25px);\r\n    animation:\r\n        rdContentIn 0.55s ease-out 1.65s forwards;\r\n}\r\n#raissian-detail .rd-button {\r\n    display: inline-block;\r\n    padding: 9px 18px;\r\n    border: 1px solid #111111;\r\n    color: #111111;\r\n    background: transparent;\r\n    font-size: 0.78rem;\r\n    font-weight: 500;\r\n    letter-spacing: 0.08em;\r\n    line-height: 1.2;\r\n    text-decoration: none;\r\n    text-transform: uppercase;\r\n    transition:\r\n        background 0.25s ease,\r\n        color 0.25s ease;\r\n}\r\n#raissian-detail .rd-button:hover {\r\n    background: #111111;\r\n    color: #ffffff;\r\n}\r\n@keyframes rdContentIn {\r\n    from {\r\n        opacity: 0;\r\n        transform: translateX(28px);\r\n    }\r\n    to {\r\n        opacity: 1;\r\n        transform: translateX(0);\r\n    }\r\n}\r\n\r\n\/* EDITING: On mobile and desktop the wrapper follows the measured panel height. *\/\r\n.elementor-widget-html:has(#raissian-detail) {\r\n    min-height: 0 !important;\r\n    margin-top: 0 !important;\r\n    margin-bottom: 0 !important;\r\n    padding-top: 0 !important;\r\n    padding-bottom: 0 !important;\r\n    overflow: hidden;\r\n    box-sizing: border-box;\r\n}\r\n\r\n.elementor-widget-html:has(#raissian-detail:not(.active)) {\r\n    height: 0 !important;\r\n}\r\n\r\n@media (max-width: 767px) {\r\n    \/* EDITING: Remove Elementor's mobile flex space while the panel is closed. *\/\r\n    .elementor-widget-html:has(#raissian-detail:not(.active)) {\r\n        height: 0 !important;\r\n        min-height: 0 !important;\r\n        margin-top: 0 !important;\r\n        margin-bottom: 0 !important;\r\n        padding-top: 0 !important;\r\n        padding-bottom: 0 !important;\r\n        flex: 0 0 0 !important;\r\n        flex-basis: 0 !important;\r\n    }\r\n\r\n    #raissian-detail {\r\n        padding-left: 18px;\r\n        padding-right: 18px;\r\n    }\r\n\r\n    #raissian-detail.active {\r\n        padding-bottom: 24px;\r\n    }\r\n    #raissian-detail .rd-text {\r\n        margin-bottom: 16px;\r\n    }\r\n    #raissian-detail .rd-block {\r\n        margin-bottom: 14px;\r\n        padding-bottom: 13px;\r\n    }\r\n    #raissian-detail.rd-swipe-hide {\r\n        transform: translateX(-20px);\r\n    }\r\n}\r\n\r\n\r\n\/* Mobile closed-state cleanup: collapse any residual Elementor flex contribution. *\/\r\n@media (max-width: 767px) {\r\n  .elementor-widget-html:has(#raissian-detail:not(.active)) {\r\n    flex: 0 0 0 !important;\r\n    height: 0 !important;\r\n    min-height: 0 !important;\r\n    margin-top: 0 !important;\r\n    margin-bottom: 0 !important;\r\n    padding-top: 0 !important;\r\n    padding-bottom: 0 !important;\r\n    border: 0 !important;\r\n  }\r\n}\r\n\r\n\/* Mobile layout fix: remove reserved height from the Elementor container\/section\r\n   that contains the carousel and detail widgets. The container remains auto-height\r\n   and therefore follows the actual carousel + detail content. *\/\r\n@media (max-width: 767px) {\r\n    .raissian-mobile-flow-fix {\r\n        min-height: 0 !important;\r\n        height: auto !important;\r\n    }\r\n}\r\n<\/style>\r\n<script>\r\n(function () {\r\n    function setupRaissianDetails() {\r\n        var box = document.getElementById(\"raissian-detail\");\r\n        var carousel = document.getElementById(\"raissian-carousel\");\r\n        if (!box || !carousel) return;\r\n\r\n        \/* EDITING: The panel and its Elementor wrapper use measured heights.\r\n           This keeps the page moving smoothly instead of jumping. *\/\r\n        var widget = box.closest(\".elementor-widget-html\");\r\n        var anim = \"height 0.55s cubic-bezier(0.22, 1, 0.36, 1), padding 0.55s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.22s ease, transform 0.22s ease\";\r\n        var currentItem = null;\r\n        var closeTimer = null;\r\n\r\n        \/* Find the Elementor container\/section shared by the carousel and detail\r\n           widgets. Its mobile min-height is what can leave the large blank area. *\/\r\n        function fixMobileParentHeight() {\r\n            var node = box.parentElement;\r\n            var common = null;\r\n\r\n            while (node && node !== document.body) {\r\n                if (node.contains(carousel)) {\r\n                    common = node;\r\n                    break;\r\n                }\r\n                node = node.parentElement;\r\n            }\r\n\r\n            if (!common) return;\r\n\r\n            common.classList.add(\"raissian-mobile-flow-fix\");\r\n\r\n            var section = common.closest(\".e-con, .elementor-section\");\r\n            if (section) section.classList.add(\"raissian-mobile-flow-fix\");\r\n        }\r\n\r\n        fixMobileParentHeight();\r\n        window.addEventListener(\"resize\", fixMobileParentHeight);\r\n\r\n        setHeight(box, 0);\r\n        setWidgetHeight(0);\r\n\r\n        function setHeight(el, value) {\r\n            if (!el) return;\r\n            el.style.setProperty(\"height\", value + \"px\", \"important\");\r\n        }\r\n\r\n        function setWidgetHeight(value) {\r\n            setHeight(widget, value);\r\n        }\r\n\r\n        function measure() {\r\n            return Math.ceil(box.scrollHeight);\r\n        }\r\n\r\n        function openDetail() {\r\n            if (closeTimer) {\r\n                clearTimeout(closeTimer);\r\n                closeTimer = null;\r\n            }\r\n\r\n            box.classList.add(\"active\");\r\n            box.classList.remove(\"rd-swipe-hide\");\r\n            box.style.transition = \"none\";\r\n            box.style.paddingBottom = window.innerWidth <= 767 ? \"24px\" : \"30px\";\r\n            box.style.opacity = \"1\";\r\n            box.style.transform = \"translateX(0)\";\r\n            setHeight(box, 0);\r\n            setWidgetHeight(0);\r\n            box.offsetHeight;\r\n\r\n            requestAnimationFrame(function () {\r\n                requestAnimationFrame(function () {\r\n                    var target = measure();\r\n                    box.style.transition = anim;\r\n                    if (widget) widget.style.transition = \"height 0.55s cubic-bezier(0.22, 1, 0.36, 1)\";\r\n                    setHeight(box, target);\r\n                    setWidgetHeight(target);\r\n                });\r\n            });\r\n        }\r\n\r\n        function finishClose() {\r\n            box.classList.remove(\"active\", \"rd-swipe-hide\");\r\n            box.innerHTML = \"\";\r\n            box.style.transition = \"\";\r\n            box.style.paddingBottom = \"0px\";\r\n            box.style.opacity = \"\";\r\n            box.style.transform = \"\";\r\n            box.style.pointerEvents = \"\";\r\n            setHeight(box, 0);\r\n            setWidgetHeight(0);\r\n            if (widget) widget.style.transition = \"\";\r\n            currentItem = null;\r\n            closeTimer = null;\r\n        }\r\n\r\n        function closeDetail(direction) {\r\n            if (!box.classList.contains(\"active\")) return;\r\n            if (closeTimer) clearTimeout(closeTimer);\r\n\r\n            var currentHeight = Math.max(0, Math.ceil(box.getBoundingClientRect().height));\r\n            box.style.transition = anim;\r\n            setHeight(box, currentHeight);\r\n            setWidgetHeight(currentHeight);\r\n            box.style.opacity = \"0\";\r\n            box.style.transform = direction === \"left\" ? \"translateX(-45px)\" : \"translateX(45px)\";\r\n            box.style.pointerEvents = \"none\";\r\n            box.offsetHeight;\r\n\r\n            requestAnimationFrame(function () {\r\n                setHeight(box, 0);\r\n                setWidgetHeight(0);\r\n                box.style.paddingBottom = \"0px\";\r\n            });\r\n\r\n            closeTimer = setTimeout(finishClose, 620);\r\n        }\r\n\r\n        window.addEventListener(\"resize\", function () {\r\n            if (!box.classList.contains(\"active\")) return;\r\n            requestAnimationFrame(function () {\r\n                var h = measure();\r\n                setHeight(box, h);\r\n                setWidgetHeight(h);\r\n            });\r\n        });\r\n\r\n\r\nvar content = {\r\n            \"Buy a Home\": {\r\n                title: \"BUY A HOME\",\r\n                text:\r\n                    \"Find a home that fits your lifestyle, priorities and budget.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Start with what matters\",\r\n                        text:\r\n                            \"Buying a home is more than finding a property. I help you define the location, type of home, space and features that make sense for your everyday life.\"\r\n                    },\r\n                    {\r\n                        title: \"What I can help with\",\r\n                        list: [\r\n                            \"Understand your needs and priorities\",\r\n                            \"Explore suitable neighbourhoods\",\r\n                            \"Compare properties and options\",\r\n                            \"Understand the buying process\",\r\n                            \"Coordinate the next steps toward an offer\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"START YOUR SEARCH\",\r\n                href: \"\/contact-us\/?interest=buy#contact\"\r\n            },\r\n            \"Find What Fits\": {\r\n                title: \"FIND WHAT FITS\",\r\n                text:\r\n                    \"Explore the options that make sense for the way you actually live.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Look beyond the listing\",\r\n                        text:\r\n                            \"The right property depends on more than bedrooms and square footage. Location, layout, transportation, schools, lifestyle and future plans all matter.\"\r\n                    },\r\n                    {\r\n                        title: \"I can help you compare\",\r\n                        list: [\r\n                            \"Neighbourhood and location\",\r\n                            \"Property type and layout\",\r\n                            \"Price and overall value\",\r\n                            \"Renovation potential\",\r\n                            \"Long-term suitability\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE YOUR OPTIONS\",\r\n                href: \"\/contact-us\/?interest=buy#contact\"\r\n            },\r\n            \"Upgrade\": {\r\n                title: \"UPGRADE\",\r\n                text:\r\n                    \"When your current home no longer fits your lifestyle, it may be time to explore what's next.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Make the move with a plan\",\r\n                        text:\r\n                            \"Whether you need more space, a better layout or a different neighbourhood, I can help you evaluate your current situation and understand your options.\"\r\n                    },\r\n                    {\r\n                        title: \"Consider\",\r\n                        list: [\r\n                            \"What you need from your next home\",\r\n                            \"The potential value of your current property\",\r\n                            \"Timing the sale and purchase\",\r\n                            \"Renovation versus moving\",\r\n                            \"Your next neighbourhood\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE UPGRADE OPTIONS\",\r\n                href: \"\/contact-us\/?interest=buy#contact\"\r\n            },\r\n            \"Downsize\": {\r\n                title: \"DOWNSIZE\",\r\n                text:\r\n                    \"A smaller home can mean less maintenance, simpler living and a better fit for your next stage.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Simplify your next move\",\r\n                        text:\r\n                            \"Downsizing is about finding the right balance between space, comfort, location and lifestyle.\"\r\n                    },\r\n                    {\r\n                        title: \"I can help you evaluate\",\r\n                        list: [\r\n                            \"What space you really need\",\r\n                            \"Which belongings and features matter\",\r\n                            \"Neighbourhood and accessibility\",\r\n                            \"Potential selling options\",\r\n                            \"Suitable smaller properties\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE DOWNSIZING\",\r\n                href: \"\/contact-us\/?interest=buy#contact\"\r\n            },\r\n            \"Sell My Home\": {\r\n                title: \"SELL MY HOME\",\r\n                text:\r\n                    \"Understand your options and prepare your home for the market.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Before you list\",\r\n                        text:\r\n                            \"A successful sale starts before the property goes online. Understanding the market, preparing the home and positioning the listing can all affect the selling process.\"\r\n                    },\r\n                    {\r\n                        title: \"My approach\",\r\n                        list: [\r\n                            \"Review your property and its potential\",\r\n                            \"Understand current market conditions\",\r\n                            \"Identify preparation opportunities\",\r\n                            \"Position the property appropriately\",\r\n                            \"Plan the selling process\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"DISCUSS SELLING YOUR HOME\",\r\n                href: \"\/contact-us\/?interest=sell#contact\"\r\n            },\r\n            \"Sell My Condo\": {\r\n                title: \"SELL MY CONDO\",\r\n                text:\r\n                    \"Selling a condo requires understanding both the property and the building.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Know the unit and the building\",\r\n                        text:\r\n                            \"Unit condition, building characteristics, fees, location and comparable properties can all be relevant when preparing a condo for sale.\"\r\n                    },\r\n                    {\r\n                        title: \"Important considerations\",\r\n                        list: [\r\n                            \"Recent comparable sales\",\r\n                            \"Condo fees and building information\",\r\n                            \"Unit condition and presentation\",\r\n                            \"Building amenities\",\r\n                            \"Positioning against competing listings\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"DISCUSS YOUR CONDO\",\r\n                href: \"\/contact-us\/?interest=sell#contact\"\r\n            },\r\n            \"Sell & Buy\": {\r\n                title: \"SELL & BUY\",\r\n                text:\r\n                    \"Selling one home while buying another requires careful coordination.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Plan both sides\",\r\n                        text:\r\n                            \"The timing of your sale, purchase, financing and move can all be connected. A clear plan can help you understand the sequence of decisions.\"\r\n                    },\r\n                    {\r\n                        title: \"I can help coordinate\",\r\n                        list: [\r\n                            \"Current home evaluation\",\r\n                            \"Next-home search\",\r\n                            \"Timing considerations\",\r\n                            \"Offer and closing coordination\",\r\n                            \"Transition planning\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"PLAN YOUR MOVE\",\r\n                href: \"\/contact-us\/?interest=sell#contact\"\r\n            },\r\n            \"Home Value\": {\r\n                title: \"HOME VALUE\",\r\n                text:\r\n                    \"Understand what factors can influence the value and market position of your property.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"More than a number\",\r\n                        text:\r\n                            \"Property value can depend on location, condition, size, layout, recent comparable sales and current market conditions.\"\r\n                    },\r\n                    {\r\n                        title: \"A useful starting point\",\r\n                        list: [\r\n                            \"Review comparable properties\",\r\n                            \"Consider recent market activity\",\r\n                            \"Identify improvements\",\r\n                            \"Understand your property's positioning\",\r\n                            \"Discuss your selling objectives\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"REQUEST A HOME REVIEW\",\r\n                href: \"\/contact-us\/?interest=sell#contact\"\r\n            },\r\n            \"Rental Property\": {\r\n                title: \"RENTAL PROPERTY\",\r\n                text:\r\n                    \"Explore properties with rental potential and understand the factors behind the numbers.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Look beyond the rent\",\r\n                        text:\r\n                            \"Rental potential depends on more than expected rent. Purchase price, operating costs, financing, location, vacancy and future maintenance should all be considered.\"\r\n                    },\r\n                    {\r\n                        title: \"Evaluate\",\r\n                        list: [\r\n                            \"Expected rental income\",\r\n                            \"Operating expenses\",\r\n                            \"Purchase price\",\r\n                            \"Location and tenant demand\",\r\n                            \"Potential renovation requirements\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE INVESTMENT PROPERTIES\",\r\n                href: \"\/contact-us\/?interest=invest#contact\"\r\n            },\r\n            \"Buy & Hold\": {\r\n                title: \"BUY & HOLD\",\r\n                text:\r\n                    \"Explore a long-term property strategy based on the characteristics of the property and market.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Think long term\",\r\n                        text:\r\n                            \"A buy-and-hold approach requires looking beyond the immediate purchase and considering income, expenses, maintenance, financing and potential future value.\"\r\n                    },\r\n                    {\r\n                        title: \"Key considerations\",\r\n                        list: [\r\n                            \"Cash flow\",\r\n                            \"Location\",\r\n                            \"Property condition\",\r\n                            \"Tenant profile\",\r\n                            \"Long-term expenses\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE BUY & HOLD\",\r\n                href: \"\/contact-us\/?interest=invest#contact\"\r\n            },\r\n            \"Renovate \/ Flip\": {\r\n                title: \"RENOVATE \/ FLIP\",\r\n                text:\r\n                    \"Explore properties where renovation may create an opportunity.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Start with the numbers\",\r\n                        text:\r\n                            \"A renovation project needs to account for acquisition cost, renovation budget, carrying costs, selling costs and the potential market value after improvements.\"\r\n                    },\r\n                    {\r\n                        title: \"Evaluate\",\r\n                        list: [\r\n                            \"Purchase price\",\r\n                            \"Renovation scope\",\r\n                            \"Construction costs\",\r\n                            \"Timeline\",\r\n                            \"Potential resale value\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE RENOVATION OPPORTUNITIES\",\r\n                href: \"\/contact-us\/?interest=renovation#contact\"\r\n            },\r\n            \"Evaluate\": {\r\n                title: \"EVALUATE\",\r\n                text:\r\n                    \"Look at a property from both the opportunity and risk perspectives.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Build the full picture\",\r\n                        text:\r\n                            \"Before making an investment decision, consider the property's condition, income potential, expenses, financing and the surrounding market.\"\r\n                    },\r\n                    {\r\n                        title: \"Property review\",\r\n                        list: [\r\n                            \"Financial assumptions\",\r\n                            \"Physical condition\",\r\n                            \"Location\",\r\n                            \"Market context\",\r\n                            \"Potential scenarios\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EVALUATE A PROPERTY\",\r\n                href: \"\/contact-us\/?interest=invest#contact\"\r\n            },\r\n            \"Neighbourhoods\": {\r\n                title: \"NEIGHBOURHOODS\",\r\n                text:\r\n                    \"Discover the places that make Greater Montreal different.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Find the right environment\",\r\n                        text:\r\n                            \"Every neighbourhood has its own character, housing types, amenities, transportation, schools and lifestyle.\"\r\n                    },\r\n                    {\r\n                        title: \"Explore\",\r\n                        list: [\r\n                            \"West Island\",\r\n                            \"Montreal Island\",\r\n                            \"Vaudreuil-Soulanges\",\r\n                            \"Laval\",\r\n                            \"South Shore\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE NEIGHBOURHOODS\",\r\n                href: \"\/neighbourhoods\/\"\r\n            },\r\n            \"Market\": {\r\n                title: \"MARKET\",\r\n                text:\r\n                    \"Understand what's happening in the Montreal real estate market.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Market insights\",\r\n                        text:\r\n                            \"Explore market statistics, trends and information that can help put property decisions into context.\"\r\n                    },\r\n                    {\r\n                        title: \"Explore\",\r\n                        list: [\r\n                            \"Market statistics\",\r\n                            \"Price trends\",\r\n                            \"Sales activity\",\r\n                            \"Neighbourhood differences\",\r\n                            \"Real estate insights\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE MARKET INSIGHTS\"\r\n            },\r\n            \"Properties\": {\r\n                title: \"PROPERTIES\",\r\n                text:\r\n                    \"I will help you search for properties that match your needs.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Find opportunities\",\r\n                        text:\r\n                            \"Whether you're looking for a home, condo or investment property, explore options that match what you're looking for.\"\r\n                    },\r\n                    {\r\n                        title: \"Search by\",\r\n                        list: [\r\n                            \"Location\",\r\n                            \"Property type\",\r\n                            \"Price range\",\r\n                            \"Lifestyle\",\r\n                            \"Investment potential\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE PROPERTIES\"\r\n            },\r\n            \"Insights\": {\r\n                title: \"INSIGHTS\",\r\n                text:\r\n                    \"Practical ideas and information for buying, selling, investing and understanding real estate.\",\r\n                blocks: [\r\n                    {\r\n                        title: \"Useful information\",\r\n                        text:\r\n                            \"Explore guides, tips, neighbourhood information and market insights designed to help you understand the decisions involved in real estate.\"\r\n                    },\r\n                    {\r\n                        title: \"Topics\",\r\n                        list: [\r\n                            \"Buying\",\r\n                            \"Selling\",\r\n                            \"Investing\",\r\n                            \"Renovation\",\r\n                            \"Neighbourhoods and market\"\r\n                        ]\r\n                    }\r\n                ],\r\n                button:\r\n                    \"EXPLORE INSIGHTS\"\r\n            }\r\n        };\r\n        function animatedTitle(title) {\r\n            var result = \"\";\r\n            for (var i = 0; i < title.length; i++) {\r\n                var char = title.charAt(i);\r\n                if (char === \" \") {\r\n                    result += \" \";\r\n                } else {\r\n                    result +=\r\n                        '<span class=\"rd-letter\" style=\"animation-delay:' +\r\n                        (0.05 + (i * 0.035)) +\r\n                        's\">' +\r\n                        char +\r\n                        '<\/span>';\r\n                }\r\n            }\r\n            return result;\r\n        }\r\n        function clearDetail() {\r\n            finishClose();\r\n        }\r\n        function hideDetailAfterSwipe(direction) {\r\n            closeDetail(direction);\r\n        }\r\n\r\n        var touchStartX = 0;\r\n        var touchStartY = 0;\r\n        var touchStartTime = 0;\r\n        var pointerStartX = 0;\r\n        var pointerStartY = 0;\r\n        var pointerStartTime = 0;\r\n        var pointerActive = false;\r\n        document.addEventListener(\r\n            \"touchstart\",\r\n            function (event) {\r\n                if (\r\n                    !event.touches ||\r\n                    !event.touches.length\r\n                ) {\r\n                    return;\r\n                }\r\n                touchStartX =\r\n                    event.touches[0].clientX;\r\n                touchStartY =\r\n                    event.touches[0].clientY;\r\n                touchStartTime =\r\n                    Date.now();\r\n            },\r\n            { passive: true }\r\n        );\r\n        document.addEventListener(\r\n            \"touchend\",\r\n            function (event) {\r\n                if (\r\n                    !event.changedTouches ||\r\n                    !event.changedTouches.length\r\n                ) {\r\n                    return;\r\n                }\r\n                var touchEndX =\r\n                    event.changedTouches[0].clientX;\r\n                var touchEndY =\r\n                    event.changedTouches[0].clientY;\r\n                var deltaX =\r\n                    touchEndX - touchStartX;\r\n                var deltaY =\r\n                    touchEndY - touchStartY;\r\n                var elapsed =\r\n                    Date.now() - touchStartTime;\r\n                var minimumSwipe = 40;\r\n                var isHorizontal =\r\n                    Math.abs(deltaX) >= minimumSwipe &&\r\n                    Math.abs(deltaX) > Math.abs(deltaY);\r\n                if (!isHorizontal) return;\r\n                if (elapsed > 1200) return;\r\n                var direction =\r\n                    deltaX < 0\r\n                        ? \"left\"\r\n                        : \"right\";\r\n                hideDetailAfterSwipe(direction);\r\n            },\r\n            { passive: true }\r\n        );\r\n        document.addEventListener(\r\n            \"pointerdown\",\r\n            function (event) {\r\n                if (event.pointerType === \"touch\") return;\r\n                pointerStartX = event.clientX;\r\n                pointerStartY = event.clientY;\r\n                pointerStartTime = Date.now();\r\n                pointerActive = true;\r\n            },\r\n            true\r\n        );\r\n        document.addEventListener(\r\n            \"pointerup\",\r\n            function (event) {\r\n                if (!pointerActive || event.pointerType === \"touch\") {\r\n                    pointerActive = false;\r\n                    return;\r\n                }\r\n                pointerActive = false;\r\n                var deltaX = event.clientX - pointerStartX;\r\n                var deltaY = event.clientY - pointerStartY;\r\n                var elapsed = Date.now() - pointerStartTime;\r\n                var minimumSwipe = 40;\r\n                var isHorizontal =\r\n                    Math.abs(deltaX) >= minimumSwipe &&\r\n                    Math.abs(deltaX) > Math.abs(deltaY);\r\n                if (!isHorizontal) return;\r\n                if (elapsed > 1200) return;\r\n                var direction =\r\n                    deltaX < 0\r\n                        ? \"left\"\r\n                        : \"right\";\r\n                hideDetailAfterSwipe(direction);\r\n            },\r\n            true\r\n        );\r\n        document.addEventListener(\r\n            \"pointercancel\",\r\n            function () {\r\n                pointerActive = false;\r\n            },\r\n            true\r\n        );\r\n        document.addEventListener(\r\n            \"click\",\r\n            function (event) {\r\n                var arrow =\r\n                    event.target.closest(\".rc-desktop-arrow\");\r\n                if (!arrow) return;\r\n                if (!box.classList.contains(\"active\")) return;\r\n                var direction =\r\n                    arrow.classList.contains(\"rc-desktop-arrow-left\")\r\n                        ? \"right\"\r\n                        : \"left\";\r\n                hideDetailAfterSwipe(direction);\r\n            },\r\n            true\r\n        );\r\n        document.addEventListener(\r\n            \"wheel\",\r\n            function (event) {\r\n                if (!box.classList.contains(\"active\")) return;\r\n                if (Math.abs(event.deltaX) < 8) return;\r\n                var direction =\r\n                    event.deltaX < 0\r\n                        ? \"left\"\r\n                        : \"right\";\r\n                hideDetailAfterSwipe(direction);\r\n            },\r\n            { passive: true, capture: true }\r\n        );\r\n        function renderItem(item, preservePosition) {\r\n            if (closeTimer) {\r\n                clearTimeout(closeTimer);\r\n                closeTimer = null;\r\n            }\r\n\r\n            var oldHeight = Math.max(0, Math.ceil(box.getBoundingClientRect().height));\r\n            var html =\r\n                '<div class=\"rd-inner\">' +\r\n                    '<div class=\"rd-title\">' + animatedTitle(item.title) + '<\/div>' +\r\n                    '<div class=\"rd-text\">' + item.text + '<\/div>' +\r\n                    '<div class=\"rd-content\">';\r\n\r\n            if (item.blocks) {\r\n                item.blocks.forEach(function (block, blockIndex) {\r\n                    html +=\r\n                        '<div class=\"rd-block\" style=\"animation-delay:' +\r\n                        (0.65 + blockIndex * 0.20) + 's\">' +\r\n                            '<div class=\"rd-block-title\">' + block.title + '<\/div>';\r\n                    if (block.text) {\r\n                        html += '<p class=\"rd-block-text\">' + block.text + '<\/p>';\r\n                    }\r\n                    if (block.list) {\r\n                        html += '<ul class=\"rd-list\">';\r\n                        block.list.forEach(function (listItem, listIndex) {\r\n                            html +=\r\n                                '<li style=\"animation-delay:' +\r\n                                (1.05 + listIndex * 0.10) + 's\">' +\r\n                                listItem + '<\/li>';\r\n                        });\r\n                        html += '<\/ul>';\r\n                    }\r\n                    html += '<\/div>';\r\n                });\r\n            }\r\n\r\n            if (item.button) {\r\n                html +=\r\n                    '<div class=\"rd-button-wrap\">' +\r\n                        '<a href=\"' + (item.href || \"\/contact-us\/#Book-Appontment\") + '\" class=\"rd-button\">' + item.button + '<\/a>' +\r\n                    '<\/div>';\r\n            }\r\n\r\n            html += '<\/div><\/div>';\r\n\r\n            currentItem = item;\r\n\r\n            if (!preservePosition) {\r\n                box.innerHTML = html;\r\n                openDetail();\r\n                return;\r\n            }\r\n\r\n            \/\/ Same category: replace content while keeping the panel open.\r\n            box.style.transition = \"none\";\r\n            setHeight(box, oldHeight);\r\n            setWidgetHeight(oldHeight);\r\n            box.style.paddingBottom = window.innerWidth <= 767 ? \"24px\" : \"30px\";\r\n            box.style.opacity = \"1\";\r\n            box.style.transform = \"translateX(0)\";\r\n            box.classList.add(\"active\");\r\n            box.classList.remove(\"rd-swipe-hide\");\r\n\r\n            box.innerHTML = html;\r\n            box.offsetHeight;\r\n\r\n            requestAnimationFrame(function () {\r\n                requestAnimationFrame(function () {\r\n                    var newHeight = measure();\r\n                    box.style.transition = anim;\r\n                    if (widget) widget.style.transition = \"height 0.55s cubic-bezier(0.22, 1, 0.36, 1)\";\r\n                    setHeight(box, newHeight);\r\n                    setWidgetHeight(newHeight);\r\n                });\r\n            });\r\n        }\r\n\r\n        carousel.addEventListener(\"click\", function (event) {\r\n            var button = event.target.closest(\".rc-option\");\r\n            if (!button) return;\r\n\r\n            var name = button.textContent.trim();\r\n            var item = content[name];\r\n            if (!item) return;\r\n\r\n            \/* Same category\/options: swap in place. A swipe is what closes the panel. *\/\r\n            renderItem(item, box.classList.contains(\"active\"));\r\n        });\r\n    }\r\n    if (\r\n        document.readyState === \"loading\"\r\n    ) {\r\n        document.addEventListener(\r\n            \"DOMContentLoaded\",\r\n            setupRaissianDetails\r\n        );\r\n    } else {\r\n        setupRaissianDetails();\r\n    }\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-89d4195 e-con e-atomic-element e-flexbox-base e-default-div e-98aec12 \" data-id=\"89d4195\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"89d4195\">\n    \t\t<div class=\"elementor-element elementor-element-4a5f5fc elementor-widget elementor-widget-shortcode\" data-id=\"4a5f5fc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t<div data-elementor-type=\"container\" data-elementor-id=\"2990\" class=\"elementor elementor-2990\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b71e0a0 e-flex e-con-boxed e-con e-parent\" data-id=\"b71e0a0\" data-element_type=\"container\" data-e-type=\"container\" id=\"raissian-currently\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b71e0a1 elementor-absolute elementor-widget__width-initial animated-slow elementor-hidden-mobile elementor-invisible elementor-widget elementor-widget-image\" data-id=\"b71e0a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;,&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"2120\" height=\"742\" src=\"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-City-Skyline.png\" class=\"attachment-full size-full wp-image-2983\" alt=\"Watercolour skyline of Montr\u00e9al with a bridge across the water\" srcset=\"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-City-Skyline.png 2120w, https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-City-Skyline-300x105.png 300w, https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-City-Skyline-1024x358.png 1024w, https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-City-Skyline-768x269.png 768w, https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-City-Skyline-1536x538.png 1536w, https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-City-Skyline-2048x717.png 2048w\" sizes=\"(max-width: 2120px) 100vw, 2120px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b71e0a2 elementor-absolute elementor-widget__width-initial animated-slow elementor-hidden-desktop elementor-hidden-tablet elementor-invisible elementor-widget elementor-widget-image\" data-id=\"b71e0a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;,&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1640\" height=\"959\" src=\"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-phone-City-Skyline.png\" class=\"attachment-full size-full wp-image-2982\" alt=\"Watercolour skyline of Montr\u00e9al with a bridge across the water\" srcset=\"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-phone-City-Skyline.png 1640w, https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-phone-City-Skyline-300x175.png 300w, https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-phone-City-Skyline-1024x599.png 1024w, https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-phone-City-Skyline-768x449.png 768w, https:\/\/raissian.ca\/wp-content\/uploads\/2026\/10\/Raissian-real-estate-Market-phone-City-Skyline-1536x898.png 1536w\" sizes=\"(max-width: 1640px) 100vw, 1640px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b71e0a6 e-con-full e-flex e-con e-child\" data-id=\"b71e0a6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b71e0a3 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"b71e0a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Montreal market snapshot<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b71e0a4 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"b71e0a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_delay&quot;:150}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">MARKET PULSE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b71e0a5 elementor-invisible elementor-widget elementor-widget-text-editor\" data-id=\"b71e0a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;,&quot;_animation_delay&quot;:300}\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>The market, at a glance<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0bc0423 e-con-full e-flex e-con e-child\" data-id=\"0bc0423\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a91aa2 elementor-widget elementor-widget-html\" data-id=\"3a91aa2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- MARKET PULSE 1\/3 \u00b7 charts + data loader. DATA SOURCE: now data-json reads the WordPress page Market Pulse data (ID 3019). Alternatives: data-sheet (Google Sheet link) or data-history-csv + data-text-csv. All empty = built-in numbers. --><link rel='stylesheet' href='https:\/\/fonts.googleapis.com\/css2?family=Architects+Daughter&display=swap'><div class='rmk rmk-charts' id='rmk-charts' data-sheet='' data-json='\/wp-json\/wp\/v2\/pages\/3019?_fields=content' data-history-csv='' data-text-csv=''><div class='rmk-cards' data-cards aria-label='Market indicators'><\/div><div class='rmk-dots' data-dots><\/div><\/div><style>.rmk{--ink:#111111;--muted:rgba(17,17,17,.64);--hair:rgba(17,17,17,.14);--or:#C96A32;--hand:'Architects Daughter','Helvetica Neue',Helvetica,sans-serif;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;}.rmk *{box-sizing:border-box;}.rmk p{margin:0;padding:0;}.rmk [hidden]{display:none!important;}.rmk-cards{position:relative;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 20px 8px;scroll-padding:0 20px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}.rmk-cards::-webkit-scrollbar{display:none;}.rmk-card{flex:0 0 82%;scroll-snap-align:start;padding:16px 16px 14px;border:1px solid var(--hair);background:rgba(255,255,255,.32);display:flex;flex-direction:column;gap:8px;}.rmk-top{display:flex;align-items:baseline;gap:10px;}.rmk-num{font-size:36px;font-weight:300;letter-spacing:-.02em;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums;}.rmk-lab{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;}.rmk-cmp{font-size:12px;color:var(--muted);}.rmk-chart svg{display:block;width:100%;height:auto;overflow:visible;}.rmk-hand{font-family:var(--hand);font-size:14px;color:rgba(17,17,17,.72);line-height:1.3;}.rmk-dots{display:flex;justify-content:center;gap:6px;padding:8px 0 2px;}.rmk-dots button{width:28px;height:28px;padding:0;margin:0;border:0;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none;}.rmk-dots button span{display:block;width:6px;height:3px;background:rgba(17,17,17,.25);transition:width .3s,background .3s;}.rmk-dots button[aria-current='true'] span{width:18px;background:var(--or);}.rmk-dots button:focus-visible{outline:2px solid var(--or);outline-offset:2px;}.rmk.anim .ln{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s cubic-bezier(.45,.05,.25,1) var(--d,0s);}.rmk.anim .wash,.rmk.anim .fade{opacity:0;transition:opacity 1s ease var(--d,0s);}.rmk.anim .grow{transform:scaleY(0);transform-box:fill-box;transform-origin:50% 100%;transition:transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0s);}.rmk.anim .growdown{transform:scaleY(0);transform-box:fill-box;transform-origin:50% 0%;transition:transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0s);}.rmk.anim .rise{opacity:0;transform:translateY(18px);transition:opacity .7s ease var(--d,0s),transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0s);}.rmk.anim .pop{opacity:0;transform:scale(.2);transform-box:fill-box;transform-origin:center;transition:opacity .4s ease var(--d,0s),transform .6s cubic-bezier(.2,1.5,.4,1) var(--d,0s);}.rmk .is-in .ln{stroke-dashoffset:0;}.rmk .is-in .wash,.rmk .is-in .fade{opacity:1;}.rmk .is-in .grow,.rmk .is-in .growdown,.rmk .is-in .rise,.rmk .is-in .pop{opacity:1;transform:none;}@media (min-width:900px){.rmk-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;overflow:visible;padding:0;}.rmk-card{padding:20px 20px 16px;}.rmk-num{font-size:44px;}.rmk-dots{display:none;}}@media (prefers-reduced-motion:reduce){.rmk *{transition:none!important;}}@media(max-width:899px){.rmk-lab{font-size:12px;}.rmk-cmp{font-size:13px;}.rmk-hand{font-size:15px;}.rmk-cards{padding-bottom:2px;}.rmk-dots{padding:2px 0 0;}.rmk-dots button{height:24px;}}<\/style><script>(function(){'use strict';var root=document.getElementById('rmk-charts');if(!root||root.__rmkCharts){return;}root.__rmkCharts=true;var FALLBACK={history:[{month:'Sep 2026',sales:3082,sales_yoy:-12,listings:21793,listings_yoy:20,sf_median:635000,sf_yoy:0,sf_days:41},{month:'Aug 2026',sales:2853,sales_yoy:-13,listings:20128,listings_yoy:18,sf_median:650000,sf_yoy:3,sf_days:42},{month:'Jul 2026',sales:3338,sales_yoy:-10,listings:19790,listings_yoy:17,sf_median:650000,sf_yoy:4,sf_days:38},{month:'Jun 2026',sales:4012,sales_yoy:-8,listings:20894,listings_yoy:17,sf_median:649000,sf_yoy:4,sf_days:32},{month:'May 2026',sales:4623,sales_yoy:-7,listings:21073,listings_yoy:14,sf_median:645000,sf_yoy:3,sf_days:30},{month:'Apr 2026',sales:4744,sales_yoy:-7,listings:20959,listings_yoy:15,sf_median:645000,sf_yoy:3,sf_days:34}],text:{updated:'October 2, 2026',analysis_updated:'October 6, 2026',source:'APCIQ \/ Centris',months_shown:'6',note_sales:'Below last year every month since April.',note_supply:'Above last year every month since April.',note_prices:'Flat in September after +3\u20134% earlier in the year.',weather_position:'55',weather_label:'Moving toward balance',weather_text:'Listings keep rising while sales slow down. Buyers have more choice, and single-family prices are flat compared with last year.',buying_title:'More choice, less urgency.',buying_text:'With more homes on the market and fewer sales, buyers have more time to compare properties and more room to negotiate.',selling_title:'Pricing matters more.',selling_text:'More listings and slower sales mean more competition for every property. Accurate pricing and strong presentation now make the difference.',investing_title:'A market worth studying.',investing_text:'A more balanced market leaves room for careful negotiation. Location, building quality, rental demand and renovation potential still decide the outcome.'}};var INK='#2a2a28';var OR='#C96A32';var WARM='#D6A27A';var COOL='#8FA6BC';var HAND='Architects Daughter, Helvetica Neue, sans-serif';var SANS='Helvetica Neue, Helvetica, sans-serif';var DQ=String.fromCharCode(34);var NL=String.fromCharCode(10);var CR=String.fromCharCode(13);var GOOG='https:\/\/docs.google.com\/';var MON=['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'];var MONL=['January','February','March','April','May','June','July','August','September','October','November','December'];var reduce=!!(window.matchMedia&&matchMedia('(prefers-reduced-motion: reduce)').matches);var R;var SC=1,lastD=null;function rng(a){return function(){a|=0;a=a+0x6D2B79F5|0;var t=Math.imul(a^a>>>15,1|a);t=t+Math.imul(t^t>>>7,61|t)^t;return((t^t>>>14)>>>0)\/4294967296;};}function j(a){return(R()-.5)*2*a;}function r1(n){return Math.round(n*10)\/10;}function $(s){return root.querySelector(s);}function num(v){if(typeof v==='number'){return v;}var n=parseFloat(String(v==null?'':v).replace(\/[^0-9.\u2212-]\/g,'').replace('\u2212','-'));return isFinite(n)?n:NaN;}function sign(v,unit){if(!isFinite(v)){return'\u2013';}var a=Math.abs(v);a=Math.round(a*10)\/10;return(v>0?'+':v<0?'\u2212':'')+a+(unit||'');}function el(t,a,kids){var n=document.createElement(t);for(var k in a){if(a[k]!=null){n.setAttribute(k,a[k]);}}(kids||[]).forEach(function(c){n.appendChild(typeof c==='string'?document.createTextNode(c):c);});return n;}function pathD(p,a){var d='M'+r1(p[0][0]+j(a*.4))+' '+r1(p[0][1]+j(a*.4));for(var i=1;i<p.length;i++){var s=p[i-1];var q=p[i];d+='Q'+r1((s[0]+q[0])\/2+j(a))+' '+r1((s[1]+q[1])\/2+j(a))+' '+r1(q[0]+j(a*.4))+' '+r1(q[1]+j(a*.4));}return d;}function pen(p,o){o=o||{};var w=o.w||1;var op=o.op==null?.85:o.op;var a=o.a==null?.8:o.a;var c=o.c||INK;var cls=o.cls||'ln';var d=o.d||0;var dash=o.dash?` stroke-dasharray='`+o.dash+`'`:``;var pl=cls==='ln'&&!o.dash?` pathLength='1'`:``;var s=`<path class='`+cls+`' style='--d:`+d+`s'`+pl+` d='`+pathD(p,a)+`' fill='none' stroke='`+c+`' stroke-width='`+w+`' stroke-opacity='`+op+`' stroke-linecap='round' `+`stroke-linejoin='round'`+dash+`><\/path>`;if(o.dbl!==false){s+=`<path class='`+cls+`' style='--d:`+(d+.12)+`s'`+pl+` d='`+pathD(p,a*1.3)+`' fill='none' stroke='`+c+`' stroke-width='`+(w*.5)+`' stroke-opacity='`+(op*.45)+`' stroke-linecap='round'`+dash+`><\/path>`;}return s;}function wash(p,c,op,o){o=o||{};var s='';var n=o.layers||2;for(var k=0;k<n;k++){var d='M'+p.map(function(q){return(r1(q[0]+j(1.5))+' '+r1(q[1]+j(1.5)));}).join('L')+'Z';s+=`<path class='`+(o.cls||'wash')+`' style='--d:`+(o.d||0)+`s' d='`+d+`' fill='`+c+`' fill-opacity='`+(k?op*.6:op)+`' filter='url(#rmk-wc)'><\/path>`;}return s;}function txt(x,y,t,o){o=o||{};var baseSize=o.s||11;var biggerSize=Math.min(Math.max(baseSize*1.3,(baseSize>=12?13.8:12)\/SC),34);return(`<text class='`+(o.cls||'fade')+`' style='--d:`+(o.d||0)+`s' x='`+r1(x)+`' y='`+r1(y)+`' font-family='`+(o.f||HAND)+`' font-size='`+r1(biggerSize)+`' font-weight='`+(o.wt||400)+`' fill='`+(o.c||INK)+`' fill-opacity='`+(o.op==null?.75:o.op)+`' text-anchor='`+(o.an||'middle')+`'>`+t+`<\/text>`);}function svg(w,h,body,label){return(`<svg viewBox='0 0 `+w+` `+h+`' role='img' aria-label='`+label.split(DQ).join('')+`'>`+body+`<\/svg>`);}function nice(lo,hi,step){return[Math.floor(lo\/step)*step,Math.ceil(hi\/step)*step];}function aria(name,rows,key,unit){return(name+': '+rows.map(function(r){return(MONL[r.m]+' '+sign(r[key],unit));}).join(', '));}function chartLine(rows,key){R=rng(3);var W=400,H=230,L=44,Rt=380,T=26,B=186;var v=rows.map(function(r){return r[key];});var ext=nice(Math.min(0,Math.min.apply(0,v)),Math.max(0,Math.max.apply(0,v)),5);var lo=ext[0];var hi=ext[1]===ext[0]?ext[0]+5:ext[1];var n=rows.length;var X=function(i){return n<2?(L+Rt)\/2:L+i*(Rt-L)\/(n-1);};var Y=function(q){return T+(hi-q)\/(hi-lo)*(B-T);};var o='';for(var g=hi;g>=lo;g-=5){o+=pen([[L-8,Y(g)],[Rt+6,Y(g)]],{w:.6,op:g===0?.55:.22,a:.5,dbl:false,cls:'fade',dash:g===0?null:'2 5'});o+=txt(L-14,Y(g)+4,g===0?'\u00b10':(g>0?'+':'\u2212')+Math.abs(g),{s:10,an:'end',op:.72});}var pts=v.map(function(q,i){return[X(i),Y(q)];});var band=pts .map(function(p){return[p[0],p[1]];}).concat(pts .slice().reverse().map(function(p){var z=Y(0);var dir=p[1]>z?-1:1;return[p[0],Math.abs(p[1]-z)<20?z:p[1]+dir*20];}));o+=wash(band,WARM,.4,{d:.5});o+=pen(pts,{w:1.5,op:.9,a:1});pts .slice(0,-1).forEach(function(p,i){o+=`<circle class='pop' `+`style='--d:`+(.2+i*.15)+`s' cx='`+r1(p[0])+`' cy='`+r1(p[1])+`' r='2.2' fill='`+INK+`' fill-opacity='.7'><\/circle>`;});var l=pts[n-1];o+=`<circle class='pop' `+`style='--d:1.4s' `+`cx='`+r1(l[0])+`' cy='`+r1(l[1])+`' r='9' fill='none' `+`stroke='`+OR+`' stroke-opacity='.5' `+`stroke-width='.8'><\/circle>`+`<circle class='pop' `+`style='--d:1.4s' `+`cx='`+r1(l[0])+`' cy='`+r1(l[1])+`' r='5.5' fill='`+OR+`'><\/circle>`;var up=l[1]>(T+B)\/2?-1:1;o+=pen([[l[0]-6,l[1]+12*up],[l[0]-30,l[1]+(up>0?28:-40)]],{w:.7,op:.6,a:.4,dbl:false,d:1.5});o+=txt(l[0]-32,l[1]+(up>0?40:-46),sign(v[n-1],'%')+' in '+MON[rows[n-1].m].charAt(0)+MON[rows[n-1].m].slice(1).toLowerCase(),{s:13,an:'end',c:OR,op:1,d:1.6});rows.forEach(function(r,i){o+=txt(X(i),B+26,MON[r.m],{s:10,f:SANS,op:.72});});return svg(W,H,o,aria('Sales vs. last year',rows,key,'%'));}function chartTowers(rows,key){R=rng(5);var W=400,H=250,L=24,Rt=380,T=34,B=190,n=rows.length;var v=rows.map(function(r){return r[key];});var hi=Math.max(1,Math.max.apply(0,v.map(Math.abs)))*1.12;var slot=(Rt-L)\/n;var bw=Math.min(34,slot*.7);var o='';var Y=function(q){return B-Math.max(0,q)\/hi*(B-T);};v.forEach(function(q,i){var x=L+i*slot+(slot-bw)\/2;var t=Y(q);var last=i===n-1;var d=.1+i*.12;var g='';g+=wash([[x,t],[x+bw,t],[x+bw,B],[x,B]],last?OR:COOL,last?.55:.42,{cls:'',d:d});g+=pen([[x,B],[x,t],[x+bw,t],[x+bw,B]],{w:1,op:.85,a:.6,cls:'',dbl:true});for(var f=t+10;f<B-6;f+=10){g+=pen([[x+3,f],[x+bw-3,f]],{w:.4,op:.25,a:.3,dbl:false,cls:''});}for(var c=0;c<3;c++){for(var fl=0;fl<Math.floor((B-t-14)\/20);fl++){g+=`<rect x='`+r1(x+5+c*(bw-10)\/3)+`' y='`+r1(t+8+fl*20)+`' width='4' height='6' `+`fill='`+INK+`' fill-opacity='.18'><\/rect>`;}}if(last){g+=pen([[x+bw\/2,t],[x+bw\/2,t-16]],{w:.8,op:.8,a:.3,cls:''})+pen([[x+6,t],[x+6,t-5],[x+bw-6,t-5],[x+bw-6,t]],{w:.7,op:.7,a:.3,dbl:false,cls:''});}else if(i%3===2){g+=pen([[x,t],[x+bw\/2,t-10],[x+bw,t]],{w:.8,op:.7,a:.4,dbl:false,cls:''});}o+=`<g class='grow' `+`style='--d:`+d+`s'>`+g+`<\/g>`;o+=txt(x+bw\/2,t-(last?22:i%3===2?14:8),sign(q,'%'),{s:last?12:10,c:last?OR:INK,op:last?1:.7,d:d+.7});});o+=pen([[L-14,B],[Rt+14,B]],{w:1.1,op:.9,a:.6});o+=wash([[L,B+2],[Rt,B+2],[Rt-10,B+16],[L+10,B+12]],COOL,.18,{layers:1,d:.6});for(var k=0;k<6;k++){var y=B+6+k*3.2;var x0=L+R()*200;o+=pen([[x0,y],[x0+30+R()*90,y]],{w:.4,op:.3-k*.03,a:.3,dbl:false,cls:'fade',d:.8});}rows.forEach(function(r,i){o+=txt(L+i*slot+slot\/2,B+40,MON[r.m],{s:10,f:SANS,op:.72});});return svg(W,H,o,aria('Active listings vs. last year',rows,key,'%'));}function chartRoofs(rows,key){R=rng(13);var W=400,H=230,L=24,Rt=380,B=182,n=rows.length;var v=rows.map(function(r){return r[key];});var slot=(Rt-L)\/n;var bw=Math.min(50,slot*.8);var wallH=58;var mx=Math.max(1,Math.max.apply(0,v.map(Math.abs)));var k=44\/mx;var o='';v.forEach(function(q,i){var x=L+i*slot+(slot-bw)\/2;var top=B-wallH;var peak=top-q*k;var last=i===n-1;var d=.1+i*.14;var g='';var poly=[[x,B],[x,top],[x+bw\/2,peak],[x+bw,top],[x+bw,B]];g+=wash(poly,last?OR:WARM,last?.5:.34,{cls:''});g+=pen(poly,{w:1,op:.85,a:.5,cls:''});g+=pen([[x+bw\/2-7,B],[x+bw\/2-7,B-20],[x+bw\/2+7,B-20],[x+bw\/2+7,B]],{w:.6,op:.6,a:.2,dbl:false,cls:''});g+=`<rect x='`+r1(x+7)+`' y='`+r1(top+10)+`' width='8' height='11' `+`fill='`+INK+`' fill-opacity='.2'><\/rect>`+`<rect x='`+r1(x+bw-15)+`' y='`+r1(top+10)+`' width='8' height='11' `+`fill='`+INK+`' fill-opacity='.2'><\/rect>`;g+=txt(x+bw\/2,Math.min(peak,top)-7,sign(q,'%'),{s:last?12:10,c:last?OR:INK,op:last?1:.7,cls:''});o+=`<g class='rise' `+`style='--d:`+d+`s'>`+g+`<\/g>`;o+=txt(x+bw\/2,B+22,MON[rows[i].m],{s:10,f:SANS,op:.72});});o+=pen([[L-14,B],[Rt+14,B]],{w:1.1,op:.9,a:.5});return svg(W,H,o,aria('Single-family median price vs. last year',rows,key,'%'));}function parseCSV(t){var rows=[],row=[],f='',q=false;for(var i=0;i<t.length;i++){var c=t[i];if(q){if(c===DQ){if(t[i+1]===DQ){f+=DQ;i++;}else{q=false;}}else{f+=c;}}else if(c===DQ){q=true;}else if(c===','){row.push(f);f='';}else if(c===NL||c===CR){if(c===CR&&t[i+1]===NL){i++;}row.push(f);rows.push(row);row=[];f='';}else{f+=c;}}if(f!==''||row.length){row.push(f);rows.push(row);}return rows.filter(function(r){return r.some(function(x){return x.trim()!=='';});});}function parseMonth(s){s=String(s||'').trim();var m=s.match(\/^([0-9]{4})-([0-9]{1,2})\/);if(m){return{y:+m[1],m:+m[2]-1};}m=s.match(\/^([A-Za-z\u00e9\u00fb]+)[.]?[ ]+([0-9]{4})$\/);if(m){var k=m[1].slice(0,3).toUpperCase();var fr={JAN:0,F\u00c9V:1,FEV:1,MAR:2,AVR:3,MAI:4,JUI:5,AO\u00db:7,AOU:7,SEP:8,OCT:9,NOV:10,D\u00c9C:11,DEC:11};var idx=MON.indexOf(k);if(idx<0&&fr[k]!=null){idx=fr[k];}if(idx>=0){return{y:+m[2],m:idx};}}return null;}function normalize(hist,text){var rows=hist.map(function(r){var p=parseMonth(r.month);if(!p){return null;}return{y:p.y,m:p.m,label:MONL[p.m]+' '+p.y,sales:num(r.sales),sales_yoy:num(r.sales_yoy),listings:num(r.listings),listings_yoy:num(r.listings_yoy),sf_median:num(r.sf_median),sf_yoy:num(r.sf_yoy),sf_days:num(r.sf_days)};}).filter(Boolean);rows.sort(function(a,b){return((a.y*12+a.m)-(b.y*12+b.m));});var t={};for(var k in FALLBACK.text){t[k]=FALLBACK.text[k];}for(k in text){if(String(text[k]).trim()!==''){t[k]=String(text[k]).trim();}}if(Object.keys(text).length&&!text.analysis_updated){t.analysis_updated=t.updated;}return{rows:rows,text:t};}function fromCSV(hc,tc){var h=parseCSV(hc);var head=h .shift().map(function(x){return x .trim().toLowerCase();});var hist=h.map(function(r){var o={};head.forEach(function(k,i){o[k]=r[i];});return o;});var text={};parseCSV(tc||'').forEach(function(r,i){if(i===0&&\/^key$\/i.test((r[0]||'').trim())){return;}if(r[0]){text[r[0].trim().toLowerCase()]=r[1]||'';}});return normalize(hist,text);}var state={cardsIn:{},io:null};var shownSig='';function countUp(n){var to=num(n.getAttribute('data-to'));if(!isFinite(to)){n.textContent='\u2013';return;}if(reduce){n.textContent=sign(to,'%');return;}var t0=null;var dec=Math.round(to)!==to;function f(t){if(!t0){t0=t;}var k=Math.min(1,(t-t0)\/1200);var e=1-Math.pow(1-k,3);var v=to*e;n.textContent=sign(dec?Math.round(v*10)\/10:Math.round(v),'%');if(k<1){requestAnimationFrame(f);}}requestAnimationFrame(f);}function observe(){var box=$('[data-cards]');if(state.io){state.io.disconnect();}if(reduce||!('IntersectionObserver' in window)){[].forEach.call(box.querySelectorAll('.rmk-card'),function(c){c.classList.add('is-in');countUp(c.querySelector('.rmk-num'));});return;}root.classList.add('anim');state.io=new IntersectionObserver(function(es){es.forEach(function(e){if(!e.isIntersecting&&e.boundingClientRect.top>0){return;}var t=e.target;var k=t.getAttribute('data-k');if(!state.cardsIn[k]){state.cardsIn[k]=true;t.classList.add('is-in');countUp(t.querySelector('.rmk-num'));}state.io.unobserve(t);});},{threshold:.35});[].forEach.call(box.querySelectorAll('.rmk-card'),function(c){if(!state.cardsIn[c.getAttribute('data-k')]){state.io.observe(c);}});box.onscroll=function(){var cs=box.querySelectorAll('.rmk-card');var best=0;var bd=1e9;[].forEach.call(cs,function(c,i){var d=Math.abs(c.offsetLeft-20-box.scrollLeft);if(d<bd){bd=d;best=i;}});[].forEach.call($('[data-dots]').children,function(b,i){b.setAttribute('aria-current',i===best?'true':'false');});};}function measure(){var W=root.clientWidth||window.innerWidth||390;var cw=window.innerWidth<900?(W-40)*.82-34:(W-48)\/3-42;SC=Math.max(.3,Math.min(1,cw\/400));}function render(D,quiet){measure();lastD=D;var sl=0;var bx=$('[data-cards]');if(bx){sl=bx.scrollLeft;}var rows=D.rows;var T=D.text;var shown=Math.max(2,Math.min(24,parseInt(T.months_shown,10)||6));var last=rows.slice(-shown);if(!last.length){return;}var L=last[last.length-1];var defs=`<svg width='0' height='0' `+`style='position:absolute' `+`aria-hidden='true'>`+`<defs>`+`<filter id='rmk-wc' `+`x='-10%' y='-10%' `+`width='120%' height='120%'>`+`<feTurbulence `+`type='fractalNoise' `+`baseFrequency='0.04' `+`numOctaves='3' `+`seed='7' `+`result='n'><\/feTurbulence>`+`<feDisplacementMap `+`in='SourceGraphic' `+`in2='n' `+`scale='10' `+`xChannelSelector='R' `+`yChannelSelector='G'><\/feDisplacementMap>`+`<feGaussianBlur `+`stdDeviation='0.7'><\/feGaussianBlur>`+`<\/filter>`+`<\/defs>`+`<\/svg>`;var cards=[{k:'sales',val:L.sales_yoy,lab:'Sales',cmp:'vs. last year',svg:chartLine(last,'sales_yoy'),note:T.note_sales},{k:'supply',val:L.listings_yoy,lab:'Supply',cmp:'active listings vs. last year',svg:chartTowers(last,'listings_yoy'),note:T.note_supply},{k:'prices',val:L.sf_yoy,lab:'Prices',cmp:'single-family median vs. last year',svg:chartRoofs(last,'sf_yoy'),note:T.note_prices}];var box=$('[data-cards]');box.innerHTML=defs;cards.forEach(function(c){var numEl=el('p',{'class':'rmk-num','data-to':c.val},[reduce||state.cardsIn[c.k]?sign(c.val,'%'):sign(0,'%')]);var chart=el('div',{'class':'rmk-chart'});chart.innerHTML=c.svg;var card=el('article',{'class':'rmk-card'+(state.cardsIn[c.k]?' is-in':''),'data-k':c.k,'aria-label':c.lab},[el('div',{'class':'rmk-top'},[numEl,el('div',{},[el('p',{'class':'rmk-lab'},[c.lab]),el('p',{'class':'rmk-cmp'},[c.cmp])])]),chart,el('p',{'class':'rmk-hand'},[c.note||''])]);box.appendChild(card);});var dots=$('[data-dots]');dots.innerHTML='';cards.forEach(function(c,i){var b=el('button',{type:'button','aria-label':'Show '+c.lab,'aria-current':i===0?'true':'false'},[el('span')]);b.addEventListener('click',function(){var cd=box.children[i+1];box.scrollTo({left:cd.offsetLeft-20,behavior:reduce?'auto':'smooth'});});dots.appendChild(b);});box.scrollLeft=sl;observe();if(box.onscroll){box.onscroll();}if(!quiet){window.RaissianMarketData=D;window.dispatchEvent(new CustomEvent('raissian-market-updated',{detail:D}));}}var rt=0;window.addEventListener('resize',function(){clearTimeout(rt);rt=setTimeout(function(){var o=SC;measure();if(lastD&&Math.abs(SC-o)>.08){render(lastD,true);}},250);});function show(D,sig){if(sig===shownSig){return;}shownSig=sig;render(D);}var hURL=(root.getAttribute('data-history-csv')||'').trim();var tURL=(root.getAttribute('data-text-csv')||'').trim();var jURL=(root.getAttribute('data-json')||'').trim();var sheet=(root.getAttribute('data-sheet')||'').trim();var KEY='rmk-data-v2';function okUrl(u){return u.indexOf('https:\/\/')===0||(u.charAt(0)==='\/'&&u.charAt(1)!=='\/');}if(!jURL&&!hURL&&sheet.indexOf(GOOG+'spreadsheets\/d\/')===0){var sid=sheet.split('\/d\/')[1].split('\/')[0].split('?')[0];var gv=GOOG+'spreadsheets\/d\/'+sid+'\/gviz\/tq?tqx=out:csv&headers=1&sheet=';hURL=gv+'history';tURL=gv+'text';}var SRC=jURL||hURL;function bust(u){return u+(u.indexOf('?')<0?'?':'&')+'_='+Math.floor(Date.now()\/600000);}function get(u){return fetch(bust(u)).then(function(r){if(!r.ok){throw 0;}return r.text();});}function fromJSON(t){var j=JSON.parse(t);if(j&&j.content&&typeof j.content.rendered==='string'){var pre=new DOMParser().parseFromString(j.content.rendered,'text\/html').querySelector('pre');if(!pre){throw 0;}j=JSON.parse(pre.textContent);}return normalize(j.history||[],j.text||{});}function build(p){return p.j!=null?fromJSON(p.j):fromCSV(p.h,p.t);}function save(p){try{localStorage.setItem(KEY,JSON.stringify(p));}catch(e){}}var first=normalize(FALLBACK.history,{});var cached=null;if(SRC){try{var c=JSON.parse(localStorage.getItem(KEY)||'null');if(c&&c.url===SRC){cached=c;}}catch(e){}}if(cached){try{show(build(cached),cached.sig);}catch(e){show(first,'fb');}}else{show(first,'fb');}if(SRC&&okUrl(SRC)){if(jURL){get(jURL).then(function(t){var D=fromJSON(t);if(!D.rows.length){throw 0;}show(D,'j'+t);save({url:SRC,j:t,sig:'j'+t});}).catch(function(){});}else{Promise.all([get(hURL),tURL&&okUrl(tURL)?get(tURL):Promise.resolve('')]).then(function(res){var D=fromCSV(res[0],res[1]);if(!D.rows.length){throw 0;}show(D,'c'+res[0]+res[1]);save({url:SRC,h:res[0],t:res[1],sig:'c'+res[0]+res[1]});}).catch(function(){});}}})();<\/script>\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-65cf359 e-con-full e-grid e-con e-child\" data-id=\"65cf359\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0cb18cf elementor-widget elementor-widget-html\" data-id=\"0cb18cf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class='rmk-weather-only' id='rmk-weather-only'><div class='rmk-weather'><div class='rmk-gauge' data-gauge><\/div><div class='rmk-wtext'><p class='rmk-eyebrow'>Market weather<\/p><p class='rmk-wlabel' data-wlabel><\/p><p class='rmk-wbody' data-wtext><\/p><\/div><\/div><\/div><!-- MARKET PULSE 2\/3 \u00b7 market weather gauge. Reads the data loaded by widget 1. --><link rel='stylesheet' href='https:\/\/fonts.googleapis.com\/css2?family=Architects+Daughter&display=swap'><style>.rmk-weather-only{--ink:#111;--muted:rgba(17,17,17,.64);--hair:rgba(17,17,17,.14);--or:#C96A32;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;}.rmk-weather-only *{box-sizing:border-box;}.rmk-weather-only p{margin:0;padding:0;}.rmk-weather{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--hair);margin-top:8px;}.rmk-eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;}.rmk-wlabel{font-size:16px;font-weight:600;margin-top:4px!important;}.rmk-wbody{font-size:13px;line-height:1.4;color:var(--muted);margin-top:4px!important;}.rmk-gauge svg{display:block;width:100%;height:auto;overflow:visible;}@media(min-width:900px){.rmk-weather{grid-template-columns:230px 1fr;border-top:0;margin-top:0;padding-top:20px;}}@media(max-width:899px){.rmk-weather{grid-template-columns:46% 1fr;margin-top:0;}}@media(min-width:600px) and (max-width:899px){.rmk-weather{grid-template-columns:230px 1fr;}}<\/style><script>(function(){'use strict';var root=document.getElementById('rmk-weather-only');if(!root||root.__rmkWeather){return;}root.__rmkWeather=true;var FALLBACK={text:{weather_position:'55',weather_label:'Moving toward balance',weather_text:'Listings keep rising while sales slow down. Buyers have more choice, and single-family prices are flat compared with last year.'}};var INK='#2a2a28';var OR='#C96A32';var WARM='#D6A27A';var COOL='#8FA6BC';var HAND='Architects Daughter, Helvetica Neue, sans-serif';var SANS='Helvetica Neue, Helvetica, sans-serif';var R;var lastW=null;function rng(a){return function(){a|=0;a=a+0x6D2B79F5|0;var t=Math.imul(a^a>>>15,1|a);t=t+Math.imul(t^t>>>7,61|t)^t;return((t^t>>>14)>>>0)\/4294967296;};}function j(a){return(R()-.5)*2*a;}function r1(n){return Math.round(n*10)\/10;}function num(v){if(typeof v==='number'){return v;}var n=parseFloat(String(v==null?'':v).replace(\/[^0-9.\u2212-]\/g,'').replace('\u2212','-'));return isFinite(n)?n:NaN;}function pathD(p,a){var d='M'+r1(p[0][0]+j(a*.4))+' '+r1(p[0][1]+j(a*.4));for(var i=1;i<p.length;i++){var s=p[i-1];var q=p[i];d+='Q'+r1((s[0]+q[0])\/2+j(a))+' '+r1((s[1]+q[1])\/2+j(a))+' '+r1(q[0]+j(a*.4))+' '+r1(q[1]+j(a*.4));}return d;}function pen(p,o){o=o||{};var w=o.w||1;var op=o.op==null?.85:o.op;var a=o.a==null?.8:o.a;var c=o.c||INK;var cls=o.cls||'';var d=o.d||0;var path=pathD(p,a);var s=`<path `+`class='`+cls+`' `+`style='--d:`+d+`s' `+`d='`+path+`' `+`fill='none' `+`stroke='`+c+`' `+`stroke-width='`+w+`' `+`stroke-opacity='`+op+`' `+`stroke-linecap='round' `+`stroke-linejoin='round'><\/path>`;if(o.dbl!==false){s+=`<path `+`class='`+cls+`' `+`style='--d:`+(d+.12)+`s' `+`d='`+pathD(p,a*1.3)+`' `+`fill='none' `+`stroke='`+c+`' `+`stroke-width='`+(w*.5)+`' `+`stroke-opacity='`+(op*.45)+`' `+`stroke-linecap='round'><\/path>`;}return s;}function wash(p,c,op,o){o=o||{};var s='';var n=o.layers||2;for(var k=0;k<n;k++){var d='M'+p.map(function(q){return(r1(q[0]+j(1.5))+' '+r1(q[1]+j(1.5)));}).join('L')+'Z';s+=`<path `+`d='`+d+`' `+`fill='`+c+`' `+`fill-opacity='`+(k?op*.6:op)+`' `+`filter='url(#rmk-wc)'><\/path>`;}return s;}function txt(x,y,t,o){o=o||{};return(`<text `+`x='`+r1(x)+`' `+`y='`+r1(y)+`' `+`font-family='`+(o.f||HAND)+`' `+`font-size='`+(o.s||11)+`' `+`font-weight='`+(o.wt||400)+`' `+`fill='`+(o.c||INK)+`' `+`fill-opacity='`+(o.op==null?.75:o.op)+`' `+`text-anchor='`+(o.an||'middle')+`'>`+t+`<\/text>`);}function svg(w,h,body,label){return(`<svg `+`viewBox='0 -26 `+w+` `+(h+26)+`' `+`role='img' `+`aria-label='`+label+`'>`+body+`<\/svg>`);}function chartGauge(pos,label,fs){R=rng(11);var W=400;var H=226;var cx=200;var cy=190;var Rr=150;var o='';var p;function pt(q,r){var a=Math.PI*(1-q\/100);return[cx+r*Math.cos(a),cy-r*Math.sin(a)];}var band=[];var zone=[];var arc=[];var inner=[];for(p=0;p<=100;p+=5){band.push(pt(p,Rr));arc.push(pt(p,Rr));inner.push(pt(p,Rr-26));}for(p=100;p>=0;p-=5){band.push(pt(p,Rr-26));}for(p=42;p<=58;p+=2){zone.push(pt(p,Rr));}for(p=58;p>=42;p-=2){zone.push(pt(p,Rr-26));}o+=wash(band,COOL,.22,{layers:2});o+=wash(zone,WARM,.45,{layers:2});o+=pen(arc,{w:1.1,op:.85,a:.6});o+=pen(inner,{w:.6,op:.5,a:.5,dbl:false});o+=pen([[cx-Rr-10,cy],[cx+Rr+10,cy]],{w:1,op:.85,a:.5});for(p=0;p<=100;p+=5){var ln=p%25===0?12:6;o+=pen([pt(p,Rr),pt(p,Rr+ln)],{w:p%25===0?.7:.45,op:.7,a:.15,dbl:false});}o+=txt(cx-Rr-12,cy+24,'SELLER',{s:fs,f:SANS,wt:600,op:.7,an:'start'});o+=txt(cx+Rr+12,cy+24,'BUYER',{s:fs,f:SANS,wt:600,op:.7,an:'end'});var bq=pt(50,Rr+26);o+=txt(bq[0],bq[1],'BALANCED',{s:fs,f:SANS,wt:600,op:.7});var needlePoint=pt(pos,Rr-34);o+=pen([[cx,cy],needlePoint],{w:1.6,op:.95,a:.3,dbl:true});o+=`<circle `+`cx='`+r1(needlePoint[0])+`' `+`cy='`+r1(needlePoint[1])+`' `+`r='6' `+`fill='`+OR+`'><\/circle>`;o+=`<circle `+`cx='`+cx+`' `+`cy='`+cy+`' `+`r='6' `+`fill='#F5F1EA' `+`stroke='`+INK+`' `+`stroke-width='1'><\/circle>`;o+=`<circle `+`cx='`+cx+`' `+`cy='`+cy+`' `+`r='1.6' `+`fill='`+INK+`'><\/circle>`;return svg(W,H,o,'Market weather: '+Math.round(pos)+' on a scale from 0 seller to 100 buyer. '+label);}function draw(data){lastW=data;var T=(data&&data.text)||FALLBACK.text;var pos=Math.max(0,Math.min(100,num(T.weather_position)||50));var g=root.querySelector('[data-gauge]');var gw=g.clientWidth||150;var fs=Math.round(Math.max(17,Math.min(30,12\/(gw\/400))));var filter=`<svg width='0' height='0' `+`style='position:absolute' `+`aria-hidden='true'>`+`<defs>`+`<filter id='rmk-wc' `+`x='-10%' y='-10%' `+`width='120%' height='120%'>`+`<feTurbulence `+`type='fractalNoise' `+`baseFrequency='0.04' `+`numOctaves='3' `+`seed='7' `+`result='n'><\/feTurbulence>`+`<feDisplacementMap `+`in='SourceGraphic' `+`in2='n' `+`scale='10' `+`xChannelSelector='R' `+`yChannelSelector='G'><\/feDisplacementMap>`+`<feGaussianBlur `+`stdDeviation='0.7'><\/feGaussianBlur>`+`<\/filter>`+`<\/defs>`+`<\/svg>`;g.innerHTML=filter+chartGauge(pos,T.weather_label,fs);root.querySelector('[data-wlabel]').textContent=T.weather_label||'';root.querySelector('[data-wtext]').textContent=T.weather_text||'';}draw(window.RaissianMarketData||{text:FALLBACK.text});window.addEventListener('raissian-market-updated',function(e){if(e.detail){draw(e.detail);}});var rt=0;window.addEventListener('resize',function(){clearTimeout(rt);rt=setTimeout(function(){draw(lastW||window.RaissianMarketData||{text:FALLBACK.text});},250);});})();<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8d8ffe0 elementor-widget elementor-widget-html\" data-id=\"8d8ffe0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- MARKET PULSE 3\/3 \u00b7 what it means (collapsible on phones). Reads the data loaded by widget 1. --><div class='rmk-means-only' id='rmk-means-only'><button class='rmk-means-toggle' type='button' aria-expanded='false' aria-controls='rmk-means-content'><span>WHAT IT MEANS<\/span><span class='rmk-means-plus' aria-hidden='true'>+<\/span><\/button><div class='rmk-means-content' id='rmk-means-content'><div class='rmk-read'><p class='rmk-eyebrow'> What it means <\/p><div class='rmk-tabs' role='tablist' aria-label='What the market means' data-tabs><\/div><div class='rmk-readtext' role='tabpanel' id='rmk-read-panel'><p class='rmk-readhead' data-readhead><\/p><p class='rmk-readbody' data-readbody><\/p><\/div><\/div><\/div><\/div><style>.rmk-means-only{--ink:#111;--muted:rgba(17,17,17,.64);--hair:rgba(17,17,17,.14);--or:#C96A32;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;}.rmk-means-only *{box-sizing:border-box;}.rmk-means-only p{margin:0;padding:0;}.rmk-means-toggle{display:none;}.rmk-means-content{display:block;}.rmk-means-only .rmk-read{padding:14px 0 4px;border-top:1px solid var(--hair);}.rmk-means-only .rmk-eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;}.rmk-means-only .rmk-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;}.rmk-means-only .rmk-tabs button{min-height:44px;margin:0;padding:0 4px;border:0;border-bottom:1px solid rgba(17,17,17,.2);border-radius:0;background:transparent;box-shadow:none;font-family:inherit;font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink);opacity:.6;cursor:pointer;transition:opacity .2s;}.rmk-means-only .rmk-tabs button[aria-selected='true']{opacity:1;font-weight:600;border-bottom:1.5px solid var(--ink);}.rmk-means-only .rmk-tabs button:focus{outline:none;}.rmk-means-only .rmk-tabs button:focus-visible{outline:2px solid var(--or);outline-offset:2px;}.rmk-means-only .rmk-readtext{margin-top:10px;font-size:14px;line-height:1.45;transition:opacity .18s;}.rmk-means-only .rmk-readhead{font-weight:600;}.rmk-means-only .rmk-readbody{color:var(--ink);}@media(min-width:900px){.rmk-means-only .rmk-read{border-top:0;padding-top:20px;}}@media(max-width:899px){.rmk-means-toggle{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;margin:0;padding:0;border:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);border-radius:0;background:transparent;box-shadow:none;color:var(--ink);font-family:inherit;font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;text-align:left;}.rmk-means-toggle:focus{outline:none;}.rmk-means-toggle:focus-visible{outline:2px solid var(--or);outline-offset:2px;}.rmk-means-plus{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:22px;line-height:1;font-weight:300;color:var(--or);transition:transform .25s ease;}.rmk-means-content{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .35s ease;}.rmk-means-content>.rmk-read{min-height:0;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-5px);transition:opacity .25s ease,transform .3s ease,visibility 0s linear .35s,padding .35s ease;}.rmk-means-only.is-open .rmk-means-content{grid-template-rows:1fr;}.rmk-means-only.is-open .rmk-means-content>.rmk-read{opacity:1;visibility:visible;transform:none;transition:opacity .25s ease,transform .3s ease,visibility 0s,padding .35s ease;}.rmk-means-only.is-open .rmk-means-plus{transform:rotate(45deg);}.rmk-means-only .rmk-read .rmk-eyebrow{display:none;}.rmk-means-only .rmk-read{padding:10px 0 8px;border-top:0;}}@media(prefers-reduced-motion:reduce){.rmk-means-only *{transition:none!important;}}@media(max-width:899px){.rmk-means-only .rmk-means-content>.rmk-read{padding-top:0;padding-bottom:0;}.rmk-means-only.is-open .rmk-means-content>.rmk-read{padding-top:10px;padding-bottom:8px;}}<\/style><script>(function(){'use strict';var root=document.getElementById('rmk-means-only');if(!root||root.__rmkMeans){return;}root.__rmkMeans=true;var FALLBACK={text:{buying_title:'More choice, less urgency.',buying_text:'With more homes on the market and fewer sales, buyers have more time to compare properties and more room to negotiate.',selling_title:'Pricing matters more.',selling_text:'More listings and slower sales mean more competition for every property. Accurate pricing and strong presentation now make the difference.',investing_title:'A market worth studying.',investing_text:'A more balanced market leaves room for careful negotiation. Location, building quality, rental demand and renovation potential still decide the outcome.'}};var state={read:'buying'};var reduce=!!(window.matchMedia&&matchMedia('(prefers-reduced-motion: reduce)').matches);var toggle=root.querySelector('.rmk-means-toggle');toggle.addEventListener('click',function(){var open=root.classList.toggle('is-open');toggle.setAttribute('aria-expanded',open?'true':'false');toggle.blur();});function showRead(T,k,anim){state.read=k;var tabs=root.querySelector('[data-tabs]');[].forEach.call(tabs.children,function(b){var active=b.id==='rmk-tab-'+k;b.setAttribute('aria-selected',active?'true':'false');b.tabIndex=active?0:-1;if(active){root .querySelector('#rmk-read-panel').setAttribute('aria-labelledby',b.id);}});var panel=root.querySelector('#rmk-read-panel');function put(){root .querySelector('[data-readhead]').textContent=T[k+'_title']||'';root .querySelector('[data-readbody]').textContent=T[k+'_text']||'';panel.style.opacity='';}if(anim&&!reduce){panel.style.opacity='0';setTimeout(put,180);}else{put();}}function render(D){var T=(D&&D.text)||FALLBACK.text;var tabs=root.querySelector('[data-tabs]');tabs.innerHTML='';[['buying','Buying'],['selling','Selling'],['investing','Investing']].forEach(function(t){var b=document.createElement('button');b.type='button';b.setAttribute('role','tab');b.id='rmk-tab-'+t[0];b.setAttribute('aria-controls','rmk-read-panel');b.setAttribute('aria-selected',state.read===t[0]?'true':'false');b.tabIndex=state.read===t[0]?0:-1;b.textContent=t[1];b.addEventListener('click',function(){showRead(T,t[0],true);b.blur();});tabs.appendChild(b);});tabs.onkeydown=function(e){var ks=['buying','selling','investing'];var i=ks.indexOf(state.read);var n=e.key==='ArrowRight'?(i+1)%3:e.key==='ArrowLeft'?(i+2)%3:-1;if(n<0)return;e.preventDefault();showRead(T,ks[n],true);tabs .children[n].focus();};showRead(T,state.read,false);}render(window.RaissianMarketData||{text:FALLBACK.text});window.addEventListener('raissian-market-updated',function(e){if(e.detail){render(e.detail);}});})();<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b71e0b9 elementor-widget elementor-widget-html\" data-id=\"b71e0b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- MARKET PULSE \u00b7 small source and date lines. Reads the data loaded by widget 1. Sits inside the weather\/means grid: under the weather on phones, full width below both on larger screens. --><div class='rmk-source-only' id='rmk-source-only'><p data-l1><\/p><p data-l2><\/p><\/div><style>.rmk-source-only{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;padding:2px 0 0;}.rmk-source-only p{margin:0;font-size:11px;line-height:1.5;color:rgba(17,17,17,.58);}.rmk-source-only p+p{font-size:10px;letter-spacing:.08em;text-transform:uppercase;}.elementor-element.elementor-element-b71e0b9{grid-column:1\/-1;}@media(min-width:768px){.elementor-element.elementor-element-b71e0b9{margin-top:12px;}}@media(max-width:767px){.elementor-element.elementor-element-b71e0b9{order:1;}.elementor-element.elementor-element-8d8ffe0{order:2;}}<\/style><script>(function(){'use strict';var r=document.getElementById('rmk-source-only');if(!r||r.__rmkSrc){return;}r.__rmkSrc=true;var A=r.querySelector('[data-l1]');var B=r.querySelector('[data-l2]');function draw(D){var T=(D&&D.text)||{};A.textContent='Market data \u00b7 AI-assisted analysis \u00b7 Updated monthly';var p=[];if(T.updated){p.push('Data published '+T.updated);}if(T.analysis_updated){p.push('Commentary updated '+T.analysis_updated);}if(T.source){p.push('Source '+T.source);}B.textContent=p.join(' \u00b7 ');}draw(window.RaissianMarketData||{text:{updated:'October 2, 2026',analysis_updated:'October 6, 2026',source:'APCIQ \/ Centris'}});window.addEventListener('raissian-market-updated',function(e){if(e.detail){draw(e.detail);}});})();<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-d9ad84e e-con e-atomic-element e-flexbox-base e-default-div e-a040a4f \" data-id=\"d9ad84e\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"d9ad84e\">\n    \t\t<div class=\"elementor-element elementor-element-2f775e2 elementor-widget elementor-widget-text-editor\" data-id=\"2f775e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Rest of the page<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-1b6f550 e-con e-atomic-element e-flexbox-base e-default-div e-559ab42 \" data-id=\"1b6f550\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"1b6f550\">\n    \t\t<div class=\"elementor-element elementor-element-6d894e4 elementor-widget elementor-widget-html\" data-id=\"6d894e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n\n    const widget = document.getElementById(\"raissian-name\");\n\n    if (!widget) return;\n\n    const heading = widget.querySelector(\"h1, h2, h3, h4, h5, h6\");\n\n    if (!heading) return;\n\n    const isMobile = window.innerWidth <= 767;\n\n    \/*\n     * Phone: two lines from the very first letter.\n     * Desktop: one line.\n     *\/\n    const lines = isMobile\n        ? [\"Ehsan\", \"Raissianzadeh\"]\n        : [\"Ehsan Raissianzadeh\"];\n\n    heading.setAttribute(\"aria-label\", \"Ehsan Raissianzadeh\");\n\n    \/* Hide the heading while the intro is playing *\/\n    heading.style.visibility = \"hidden\";\n    heading.textContent = \"\";\n\n    \/*\n     * Each line holds its complete text invisibly, so the heading has its\n     * final size from the start. Nothing moves while the name is typed.\n     *\/\n    const rows = lines.map(function (text) {\n\n        const row   = document.createElement(\"span\");\n        const typed = document.createElement(\"span\");\n        const rest  = document.createElement(\"span\");\n\n        row.setAttribute(\"aria-hidden\", \"true\");\n        row.style.display = \"block\";\n\n        rest.style.visibility = \"hidden\";\n        rest.textContent = text;\n\n        row.appendChild(typed);\n        row.appendChild(rest);\n        heading.appendChild(row);\n\n        return { typed: typed, rest: rest, text: text };\n    });\n\n    \/* Start typing ONLY after the Raissian intro is finished. *\/\n    document.addEventListener(\n        \"raissianIntroFinished\",\n        function () {\n\n            setTimeout(function () {\n\n                heading.style.visibility = \"visible\";\n\n                typeLine(0, 0);\n\n            }, 1);\n\n        },\n        { once: true }\n    );\n\n    function typeLine(r, i) {\n\n        if (r >= rows.length) return;\n\n        const row = rows[r];\n\n        if (i > row.text.length) {\n\n            \/* short pause, then the next line starts from its first letter *\/\n            setTimeout(function () { typeLine(r + 1, 0); }, 105);\n\n            return;\n        }\n\n        row.typed.textContent = row.text.substring(0, i);\n        row.rest.textContent  = row.text.substring(i);\n\n        setTimeout(function () { typeLine(r, i + 1); }, 56);\n    }\n\n});\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c3d5f70 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-html\" data-id=\"c3d5f70\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script src=\"https:\/\/raissian.ca\/wp-content\/uploads\/Skyline\/skyline-bg.js\" defer><\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7c1d4e elementor-widget elementor-widget-html\" data-id=\"a7c1d4e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\/* ---------- Quick-contact buttons: Free consultation (top), Call, Email ---------- *\/\r\n.qc-c{position:fixed;right:16px;z-index:9990;width:42px;height:42px;box-sizing:border-box;border-radius:21px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-decoration:none!important;outline:none;border:0;padding:0;margin:0;cursor:pointer;background:#C96A32;color:#F7F5F0;box-shadow:0 8px 22px rgba(33,45,69,.28),0 1px 3px rgba(33,45,69,.2);-webkit-tap-highlight-color:transparent;visibility:hidden}\r\n.qc-c:focus-visible{outline:2px solid #C96A32;outline-offset:3px}\r\n.qc-c:active{filter:brightness(.94)}\r\n.qc-ico{display:flex;align-items:center;justify-content:center;width:42px;height:42px;flex:0 0 42px;transition:opacity .25s ease}\r\n.qc-c svg{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}\r\n\/* stack, bottom to top: Email, Call, Free consultation *\/\r\n.qc-mail{bottom:calc(16px + env(safe-area-inset-bottom,0px))}\r\n.qc-call{bottom:calc(68px + env(safe-area-inset-bottom,0px))}\r\n.qc-book{bottom:calc(120px + env(safe-area-inset-bottom,0px));transition:height .6s cubic-bezier(.22,1,.36,1)}\r\n\/* vertical label inside the Free consultation button *\/\r\n.qc-lab{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;white-space:nowrap;opacity:0;text-transform:uppercase;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:700;font-size:14px;letter-spacing:.1em;line-height:1;color:#F7F5F0;pointer-events:none;transition:opacity .25s ease}\r\n.qc-book.qc-open{height:min(214px,calc(100vh - 230px))}\r\n.qc-book.qc-open .qc-ico{opacity:0}\r\n.qc-book.qc-open .qc-lab{opacity:1;transition:opacity .35s ease .25s}\r\n\/* 1. all three fall in from the top; Email lands first, Free consultation last *\/\r\n.qc-go .qc-c{visibility:visible;animation:qcDrop 1.1s both}\r\n.qc-go .qc-call{animation-delay:.12s}\r\n.qc-go .qc-book{animation-delay:.24s}\r\n@keyframes qcDrop{\r\n0%{transform:translate3d(0,-110vh,0);animation-timing-function:cubic-bezier(.55,0,.8,.5)}\r\n72%{transform:translate3d(0,0,0);animation-timing-function:cubic-bezier(.3,.6,.4,1)}\r\n86%{transform:translate3d(0,-7px,0);animation-timing-function:cubic-bezier(.6,0,.8,.5)}\r\n100%{transform:translate3d(0,0,0)}}\r\n\/* reduced motion: just show them, no drop, no expanding *\/\r\n@media (prefers-reduced-motion:reduce){.qc-go .qc-c{animation:none}.qc-book{transition:none}}\r\n\/* safety: hide any leftover copy of the previous version of these buttons *\/\r\n.rd-dock,.rd-dock *{display:none!important}\r\n\/* the hero \"Free consultation\" button is replaced by these buttons, on every screen *\/\r\nhtml.qc-live .elementor-element-e2682ba{display:none!important}\r\n<\/style>\r\n<script>(function(){\r\nvar BOOK='\/contact-us\/#Book-Appontment';\r\nvar TEL='+15148364264';\r\nvar MAIL='info@raissian.ca';\r\nvar START=5000;   \/* ms after the page loads: the buttons start to fall *\/\r\nvar PAUSE=500;    \/* ms after they land: Free consultation opens *\/\r\nvar HOLD=2000;    \/* ms the button stays open before returning to its icon *\/\r\nvar calm=window.matchMedia&&matchMedia('(prefers-reduced-motion: reduce)').matches;\r\nif(document.body&&document.body.classList.contains('elementor-editor-active')){return;}\r\nfunction ready(f){if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',f);else f();}\r\nvar ICO={\r\nbook:'<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3.5\" y=\"5\" width=\"17\" height=\"15\" rx=\"2\"\/><path d=\"M3.5 10h17M8 3v4M16 3v4\"\/><\/svg>',\r\ncall:'<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z\"\/><\/svg>',\r\nmail:'<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\"\/><path d=\"M3.5 7l8.5 6.5L20.5 7\"\/><\/svg>'};\r\nready(function(){\r\n\/* remove any leftover copy of the previous version of these buttons, now and if it is added later (e.g. on scroll) *\/\r\nfunction purge(){var o=document.querySelectorAll('.rd-dock');for(var i=0;i<o.length;i++){if(o[i].parentNode){o[i].parentNode.removeChild(o[i]);}}}\r\npurge();\r\nif(window.MutationObserver){new MutationObserver(purge).observe(document.body,{childList:true});}\r\nif(document.querySelector('.qc-dock')){return;}\r\nvar dock=document.createElement('div');\r\ndock.className='qc-dock';dock.setAttribute('role','group');dock.setAttribute('aria-label','Quick contact');\r\ndock.innerHTML=\r\n'<a class=\"qc-c qc-book\" href=\"'+BOOK+'\" aria-label=\"Free consultation\" title=\"Free consultation\"><span class=\"qc-lab\">Free consultation<\/span><span class=\"qc-ico\">'+ICO.book+'<\/span><\/a>'+\r\n'<a class=\"qc-c qc-call\" href=\"tel:'+TEL+'\" aria-label=\"Call\" title=\"Call\"><span class=\"qc-ico\">'+ICO.call+'<\/span><\/a>'+\r\n'<a class=\"qc-c qc-mail\" href=\"mailto:'+MAIL+'\" aria-label=\"Email\" title=\"Email\"><span class=\"qc-ico\">'+ICO.mail+'<\/span><\/a>';\r\ndocument.body.appendChild(dock);\r\ndocument.documentElement.classList.add('qc-live');\r\nvar book=dock.querySelector('.qc-book');\r\nfunction run(){\r\ndock.classList.add('qc-go');\r\nif(calm){return;}\r\n\/* last button lands at .24s delay + 1.1s duration *\/\r\nsetTimeout(function(){\r\nbook.classList.add('qc-open');\r\nsetTimeout(function(){book.classList.remove('qc-open');},600+HOLD);\r\n},1340+PAUSE);\r\n}\r\nvar now=(window.performance&&performance.now)?performance.now():0;\r\nsetTimeout(run,Math.max(0,START-now));\r\n});\r\n})();<\/script>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>. Ehsan Raissianzadeh Residential Real EstateBroker &#8211; B.Arch Category carousel &lt; &gt; Rest of the page<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"folder":[],"class_list":["post-2552","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Home - Raissian Real Estate Montreal<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Home - Raissian Real Estate Montreal\" \/>\n<meta property=\"og:description\" content=\". Ehsan Raissianzadeh Residential Real EstateBroker &#8211; B.Arch Category carousel &lt; &gt; Rest of the page\" \/>\n<meta property=\"og:url\" content=\"https:\/\/raissian.ca\/fr\/\" \/>\n<meta property=\"og:site_name\" content=\"Raissian Real Estate Montreal\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-22T20:32:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/08\/cropped-Raissian-LOGO-text-white-1.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/raissian.ca\\\/\",\"url\":\"https:\\\/\\\/raissian.ca\\\/\",\"name\":\"Home - Raissian Real Estate Montreal\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raissian.ca\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/raissian.ca\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/raissian.ca\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/raissian.ca\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/cropped-Raissian-LOGO-text-white-1.png\",\"datePublished\":\"2026-09-24T20:56:54+00:00\",\"dateModified\":\"2026-10-22T20:32:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/raissian.ca\\\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/raissian.ca\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/raissian.ca\\\/#primaryimage\",\"url\":\"https:\\\/\\\/raissian.ca\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/cropped-Raissian-LOGO-text-white-1.png\",\"contentUrl\":\"https:\\\/\\\/raissian.ca\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/cropped-Raissian-LOGO-text-white-1.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/raissian.ca\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/raissian.ca\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/raissian.ca\\\/#website\",\"url\":\"https:\\\/\\\/raissian.ca\\\/\",\"name\":\"Raissian Real Estate Montreal\",\"description\":\"Ehsan Raissianzadeh Real Estate Montreal\",\"publisher\":{\"@id\":\"https:\\\/\\\/raissian.ca\\\/#organization\"},\"alternateName\":\"Raissian\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/raissian.ca\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/raissian.ca\\\/#organization\",\"name\":\"Construction Company\",\"url\":\"https:\\\/\\\/raissian.ca\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\\\/\\\/raissian.ca\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/raissian.ca\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/Raissian-LOGO-text-black-1024x683.png\",\"contentUrl\":\"https:\\\/\\\/raissian.ca\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/Raissian-LOGO-text-black-1024x683.png\",\"width\":1024,\"height\":683,\"caption\":\"Construction Company\"},\"image\":{\"@id\":\"https:\\\/\\\/raissian.ca\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Home - Raissian Real Estate Montreal","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"fr_CA","og_type":"article","og_title":"Home - Raissian Real Estate Montreal","og_description":". Ehsan Raissianzadeh Residential Real EstateBroker &#8211; B.Arch Category carousel &lt; &gt; Rest of the page","og_url":"https:\/\/raissian.ca\/fr\/","og_site_name":"Raissian Real Estate Montreal","article_modified_time":"2026-10-22T20:32:23+00:00","og_image":[{"url":"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/08\/cropped-Raissian-LOGO-text-white-1.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/raissian.ca\/","url":"https:\/\/raissian.ca\/","name":"Home - Raissian Real Estate Montreal","isPartOf":{"@id":"https:\/\/raissian.ca\/#website"},"primaryImageOfPage":{"@id":"https:\/\/raissian.ca\/#primaryimage"},"image":{"@id":"https:\/\/raissian.ca\/#primaryimage"},"thumbnailUrl":"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/08\/cropped-Raissian-LOGO-text-white-1.png","datePublished":"2026-09-24T20:56:54+00:00","dateModified":"2026-10-22T20:32:23+00:00","breadcrumb":{"@id":"https:\/\/raissian.ca\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/raissian.ca\/"]}]},{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/raissian.ca\/#primaryimage","url":"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/08\/cropped-Raissian-LOGO-text-white-1.png","contentUrl":"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/08\/cropped-Raissian-LOGO-text-white-1.png"},{"@type":"BreadcrumbList","@id":"https:\/\/raissian.ca\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/raissian.ca\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/raissian.ca\/#website","url":"https:\/\/raissian.ca\/","name":"Raissian Immobilier Montr\u00e9al","description":"Ehsan Raissianzadeh Real Estate Montreal","publisher":{"@id":"https:\/\/raissian.ca\/#organization"},"alternateName":"Raissian","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/raissian.ca\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-CA"},{"@type":"Organization","@id":"https:\/\/raissian.ca\/#organization","name":"Construction Company","url":"https:\/\/raissian.ca\/","logo":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/raissian.ca\/#\/schema\/logo\/image\/","url":"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/08\/Raissian-LOGO-text-black-1024x683.png","contentUrl":"https:\/\/raissian.ca\/wp-content\/uploads\/2026\/08\/Raissian-LOGO-text-black-1024x683.png","width":1024,"height":683,"caption":"Construction Company"},"image":{"@id":"https:\/\/raissian.ca\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/raissian.ca\/fr\/wp-json\/wp\/v2\/pages\/2552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raissian.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/raissian.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/raissian.ca\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raissian.ca\/fr\/wp-json\/wp\/v2\/comments?post=2552"}],"version-history":[{"count":356,"href":"https:\/\/raissian.ca\/fr\/wp-json\/wp\/v2\/pages\/2552\/revisions"}],"predecessor-version":[{"id":3110,"href":"https:\/\/raissian.ca\/fr\/wp-json\/wp\/v2\/pages\/2552\/revisions\/3110"}],"wp:attachment":[{"href":"https:\/\/raissian.ca\/fr\/wp-json\/wp\/v2\/media?parent=2552"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/raissian.ca\/fr\/wp-json\/wp\/v2\/folder?post=2552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}