SPB Git

spb/lou-ka Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

HTML 99.7%
16.4 KB · 293 lines html
Raw Blame History
1<!DOCTYPE html><!-- Last Published: Fri Jul 31 2026 19:51:40 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="www.utile.org" data-wf-page="678cd303378686294857b7e0" data-wf-site="671f038f5c3ef0ec21e02f80" lang="en-CA" data-wf-collection="678cd303378686294857b7b8" data-wf-item-slug="saint-laurent---inclusions"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>UTILE</title><link rel="alternate" hrefLang="x-default" href="https://www.utile.org/inclusions/saint-laurent---inclusions"/><link rel="alternate" hrefLang="fr-CA" href="https://www.utile.org/inclusions/saint-laurent---inclusions"/><link rel="alternate" hrefLang="en-CA" href="https://www.utile.org/en/inclusions/saint-laurent---inclusions"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="v31n6lg5_CpQdKTHFQ3kOosXowvdrYVudIPJkIbhC28" name="google-site-verification"/><link href="https://cdn.prod.website-files.com/671f038f5c3ef0ec21e02f80/css/utile-refonte.webflow.shared.cab4f73f9.min.css" rel="stylesheet" type="text/css" integrity="sha384-yrT3P5bsk44HuZirTv5WRNojUfFKFcZ556bozLi7h36WgyhleiOQ0gw833DniDTD" crossorigin="anonymous"/><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/671f038f5c3ef0ec21e02f80/67223852b456b9e6b53ecd58_favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/671f038f5c3ef0ec21e02f80/6722385a6044c2363142b8fe_favicon-256.png" rel="apple-touch-icon"/><!-- Line 1 to 80 are related to the menu -->2<!-- [Attributes by Finsweet] Mirror click events -->3<script defer src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-mirrorclick@1/mirrorclick.js"></script>4<!-- [Attributes by Finsweet] CMS Filter -->5<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsfilter@1/cmsfilter.js"></script>6<!-- [Attributes by Finsweet] CMS Static -->7<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsstatic@1/cmsstatic.js"></script>8<!-- [Attributes by Finsweet] CMS Select -->9<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsselect@1/cmsselect.js"></script>10<!-- [Attributes by Finsweet] Modal -->11<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-modal@1/modal.js"></script>12<!-- [Attributes by Finsweet] Accessibility -->13<script defer src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-a11y@1/a11y.js"></script>14<!-- [Attributes by Finsweet] Disable scrolling -->15<script defer src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-scrolldisable@1/scrolldisable.js"></script>16<!-- [Attributes by Finsweet] List item counter -->17<script defer src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-countitems@1/countitems.js"></script>1819<style>20  /** Antiliased for cleaner look **/	21  body { -webkit-font-smoothing: antialiased; font-smooth: antialiased; }22  23  /** Styling for forms in general, autofill status and focus status **/24  select {25    appearance: none !important;26    -webkit-appearance: none !important;27    -moz-appearance: none !important;28  }29  30  /* Code to remove the scrollbar or style it the way we like it */31  .is-scrollbar-custom {32  	-ms-overflow-style: none; /* for Internet Explorer, Edge */33  	scrollbar-width: none; /* for Firefox */34  }3536	/* Changes the thinkness of the scrollbar */37  .is-scrollbar-custom::-webkit-scrollbar {38    width: 0px;39    height: 0px;40    -webkit-border-radius: 0px;41    border-radius: 0px;42	}43  44  /* Hides the little scrolly dealio in the bar */ 45  .is-scrollbar-custom::-webkit-scrollbar-thumb {46      border-radius: 0px;47      background: #ffffff;48      height: 0px;49  }50  51  /* Removes the little scrollbar corner */  52    .is-scrollbar-custom::-webkit-scrollbar-corner { 53    display: none; height: 0px; width: 0px; 54    }55    56  /* Code to override the default ugly autofill css, because we like nice things */57  input:-webkit-autofill,58  input:-webkit-autofill:hover,59  input:-webkit-autofill:focus,60  input:-webkit-autofill:active {61    appearance: none !important;62    background-image: none !important;63    background-color: var(--white-ceramics) !important;64    color: var(--green-sustainable) !important;65    border-style: solid !important;66    border-width: 1px !important;67    border-color: var(--gray-border);68    box-shadow: 0 0 0px 1000px var(--white-ceramics) inset !important;69    -webkit-text-fill-color: var(--green-sustainable) !important;70}71     /** CSS for scroll block of menu on hover **/72    body.menu-hover {73        overflow: hidden;74      	height: 100vh;75	}76  /* Remove mobile tap highlight */77  * {78    -webkit-tap-highlight-color: transparent;79  }80</style>818283<!-- Line 83 to 160 are related to the cookie consent policy & tags -->84<!-- Finsweet Cookie Consent JS Script -->85<script async src="https://cdn.jsdelivr.net/npm/@finsweet/cookie-consent@1/fs-cc.js" fs-cc-mode="opt-in"></script>8687<script>88  window.dataLayer = window.dataLayer || [];89  function gtag(){dataLayer.push(arguments);}90  gtag('consent', 'default', {91    'ad_storage': 'denied',92    'analytics_storage': 'denied',93    'ad_user_data': 'denied',94    'ad_personalization': 'denied'95  });96  gtag('js', new Date());97  gtag('config', 'G-UA-45225613-1');98</script>99100<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-UA-45225613-1" type="fs-cc" fs-cc-categories="analytics"></script>101102<script type="fs-cc" fs-cc-categories="analytics">103  gtag('consent', 'update', {104    'analytics_storage': 'granted'105  });106</script>107108<script type="fs-cc" fs-cc-categories="personalization">109  gtag('consent', 'update', {110    'ad_personalization': 'granted'111  });112</script>113114<script type="fs-cc" fs-cc-categories="marketing">  115  gtag('consent', 'update', {116      'ad_storage': 'granted',117      'ad_user_data': 'granted'118    });119</script>120121<!-- Google Tag Manager -->122<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':123new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],124j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=125'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);126})(window,document,'script','dataLayer','GTM-M27Z7VD7');</script>127<!-- End Google Tag Manager -->128129<!-- Meta Pixel Code -->130131<script type="fs-cc" fs-cc-categories="marketing">132133!function(f,b,e,v,n,t,s)134135{if(f.fbq)return;n=f.fbq=function(){n.callMethod?136137n.callMethod.apply(n,arguments):n.queue.push(arguments)};138139if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';140141n.queue=[];t=b.createElement(e);t.async=!0;142143t.src=v;s=b.getElementsByTagName(e)[0];144145s.parentNode.insertBefore(t,s)}(window, document,'script',146147'https://connect.facebook.net/en_US/fbevents.js');148149fbq('init', '1005213237399353');150151fbq('track', 'PageView');152153</script>154155<noscript><img height="1" width="1" style="display:none"156157src=https://www.facebook.com/tr?id=1005213237399353&ev=PageView&noscript=1158159/></noscript>160161<!-- End Meta Pixel Code -->162163<!-- Meta Domain -->164<meta name="facebook-domain-verification" content="xo1ge1gr32dh1nqtkckekwvc3mthze" /></head><body><div class="c-inclusions__code-logic"><div class="w-dyn-list"><div fs-cmsnest-collection="equipement-appartement" fs-cmsnest-element="template-reference" role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/cuisiniere" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/refrigerateur" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/eau-chaude" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/internet" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/echangeur-dair" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/air-climatise" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/portail-locataire-en-ligne" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/electricite" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/chauffage" class="w-inline-block"></a></div></div></div><div class="w-dyn-list"><div fs-cmsnest-collection="equipement-immeuble" fs-cmsnest-element="template-reference" role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/stationnement-a-velo-interieur" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/salle-commune" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/terrasse-sur-le-toit" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/presence-dun-gestionnaire-sur-place" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/abonnement-annuel-a-lapplication-partage-club" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/ascenceurs" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/salle-de-colis-securisee" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/salle-detude" class="w-inline-block"></a></div></div></div><div class="w-dyn-list"><div fs-cmsnest-collection="equipement-supplement" fs-cmsnest-element="template-reference" role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/buanderie" class="w-inline-block"></a></div></div></div><div class="w-dyn-list"><div fs-cmsnest-collection="equipement-exclus" fs-cmsnest-element="template-reference" role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/meubles" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/effets-personnels" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/decorations" class="w-inline-block"></a></div><div role="listitem" class="w-dyn-item"><a aria-label="Go to equipement" href="/en/equipement/petits-electromenagers" class="w-inline-block"></a></div></div></div></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=671f038f5c3ef0ec21e02f80" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/671f038f5c3ef0ec21e02f80/js/webflow.schunk.f2efb3c5440a81cf.js" type="text/javascript" integrity="sha384-VK02VJvMib7ytrF5M2joPWNtDQs366FZgEQ5B+Iwnjx0WBnwQXfootyziSYxdrmS" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/671f038f5c3ef0ec21e02f80/js/webflow.schunk.a66287cbc22e63bd.js" type="text/javascript" integrity="sha384-SMETGdeUI8Kt/OPKGAhX/nSYXwkg3yhzoikqnvghsnctFrPM6Y8BqByqDWvPOFtt" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/671f038f5c3ef0ec21e02f80/js/webflow.7592e5ec.882133c6c87e56b2.js" type="text/javascript" integrity="sha384-GeyutIOvoHmnWzhgbPn0bSEKazeJPcMLXrmzSEhOpEIWWmMVdaqmD43LgLZZVbGV" crossorigin="anonymous"></script><script>165	/** Responsive site-wide menu related function that allows for responsive min-height of city result section based on height of cities display. **/166  function setMinHeightOnceVisible() {167    const filterWrapper = document.querySelector('.c-nav-buildings__filter-wrapper');168    const resultsWrapper = document.querySelector('.c-nav-buildings__results-wrapper');169    const defaultHeight = 376; // Default height in pixels170171    if (!filterWrapper || !resultsWrapper) return;172173    function updateHeight() {174      const isMobileView = window.innerWidth <= 991;175176      if (isMobileView) {177        resultsWrapper.style.height = "100%";178      } else {179        const filterHeight = filterWrapper.offsetHeight || defaultHeight;180        resultsWrapper.style.height = `${filterHeight}px`;181      }182    }183184    function handleResize() {185      updateHeight();186      filterWrapper.style.opacity = "1"; // Only adjust opacity on resize187    }188189    // Observe when filterWrapper becomes visible190    const observer = new IntersectionObserver((entries) => {191      const [entry] = entries;192      if (entry.isIntersecting) {193        updateHeight();194        observer.disconnect(); // Stop observing after setting the height initially195      }196    });197198    observer.observe(filterWrapper);199200    // Listen for window resizing to adjust height and update opacity201    window.addEventListener("resize", handleResize);202  }203  204/* Function to handle body scroll lock based on visibility of specific elements */205function setupScrollLockForBackdrops() {206  const aboutBackdrop = document.querySelector('.c-nav__about-backdrop');207  const buildingBackdrop = document.querySelector('.c-nav__building-backdrop');208  const body = document.body;209210  if (!aboutBackdrop || !buildingBackdrop) {211    console.warn("Backdrops not found. Please check the selectors.");212    return;213  }214215  // Function to check if either of the backdrops are visible216  const checkBackdropsVisibility = () => {217    const aboutVisible = window.getComputedStyle(aboutBackdrop).display !== 'none';218    const buildingVisible = window.getComputedStyle(buildingBackdrop).display !== 'none';219220    if (aboutVisible || buildingVisible) {221      body.classList.add('menu-hover'); // Lock scroll by adding menu-hover222    } else {223      body.classList.remove('menu-hover'); // Unlock scroll by removing menu-hover224    }225  };226227  // Observe changes to the display property or class of the backdrops228  const observer = new MutationObserver(checkBackdropsVisibility);229230  // Configure the observer to watch for changes in style and class231  observer.observe(aboutBackdrop, { attributes: true, attributeFilter: ['style', 'class'] });232  observer.observe(buildingBackdrop, { attributes: true, attributeFilter: ['style', 'class'] });233234  // Initial check when the page loads235  checkBackdropsVisibility();236}237  238/* Function for the footer language switcher, to allow for the animation of the FR/EN switcher,239and the injection of the right link on that button based on context */240  241  function setupLangSwitcher() {242    const frSwitcher = document.querySelector(".c-lang-switcher.is--fr");243    const enSwitcher = document.querySelector(".c-lang-switcher.is--en");244    const localeLinks = document.querySelectorAll(".c-locale-switcher");245246    if ((!frSwitcher && !enSwitcher) || localeLinks.length < 2) {247      // Nothing to do — exit early248      return;249    }250251    const isEnglish = window.location.pathname.startsWith("/en");252253    // Show only the correct switcher254    if (isEnglish) {255      if (frSwitcher) frSwitcher.style.display = "none";256      if (enSwitcher) enSwitcher.style.display = "flex";257    } else {258      if (frSwitcher) frSwitcher.style.display = "flex";259      if (enSwitcher) enSwitcher.style.display = "none";260    }261262    // Get the link for the opposite locale263    let targetHref = null;264265    localeLinks.forEach(link => {266      const isCurrent = link.classList.contains("w--current");267      if (!isCurrent) {268        targetHref = link.getAttribute("href");269      }270    });271272    // Target the visible switcher273    const activeLangSwitcher = isEnglish ? enSwitcher : frSwitcher;274275    if (activeLangSwitcher && targetHref) {276      activeLangSwitcher.setAttribute("href", targetHref);277278      activeLangSwitcher.addEventListener("click", function (e) {279        e.preventDefault();280        setTimeout(() => {281          window.location.href = targetHref;282        }, 500);283      });284    }285  }286287  document.addEventListener("DOMContentLoaded", () => {288    setMinHeightOnceVisible();289    setupScrollLockForBackdrops();290    setupLangSwitcher();291  });292293</script></body></html>